É mau remover uma drive USB sem primeiro usar o sistema de remoção de dispositivos do sistema faz algum mal?
Desde sempre que os sistema operativos, independentemente do tipo ou máquina em que estão a funcionar, consideram que as unidades de armazenagem de dados, incluindo os discos rígidos e similares, são coisas que não mudam de estado repentinamente. Quando o sistema está a ler ou escrever dados, espera que esses dados se mantenham acessíveis e que não desapareçam a meio do processo. Se um ficheiro estiver aberto, o programa que o está a usar espera poder aceder a esses dados quando for necessário. Outra situação possível, é que num mundo em que os programas se vão subdividindo em módulos que fazem várias coisas diferentes para optimizar os recursos dos computadores, é bem possível que um programa envie dados para um módulo, ou rotina, de gravação, e não validar directamente o resultado da gravação, o que origina a perda dos dados se essa unidade de armazenagem específica se desligar repentinamente.
Nos primórdios da informática, existiam processos formais em que se “montavam” ou “desmontavam” dispositivos de armazenagem de dados fisicamente na máquina. Estes processos implicavam a utilização de um interruptor físico que servia para indicar ao computador que o dispositivo de armazenagem estava inserido ou ligado ao computador. Assim que o computador detectava que o interruptor estava ligado, partia do principio que o podia começar logo a usar os dados gravados no suporte. Quem já trabalhou com disquetes sabe do que falo.
Os exemplos mais concretos deste sistema de segurança são encontrados nos Macintosh, em que tanto as drives de disquetes, como os leitores ópticos só ejectavam os suportes através de um comando de software e, se um programa tivesse um ficheiro aberto num desses suportes, ela não era removido da drive até esse programa acabar de usar o ficheiro.
Tudo isto é muito bonito até aparecerem as drives USB, que não oferecem qualquer forma física de coordenar a ligação da drive ao sistema com a utilização dos dados lá gravados. O pior, é que o utilizador pode remover uma destas drives quando quiser independentemente do que o sistema estiver a fazer, o que faz com que o sistema operativo e as aplicações fiquem com comportamentos estranhos como perda de dados, sistemas de ficheiros corrompidos, leia-se não se conseguir ler o conteúdo da drive, programas que deixam de funcionar de repente e computadores a precisar de serem reiniciados.
Quando o utilizador usa a função de remoção em segurança das drives USB, está a indicar ao sistema operativo a sua intenção de remover essa drive em particular, o que desencadeia uma sequência de procedimentos:
Gravação imediata de todos os dados pendentes; A notificação de todos os programas que a unidade vai ser removida em breve para que possam fazer o que é suposto nessa eventualidade; A notificação do utilizador para não remover a drive quando existem programas com ficheiros abertos que não conseguiram libertar; Mas, na realidade, pode remover uma unidade USB em qualquer altura, mas sujeita-se a sofrer com o possível mau feitio dos programas e sistema operativo. E não, não estraga o computador.
Os sistemas operativos mais recentes conseguem defender-se da remoção repentina de unidades de armazenagem USB. Por exemplo, o Windows inclui uma funcionalidade denominada “Optimização para remoção rápida” que simplesmente grava logo os dados para as drives USB, assim que existe um comando para tal, em vez de os colocar em lista de espera. Isto torna as drives um pouco mais lentas, mas permite a sua remoção sem perder dados.
No geral, a regra a seguir é: se estiver apenas a ler dados a partir da drive USB, pode removê-la quando quiser. Mas se estiver a gravar dados para a drive, o melhor é usar o comando de remoção do sistema operativo de forma a não perder dados. Neste caso um truque é, antes de remover a drive, fechar os programas que estiverem a usar dados, isto faz com que os ficheiros abertos sejam gravados. Depois pode remover a drive e ir à sua vida.