Принудительно 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 и исправить ошибки, а затем перезагрузить снова, но это серьезное время простоя для живого сервера. Перезагрузка, auto 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
6 ответов
Со страницы руководства e2fsck:
"Обратите внимание, что в общем случае запускать e2fsck в смонтированных файловых системах небезопасно. Единственное исключение - это, если указана опция -n и не заданы опции -c, -l или -L. Однако даже если это безопасно для этого результаты, напечатанные e2fsck, недействительны, если файловая система смонтирована. Если e2fsck спросит, следует ли проверять смонтированную файловую систему, единственный правильный ответ - "нет". Только эксперты, которые действительно знают, что они должны рассмотреть вопрос об ответе на этот вопрос любым другим способом ".
Так что если вы проверяете смонтированную FS с помощью fsck, даже используя опцию -n, результат может быть вообще недействительным. Не проверяйте смонтированные файловые системы. Используйте Live-CD/Live-USB.
Если вы не проверяете файловую систему во время ее монтирования, я не понимаю, зачем вам использовать touch /forcefsck
Вы можете просто размонтировать его и починить. Но если это так, и после исправления у вашей FS все еще есть ошибки, тогда вы можете рассмотреть возможность использования:
e2fsck -cy /dev/sda5
Это устранит проблему, связанную с жестким диском, которая называется "плохие блоки" (это может занять много времени).
Если вы хотите проверить смонтированную файловую систему, я не знаю, как поступить, но я думаю, что вы должны создать еще один вопрос.
Я знаю, что это действительно старая тема, но недавно мне пришлось решить эту проблему, поэтому я хотел опубликовать, как заставить операционную систему исправлять проблемы, обнаруженные с помощью fsck во время загрузки (для 12.04).
Вам нужно запустить команду sudo touch /forcefsck
, Это заставит его выполнить fsck при следующей загрузке. Вы можете увидеть результаты fsck в /var/log/boot.log.
Тем не менее, вы не гарантированы, что fsck исправит все, что найдет. Для этого вам нужно отредактировать файл /etc/default/rcS. В конце этого файла есть строка:
FSCKFIX=no
Это должно быть изменено на следующее:
FSCKFIX=yes
Это будет иметь тот же эффект, что и запуск fsck с параметром -y, который принудительно выполнит все возможные исправления и не потребует взаимодействия с пользователем.
Это позволит вам запустить fsck, как того требовал OP, не прибегая к загрузке с живого диска, что не всегда возможно, особенно если вы работаете в удаленной системе.
sudo touch /forcefsck
sudo reboot
У вас есть опечатка - вы трогаете /forcefcsk. "С" и "S" поменялись местами. fsck - это сокращение от FileSystemChecK.
Вы не можете принудительно включить / восстановить fsck, поскольку раздел используется. Попробуйте запустить проверку из другого раздела или live cd.
Вы можете сделать изменения автоматически следующим образом:
Tune2fs -c 5 -i 10 / dev / sda1
-c
максимальное количество монтирований перед запуском fsck
а также -i
максимальное количество дней до запуска fsck
,
В этом случае будет проводиться каждые 5 раз или каждые 10 дней, в зависимости от того, что наступит раньше.
У меня есть два компьютера, один с Linux SuSE 13.2 и другой с Linux Mint 18.0, и на обоих он отлично работает.
touch /forcefsck
одна не обеспечила работу моей системы fsck
при следующей загрузке. Мне также нужно было запустить:
sudo tune2fs -c 1 /dev/<my partition>
например
sudo tune2fs -c 1 /dev/sda1
Более подробное объяснение я нашел здесь: Как заставить fsck проверять файловую систему после перезагрузки