Por que os macs precisam ejetar o usb, mas o windows e o linux não?

0

Por que os macs exigem que uma unidade USB seja ejetada, mas o Windows e o Linux não? É um umount ocorrendo no mac? ... em caso afirmativo porque doesnt linux precisa de um umount? ... também em caso afirmativo, qual é o windows equivalente de umount?

Parece também que mac adverte contra "perder dados" como se estivesse sempre transferindo dados ... por que isso acontece?

Qual é o pior cenário possível de desconectar uma unidade flash sem instalá-la no mac, e por que isso não ocorre no linux?

Qual é o pior cenário possível de desconectar uma unidade flash enquanto os arquivos estão sendo copiados (em todos os sistemas operacionais listados).

    
por agz 10.04.2013 / 09:36

1 resposta

4

O Windows e o Linux exigem uma expulsão, mesmo que tenham certas proteções. Eles não são necessariamente tão conscientes sobre a educação do usuário. (Ou seja, avisando sobre isso). Um desmonte / "eject" permite que o sistema operacional garanta que não está mais "transferindo dados".

Pode ser que o seu aplicativo de cópia não retorne até que todos os dados tenham sido gravados no dispositivo. (Quanto você confia na sua compreensão do aplicativo de cópia?) No entanto, um cenário de exemplo é que o gerenciador de arquivos mostra miniaturas de imagens e começa a gravar um cache de miniaturas no dispositivo sem que você perceba.

A remoção do dispositivo durante uma gravação corromperá o sistema de arquivos. Eu não sei como os outros sistemas operacionais lidam com sistemas de arquivos FAT desmontados, sem limpeza, em dispositivos removíveis, mas o Linux não os detecta de forma alguma. Portanto, a próxima montagem não acionará um reparo do sistema de arquivos e o sistema de arquivos continuará corrompido.

Qual a probabilidade de um FAT corrupto levar à perda de dados ao longo do tempo, não tenho certeza. Há tentativas razoáveis de se proteger contra kernels bem desenvolvidos, como Windows e Linux, devido à frequência com que as pessoas fazem isso. (Na mesma linha, o linux tem uma opção de montagem que tenta combinar o comportamento FAT removível do Windows ... ele faz fsync () em close (), ou algo parecido).

No entanto, é uma boa higiene não deixar seus sistemas de arquivos corrompidos. Se nada mais, isso significa que, se você for forçado a encerrar impuro (por exemplo, por falha de energia), poderá verificar o sistema de arquivos em busca de danos e será confrontado apenas com o que aconteceu recentemente.

Quanto ao pior caso? Seu dispositivo USB é um SSD muito barato. Os caros SSDs falham de forma hilariante quando perdem energia, incluindo a perda de todos os dados no dispositivo. Durma bem e cuide dos seus backups. link

Mesmo que você tenha sorte, você pode perder os dados em um bloco de apagamento inteiro de 2Mb - quando você estava escrevendo somente para um arquivo de 512 bytes nesse EB. Com o armazenamento flash, o dispositivo tem que apagar todo esse EB de 2Mb antes que ele possa reescrever os dados. E o dispositivo irá remapear setores por algumas razões, então os 2Mb de dados perdidos podem ser de vários lugares em qualquer lugar do sistema de arquivos. Minha referência aqui seria a aflição do kernel devlepor Pavel Machek, ao perceber que os sistemas de arquivos linux ext (mesmo com o journalling) não protegiam seus dados contra esse modo de falha conhecido. (FAT não é realmente melhor).

[Eu não sou um bom exemplo aqui, porque eu tenho um laptop com um cartão SD, deixo ficar sem bateria com bastante frequência, e ele acumula erros ao ponto em que fsck.vfat nem sempre é capaz de corrigir eles. OTOH não há nada no cartão que eu não tenho uma cópia de outro lugar :). Eu tive 3 falhas inesperadas no hardware do cartão SD no passado.

    
por 10.04.2013 / 10:11