Принудительно перезагрузить fsck.ext4, но действительно & ldquo; forceful & rdquo;

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

Я пытался:

touch /forcefsck

Также пытался:

shutdown -rF now

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

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

Как заставить действительно «принудительное» «принудительное» «серьезно исправить мою файловую систему« fsck of »/ "файловая система при перезагрузке?

Пояснение: Я запускаю 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
22
задан 31 May 2012 в 19:24

6 ответов

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

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

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

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

e2fsck -cy /dev/sda5

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

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

0
ответ дан 31 May 2012 в 19:24

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

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

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

FSCKFIX=no

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

FSCKFIX=yes

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

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

0
ответ дан 31 May 2012 в 19:24
sudo touch /forcefsck
sudo reboot

У вас есть опечатка - вы трогаете / forcefcsk. «С» и «S» поменялись местами. fsck - это сокращение от FileSystemChecK.

0
ответ дан 31 May 2012 в 19:24

Вы не можете принудительно включить / восстановить fsck, поскольку раздел используется. Попробуйте запустить проверку из другого раздела или live cd.

0
ответ дан 31 May 2012 в 19:24

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

Tune2fs -c 5 -i 10 / dev / sda1

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

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

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

0
ответ дан 31 May 2012 в 19:24

touch /forcefsck один не гарантировал, что моя система запустит fsck при следующей загрузке. Мне также нужно было запустить:

sudo tune2fs -c 1 /dev/<my partition>

например.

sudo tune2fs -c 1 /dev/sda1

Более подробное объяснение я нашел здесь: Как заставить fsck проверять файловую систему после перезагрузки

0
ответ дан 31 May 2012 в 19:24

Другие вопросы по тегам:

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