Como remover uma unidade USB sem se preocupar se ela foi desmontada? [duplicado]

11

Às vezes, desconecto meu pendrive apenas para descobrir que arquivos não foram gravados nele.

Suponho que a única maneira de garantir que os arquivos sejam gravados nela é clicar com o botão direito do mouse na unidade USB da área de trabalho e selecionar "desmontar", mas às vezes eu esqueço.

Qual é a melhor maneira de garantir que os arquivos sejam gravados na unidade USB instantaneamente? Dessa forma, posso remover a unidade USB assim que notar que a luz do LED na unidade USB parou de piscar.

OS: CentOS 6

    
por slm 14.09.2013 / 20:59

3 respostas

15

Esta é a resposta de Gilles, salvando-a aqui para que não se perca.

Se você usar a opção sync mount na unidade removível, todas as gravações serão gravadas no disco imediatamente, para que você não perca dados de arquivos ainda não gravados. É uma má ideia, mas faz o que você está perguntando.

Note que sync não garante que você não perderá dados . Desmontar uma unidade removível também garante que nenhum aplicativo tenha um arquivo aberto. Se você não desmontar antes de desconectar, não notará se tiver dados não salvos até que seja tarde demais. Desmontar enquanto um arquivo está aberto também aumenta a chance de corrupção, tanto no nível do sistema de arquivos (o SO pode ter enfileirado algumas operações até o arquivo ser fechado) quanto no nível do aplicativo (por exemplo, se o aplicativo colocar um arquivo de bloqueio, ele ganhou) t ser removido).

Além disso, sync é ruim para a vida útil do dispositivo . Sem a opção sync , os reordenadores do kernel gravam e gravam em lotes. Com a opção sync , o kernel grava todos os setores na ordem solicitada pelos aplicativos. Em mídias flash baratas que não realocam setores (o que significa praticamente qualquer pendrive antigo, não sei se ainda é verdade sobre os mais recentes), as gravações repetidas na tabela de alocação de arquivos no (V) FAT ou no diário em um típico sistema de arquivos moderno, pode matar o bastão rapidamente .

Portanto, não recomendo usar a opção sync mount.

Nos sistemas de arquivos FAT, você pode usar a flush mount option . Isso é intermediário entre async (o padrão) e sync : com a opção flush , o kernel libera todas as gravações assim que a unidade ficar inativa, mas não preserva a ordem das gravações (por exemplo, todas as gravações para o FAT são mesclados).

    
por 14.09.2013 / 22:51
12

Patient: "Doctor, It hurts when I do this."
Doctor: "Well, don't do that."
maybe the Marx Brothers, but they probably stole it from other vaudevillians if so

Ambas as respostas estão bem, mas eu questiono a questão. Se você não consegue se lembrar de desmontar um thumbdrive corretamente antes de removê-lo, talvez você deva se lembrar mais.

Em geral, o problema não tem boa solução. O Macintosh original (c. 1984) tinha uma unidade de disquete de 90 mm sem o botão de ejeção apropriado. Você desmontou o disco ou não saiu. Eles forneceram um substituto para quando o software se recusou a ejetar o disco, mas você precisava de uma ferramenta especial (clipe de papel não dobrado) para acioná-lo. O clipe de papel formou uma "função de força" de Don Normanesque, pois era difícil não saber que você estava prendendo um clipe de papel em um buraco de 1 mm.

Por causa da mecânica de um conector USB, é difícil criar uma função de força semelhante para os thumbdrives. Assim, a imprecação: não remova sem desmontar. Além disso, não é aconselhável andar em um automóvel sem cinto de segurança e quase todas as funções forçadas nunca tentaram alcançar o objetivo desejado.

    
por 14.09.2013 / 23:53
1

Normalmente, dispositivos de armazenamento em massa, como pen drives USB, são montados usando um comando, mount . Eles precisam ser explicitamente desmontados usando o complemento para esse comando, umount (isso não é um erro de digitação). Existem ferramentas que podem detectar eventos no nível do hardware, como, por exemplo, um dispositivo USB foi conectado. Esses "serviços" farão a montagem automaticamente para você. Isso é o que acontece quando você usa a área de trabalho do GNOME e normalmente você vê as unidades USB aparecendo como montadas no navegador de arquivos Nautilus.

É um pouco mais complicado saber quando o dispositivo não está mais sendo gravado. Você teria que escrever seu próprio manipulador para fazer uso das mensagens Udev e DBUS para saber quando o dispositivo estava sendo gravado e mantê-lo explicitamente no estado "não montado".

Eu não vejo outra maneira de fazer isso sem uma integração muito mais profunda nos vários subsistemas do Linux, e pelo que sei que simplesmente não existe a partir de agora.

MAC OSX

Meu palpite seria que no OSX, eles estão executando sync comandos e deixando o dispositivo "montado", o que pode ser considerado uma coisa perigosa para fazer, mas em uma conveniência para o operador.

    
por 14.09.2013 / 21:00