У меня есть Raspberry Pi, к которому я хочу подключить внешний HDD. Теперь я думаю, какую файловую систему использовать. Проблема в том, что Raspberry Pi время от времени будет выключаться без размонтирования HDD. Так какая файловая система наиболее надежна для этого варианта использования?
решение1
Почти любая файловая система чтения-записи ведет себя не очень хорошо, если ее выключают во время любой операции. Лучше использовать файловую систему с журналом, это, по крайней мере, сведет к минимуму любые проблемы. Насколько я знаю, между различными вариантами нет никакой действительно большой разницы.
Что вам следует настоятельно рассмотреть, так это использование чего-то вроде autofs для монтирования файловой системы только по требованию. Autofs можно настроить на размонтирование файловой системы, если она не используется в течение настраиваемого периода времени. Таким образом, ваша файловая система будет размонтирована и полностью безопасна, если только вы не выключите систему в середине или сразу после того, как вы попытались что-то сделать с файловой системой.
есть руководство по настройке автоматического размонтирования?
Не зная, какую версию Linux вы используете, у меня нет конкретного руководства. Вот несколько ссылок, которые могут помочь вам начать. Ключевым моментом является то, --timeout
что устанавливает, как долго файловая система будет оставаться смонтированной, когда никакие файлы не используются.
- 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/Автомонтирование
- http://www.linux-consulting.com/Amd_AutoFS/autofs.html
- http://linux.die.net/man/5/autofs
- http://linux.die.net/man/5/auto.master
решение2
В принципе, это должно быть отличным вариантом использования дляФайловая система с лог-структурой. У меня мало опыта с ними, ноНИЛФСвыглядит хорошо и уже некоторое время находится в ядре Linux основной ветки. В принципе, он создает каждое изменение в файловой системе как патч, который применяется поверх предыдущего состояния. Таким образом, можно будет легко вернуться к предыдущему состоянию, если возникнут проблемы с последним состоянием (например, из-за несвоевременного отключения питания), поскольку при обычном использовании ничего обычно не перезаписывается.
С другой стороны, NILFS не так зрела, как ext3, и нет почти такого же количества инструментов восстановления, если что-то пойдет не так. Также обратите внимание, что когда я говорю, что все возможно в предыдущем абзаце, это вполне может означать, что вам придется вручную компилировать и использовать какое-то программное обеспечение, чтобы сделать это.
NILFS также требует периодической очистки, поскольку перезапись или удаление файлов на самом деле не освобождает дисковое пространство. Я считаю, что это происходит автоматически по умолчанию. Вы можете убедиться, что это происходит в то время, когда питание не пропадает с устройства.
решение3
Вопрос звучит для меня очень плохо. Независимо от того, насколько сильна файловая система, остановка системы в середине операции — это ежедневная покупка лотереи на предмет масштабного повреждения файловой системы.
ИспользуяGPIOвы можете подать сигнал своему устройству, что хотите его выключить. (Обычные настольные ПК уже давно имеют такой линейный вход).
С помощью внешней схемы вы можете выключить свое устройство только после окончания процедуры остановки. Но вы должны быть уверены, что плохие кошки держат лапами реальную линию электропередачи.
у меня естьШиваплаг, где светодиод настраивается пользователем, и я добавил скрипт, который должен быть запущен непосредственно перед окончательной остановкой, которая выключает этот светодиод. Больше никаких сомнений или траты времени на то, чтобы выяснить, когда настало подходящее время для выключения.