Linux: Вызвать fsck смонтированной файловой системы только для чтения?

Выньте DNS из уравнения в течение минуты. Можете Вы telnet для портирования 25 из IP-адреса почтового сервера?

6
задан 12 July 2012 в 06:02
3 ответа

Вы можете fsck файловую систему только для чтения, потому что монтирование только для чтения не помечает ее как «грязную», как при монтировании для чтения и записи. В кэше записи нет изменений, которые могут быть только частично сброшены на диск, поэтому все структуры на диске согласованы и безопасны для изменения fsck .

Однако, если fsck вносит какие-либо изменения, драйвер файловой системы ядра может запутаться, потому что вещи, которые он ожидал оставаться постоянными, вместо этого изменились из-под него. Это не повлияет на целостность самой файловой системы (поскольку драйвер не записывает в нее), но может сделать работающую систему нестабильной. Чтобы этого избежать, вам следует перезагрузиться, если fsck внесет какие-либо изменения в вашу файловую систему.

4
ответ дан 3 December 2019 в 00:29

Вы пробовали использовать переключатели -p или -y ? Я всегда делаю это на безголовой машине Debian, и это работает.

Из справочной страницы fsck.ext2 :

   -p     Automatically repair ("preen") the  file  system.   This  option
          will  cause  e2fsck to automatically fix any filesystem problems
          that can be safely fixed without human intervention.  If  e2fsck
          discovers  a  problem which may require the system administrator
          to take  additional  corrective  action,  e2fsck  will  print  a
          description  of the problem and then exit with the value 4 logi-
          cally or'ed into the exit code.  (See the  EXIT  CODE  section.)
          This  option  is normally used by the system's boot scripts.  It
          may not be specified at the same time as the -n or -y options.

   -y     Assume  an answer of `yes' to all questions; allows e2fsck to be
          used non-interactively.  This option may not be specified at the
          same time as the -n or -p options.

Помните, что вы должны перезагрузиться перед повторным монтированием чтения-записи!

0
ответ дан 3 December 2019 в 00:29

Раньше я работал над проектом типа "устройство", поэтому я сделал несколько вещей, которые частично позволяют решить эту проблему.

У одного устройства было достаточно памяти, поэтому корневая файловая система запускалась непосредственно из initrd. У initrd было достаточно fsck (force), затем смонтировать «/ mounts / persistent» и «/ mount / static»; почти все файлы, необходимые после этого, находились в одной из этих двух файловых систем.

Это имело то преимущество, что корневая файловая система никогда не нуждалась в «исправлении» - если что-то пойдет не так, она перезагрузится, и initrd станет чистым (поскольку тот используемый не был на диске). Все обновления initrd были просто установлены (предыдущие были доступны для загрузки); любые файлы, не относящиеся к исходной "статике", необходимые после "обновления прошивки" (= новый initrd), с этого момента перешли на initrd. «Статическая» файловая система в любом случае была доступна только для чтения. Требовалось создать резервную копию только постоянной файловой системы и «текущей версии прошивки». У меня были копии всех прошивок до их отправки.

2
ответ дан 3 December 2019 в 00:29

Теги

Похожие вопросы