Почему команда mount не ждет окончания работы systemd.fsck?

Всякий раз, когда systemd.fsck действительно должен выполнить ремонт* во время загрузки, автоматическое монтирование моего раздела не удается, потому что команда mount не ждет, пока systemd.fsck@dev-sda1.service будет выполнена.

Как сделать так, чтобы mount дождался завершения работы службы проверки файловой системы, а не отказал сразу, потому что проверка файловой системы была запущена?

Соответствующая строка в fstab выглядит следующим образом:

LABEL=cfdata   /data   ext4  defaults,nofail,x-systemd.device-timeout=60     0 0

(метка cfdata находится на /dev/sda1)

Соответствующие журналы systemd выглядят следующим образом, когда происходит неудачное монтирование при загрузке:

Jun 23 06:24:45 dev-machine-1 kernel:  sda: sda1
Jun 23 06:24:45 dev-machine-1 kernel: sd 0:0:0:0: [sda] Attached SCSI disk
Jun 23 06:24:47 dev-machine-1 systemd[1]: Starting File System Check on /dev/sda1...
Jun 23 06:24:47 dev-machine-1 mount[5563]: mount: /data: /dev/sda1 already mounted or mount point busy.
Jun 23 06:24:47 dev-machine-1 systemd-fsck[5483]: cfdata: recovering journal
Jun 23 06:24:49 dev-machine-1 systemd-fsck[5483]: cfdata: Clearing orphaned inode 13 (uid=0, gid=0, mode=0100644, size=39685)
Jun 23 06:24:49 dev-machine-1 systemd-fsck[5483]: cfdata: clean, 2767944/29310976 files, 75558004/117212630 blocks
Jun 23 06:24:49 dev-machine-1 systemd[1]: Started File System Check on /dev/sda1.
Jun 23 06:24:49 dev-machine-1 kernel: EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

Когда это происходит, диск монтируется в /media/ вместо моей точки монтирования в fstab.

Примечание: Когда systemd.fsck@dev-sda1.service должен выполнить восстановление, в журнале будет выведено что-то вроде: Clearing orphaned inode 13 (uid=0, gid=0, mode=0100644, size=39685). Проблема с монтированием возникает только тогда, когда fsck действительно делает что-то вроде этого и задерживает устройство.

2
задан 24 June 2021 в 01:46
1 ответ

Скажите вашей системе включить его в список проверки файловой системы:

Шестое поле (fs_passno).

Это поле используется fsck(8) для определения порядка, в котором выполняются проверки файловой системы во время загрузки. Корневая файловая система должна быть указана с fs_passno, равным 1. Другие файловые системы должны иметь fs_passno, равное 2. Файловые системы на одном диске будут проверяться последовательно, но файловые системы на разных дисках будут проверяться одновременно, чтобы использовать параллелизм, доступный в аппаратном обеспечении. По умолчанию равен нулю (don't fsck), если отсутствует.

(Из man fstab)

Сделайте строку читаемой

LABEL=cfdata   /data   ext4  defaults,nofail,x-systemd.device-timeout=60     0 2

И она должна обрабатываться автоматически.

2
ответ дан 28 July 2021 в 12:19

Теги

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