Eu tenho um Raspberry Pi ao qual quero conectar um disco rígido externo. Agora estou pensando em qual sistema de arquivos usarei. O problema é que o Raspberry Pi será desligado de vez em quando sem desmontar o HDD. Então, qual sistema de arquivos é o mais robusto para este caso de uso?
Responder1
Quase qualquer sistema de arquivos de leitura e gravação não se comporta muito bem ao ser desligado no meio de qualquer operação. Usar um sistema de arquivos com um diário será melhor, pois pelo menos minimizará quaisquer problemas. Não há nenhuma diferença realmente grande que eu saiba entre as várias opções.
O que você deve considerar fortemente é usar algo como autofs para montar o sistema de arquivos somente sob demanda. O Autofs pode ser configurado para desmontar o sistema de arquivos quando ele não estiver em uso após um período de tempo configurável. Desta forma, seu sistema de arquivos será desmontado e completamente seguro, a menos que você desligue o sistema enquanto ele estiver no meio ou logo após tentar realmente fazer algo com o sistema de arquivos.
tem um tutorial para configurar a desmontagem automática?
Sem saber qual versão do Linux você está usando não tenho um tutorial específico. Aqui estão alguns links que podem ajudá-lo a começar. O ponto principal é --timeout
definir por quanto tempo o sistema de arquivos permanecerá montado quando nenhum arquivo estiver em uso.
- http://wiki.debian.org/AutoFs
- http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-nfs-client-config-autofs.html
- http://www.autofs.org/
- http://tldp.org/HOWTO/text/Automount
- http://www.linux-consulting.com/Amd_AutoFS/autofs.html
- http://linux.die.net/man/5/autofs
- http://linux.die.net/man/5/auto.master
Responder2
Em princípio, este deveria ser um excelente caso de uso para umSistema de arquivos estruturado em log. Tenho pouca experiência com eles, masNILFSparece bom e está no kernel principal do Linux há algum tempo. Em princípio, ele cria cada alteração no sistema de arquivos como um patch a ser aplicado sobre o estado anterior. Dessa forma, deverá ser possível retornar facilmente ao estado anterior se houver um problema com o estado mais recente (por exemplo, devido a uma falha de energia prematura), uma vez que geralmente nada é sobrescrito em uso normal.
Por outro lado, o NILFS não é tão maduro quanto o ext3, nem há quase o mesmo número de ferramentas de recuperação caso algo dê errado. Observe também que quando digo que coisas são possíveis no parágrafo anterior, isso pode muito bem significar que você terá que compilar manualmente e usar algum software para fazer isso.
O NILFS também requer limpeza ocasional, pois a substituição ou exclusão de arquivos não libera espaço em disco. Acredito que isso acontece automaticamente por padrão. Você pode querer ter certeza de que isso aconteça em um momento em que a energia não desapareça do dispositivo.
Responder3
A pergunta me parece muito doentia. Não importa quão forte seja um sistema de arquivos, interrompê-lo no meio da operação é comprar todos os dias toda a loteria pela corrupção massiva do sistema de arquivos.
Usando umGPIOvocê pode sinalizar ao seu dispositivo que deseja desligá-lo. (PCs desktop normais já possuem essa entrada de linha há muito tempo).
Com algum circuito externo você poderá desligar seu dispositivo somente após o término do procedimento de parada. Mas você deve ter certeza de que os gatos maus mantêm suas patas na linha de energia real.
eu tenho umSheevaplug, onde o LED é configurável pelo usuário e adicionei um script para ser executado logo antes da parada final, que desliga esse LED. Chega de dúvidas ou perda de tempo tentando descobrir quando é o momento certo para desligar.