Как добавить fsck при загрузке как обычную службу?

Есть и третья причина, которая оказалась моей проблемой:

Обычно в каждом пункте меню grub есть строка 'linux...' и строка 'initrd....'.

Поскольку у меня не хватило места в /boot, я удалил файл initrd...., запустил update -initramfs для другой версии ядра, но забыл запустить update -grub, который будет обновлять соответствующие записи.

Я исправил это, вручную добавив строку в меню загрузки во время последовательности загрузки, затем сделал ее постоянной после входа в систему и смог запустить обновление -grub.

2
12.10.2021, 04:31
3 ответа

Создайте файл/etc/systemd/system/MyFsckScript.service(не стесняйтесь заменить "MyFsckScript" , не изменяйте остальные )следующим содержимым:

[Unit]
Description=Filesytem check
Documentation=man:fsck(8)
Before=local-fs.target

[Service]
ExecStart=/sbin/fsck REPLACETHISBYYOURDRIVE

[Install]
Alias=fsck.service

Теперь запустите:systemctl enable fsckи теперь он будет запускаться при каждой загрузке.

Для некоторых дистрибутивов потребуется некоторая «подгонка» этого ответа, но это должно быть хорошим началом.

2
12.10.2021, 10:01

Вы можете настроить отдельные файловые системы ext *так, чтобы они требовали fsckпри каждом монтировании, используя

tune2fs -c 1 /dev/sda1  # replace with each device name

fsck.xfsне является -op. Он просто возвращает истину. fsck.zfsне существует. Я не проверял другие типы файловых систем. Служба systemd не требуется.

2
12.10.2021, 12:29

Systemd поставляется с systemd-fsck, его можно включить для проверки ФС при загрузке:

sudo systemctl enable systemd-fsck-root.service

или

sudo systemctl enable systemd-fsck@.service

См.man systemd-fsck

2
12.10.2021, 16:47

Теги

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