Как автоматически форсировать диски fsck после сбоя в `systemd`?


18

Как настроить systemdавтоматическую принудительную fsckзагрузку дисков после сбоя (hard poweroff)?

Когда я использовал sysvinit(в Arch Linux), как /sbin/initя использовал хак: в файле rc.localя создаю /forcefsck; в rc.local.shutdownЯ удаляю это. При загрузке rc.sysinitвключите форсирование fsck, если оно /forcefsckсуществует.

Как сделать то же самое в systemd? Может быть, он имеет встроенные средства для автоматического fsckпосле дробления?


Ответы:


20

Вы можете принудительно выполнить принудительную fsckзагрузку, передав fsck.mode=force( autoпо умолчанию и skipможет вообще использоваться для пропуска проверки) в качестве параметра командной строки ядра (начиная с systemdv. 213 , есть также второй параметр: fsck.repair- для управления тем fsck, как обращаться с нечистыми файловыми системами при загрузке; возможные значения: preenисправить то, что можно безопасно исправить, yesответить «да» на все вопросы и noпо умолчанию).


Обратите внимание, что systemd-fsck он не знает никаких подробностей о конкретных файловых системах и просто выполняет проверки файловой системы, специфичные для каждого типа файловой системы ( /sbin/fsck.*) .
Теперь, если ваша файловая система есть xfsили btrfsона будет выполняться /sbin/fsck.xfsили /sbin/fsck.btrfsсоответственно. Если это не похоже на работу, возможно, вам следует проверить страницу руководства для fsck.xfsили, fsck.btrfsсоответственно, и изучить содержимое указанных файлов в /sbin.


1
Например, с помощью Grub: edit /etc/default/grub, затем добавьте fsck.mode=forceзначение GRUB_CMDLINE_LINUX_DEFAULT. Тогда беги update-grubи reboot.
Иван

2
не работает для XFS кстати но эй. это будущее.
Флориан Хейгл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.