Tenho um laptop sem um disco rígido interno. Para tirar algum proveito dele, estou pensando em colocar a partição raiz em uma mídia externa, por USB. Não vejo nenhuma razão para que isso não funcione, mas imagino o que aconteceria se eu desconectasse e reconectasse o USB acidentalmente.
Obviamente, em geral, é possível reconectar dispositivos automaticamente, mas se a partição root desconectar, isso ainda seria possível? Tenho quase certeza de que um sistema em execução não morreria imediatamente se a root desaparecesse, mas não ficaria surpreso se a remontagem se tornasse impossível.
Normalmente, se um USB montado for puxado, o sistema de arquivos montado se tornará ilegível e não gravável. O estado do sistema de arquivos no USB também pode ser corrompido se houver páginas sujas não escritas na RAM. (Um fsck pode consertar isso, mas também pode haver perda de dados.)
Quando você reconecta um USB nesse estado, ele será mapeado para um novo nome de dispositivo, sem a capacidade de reconectar a montagem antiga. A única resolução aqui é desmontar a montagem quebrada e remontar a partir do novo nome do dispositivo. (O nome do dispositivo antigo pode desaparecer assim que for desmontado, tornando o nome disponível para o próximo USB conectado.)
No entanto, como esse é o sistema de arquivos raiz, você não pode desmontá-lo e remontá-lo (já que ele está em uso), então isso se torna uma situação irrecuperável. Isso é fatal, é claro, mas não instantaneamente.
Os itens ainda armazenados em cache na RAM continuarão legíveis por um tempo até que a página em cache seja removida e, então, também ficarão ilegíveis.
Você não conseguirá executar novos programas (que não estejam em cache na memória) de jeito nenhum. Até mesmo o diretório em que eles estavam se torna ilegível, então você receberá "Comando não encontrado" para quase tudo.
Programas existentes que precisam de páginas que não estão na memória provavelmente travarão e morrerão repentinamente, sem aviso e possivelmente sem erro visível.
Algumas coisas (como possivelmente seu shell) podem nunca travar, pois estão na memória e em uso, mas não conseguirão fazer muita coisa, pois todo o resto estará quebrado.
Se você estiver em uma GUI, partes dela podem morrer ao descobrir páginas ausentes das quais precisavam, incluindo as janelas do terminal que contêm seus shells, e elas podem simplesmente desaparecer quando você tenta digitar na janela, ou a GUI inteira pode eventualmente travar, levando você a um terminal de texto (no qual você não conseguirá fazer login, pois tudo está quebrado).
Serviços críticos do sistema que tenham coisas abertas na montagem raiz com falha não funcionarão corretamente, mesmo que não travem, então as coisas vão piorar progressivamente.
Se você tiver um shell root aberto, talvez consiga remontar o USB recuperado sobre a montagem root quebrada existente, mas provavelmente isso não será permitido e, mesmo que seja, não corrigirá programas em execução na montagem antiga que já estavam parcialmente travados, e alguns programas em execução com a montagem antiga não verão a nova montagem e continuarão travados.
Quando seu último shell restante travar (sem nenhum erro ou maneira de registrar o erro), nada poderá substituí-lo, então ele pode parecer que não responde mais e trava quando, na verdade, ele simplesmente morreu silenciosamente.
Este é um estado irrecuperável que vai piorar à medida que você mexe nele até que tudo trave e você reinicie.
Você nem conseguirá desligar ou executar o comando de reinicialização, pois isso fará com que os serviços tentem desligar corretamente (embora seja tarde demais para isso).
A única recuperação sensata é reinicializar. Será necessário um hard reboot, que se você tiver sorte pode ser feito com o comando,
reboot -f -f
mas provavelmente não estará disponível e você terá que fazer o equivalente manualmente segurando o botão de energia até que ele desligue. (Se você habilitou as teclas sysreq, você pode fazer o equivalente com AltSysRqbo qual sempre funcionará (se estiver habilitado).)