Принудительно fsck.ext4 при перезагрузке, но действительно «принудительно»

Принудительно fsck.ext4 при перезагрузке, но действительно «принудительно»

Один из моих серверов Ubuntu 10.04 доставляет мне неприятности. Когда я запускаю его, fsck.ext4 -n /dev/sda5он сообщает мне об ошибках в количестве свободных инодов, количестве свободных блоков и т. д.

Я пытался:

touch /forcefsck

Также пробовал:

shutdown -rF now

и все равно после перезагрузки я вижу ошибки.

Я только что проверил свой нетбук eeePC, Ubuntu 10.10, и у меня та же проблема!

Как можно принудительно выполнить действительно «принудительный», «принудительный», «серьёзно исправляющий мою файловую систему» ​​fsck файловой системы «/» при перезагрузке?

Пояснение:Я запускаю, fsck.ext4 -nпотому что это смонтированная файловая система, чтобы проверить, есть ли ошибки. Это говорит мне, что они есть. Я думал, что автоматический fsck каждые 30 монтирований во время процесса загрузкиименно такдля устранения ошибок в корневой файловой системе. Но в моем случае это не так. Я мог бы перезагрузиться с LiveCD и исправить ошибки, а затем перезагрузиться снова, но это серьезный простой для работающего сервера. Перезагрузка, автоматический fsck, затем продолжение загрузки гораздо более устойчивы на работающем сервере, и я считаю, что это должно быть правильным поведением.

Дополнительная информация:Вот вывод. Похоже, что autofsck исправит ошибку, не так ли?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks

решение1

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

Вам нужно запустить команду sudo touch /forcefsck. Это заставит ее выполнить fsck при следующей загрузке. Результаты fsck можно увидеть в /var/log/boot.log.

Однако нет гарантии, что fsck исправит все, что найдет. Для этого вам нужно будет отредактировать файл /etc/default/rcS. В конце этого файла есть строка:

FSCKFIX=no

Это необходимо изменить на следующее:

FSCKFIX=yes

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

Это позволит вам запустить fsck, как и просил автор, без необходимости прибегать к загрузке с живого диска, что не всегда возможно, особенно если вы работаете в удаленной системе.

решение2

sudo touch /forcefsck
sudo reboot

У вас опечатка - вы трогаете /forcefcsk. "c" и "s" поменяны местами. fsck - это сокращение от FileSystemChecK.

решение3

Из страницы руководства e2fsck:

«Обратите внимание, что в целом небезопасно запускать e2fsck на смонтированных файловых системах. Единственное исключение — если указана опция -n, а опции -c, -l или -L не указаны. Однако даже если это безопасно, результаты, выведенные e2fsck, недействительны, если файловая система смонтирована. Если e2fsck спрашивает, следует ли проверять смонтированную файловую систему, единственным правильным ответом будет «нет». Только эксперты, которые действительно знают, что делают, должны рассматривать возможность ответа на этот вопрос каким-либо другим способом».

Так что если вы проверите смонтированную FS с помощью fsck, даже используя опцию -n, результат может быть недействительным. Не проверяйте смонтированные файловые системы. Используйте Live-CD/Live-USB.

Если вы не проверяете файловую систему, пока она смонтирована, я не понимаю, зачем вам это нужно, touch /forcefsckвы можете просто размонтировать ее и исправить. Но если это так и после исправления ваша ФС все еще имеет ошибки, то вы можете рассмотреть возможность использования:

e2fsck -cy /dev/sda5

Это устранит проблему с жестким диском, которая может у вас возникнуть, например, из-за плохих блоков (это займет много времени).

Если вы хотите проверить смонтированную файловую систему, я не знаю, как это сделать, но думаю, вам следует создать другой вопрос.

решение4

Вы можете автоматически вносить изменения следующим образом:

Tune2fs -c 5 -i 10 / dev / sda1

-c— максимальное количество ездовых животных перед запуском fsckи -i— максимальное количество дней перед запуском fsck.

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

У меня два компьютера, один с Linux SuSE 13.2, а другой с Linux Mint 18.0, и на обоих всё работает отлично.

Связанный контент