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

3

Às vezes, eu desconecto meu drive USB 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 user46875 11.09.2013 / 00:39

2 respostas

0

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 11.09.2013 / 00:57
11

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 , o kernel reordena os escreve e grava 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 11.09.2013 / 02:04