Моя система является хинду основанной на Linux начальной загрузкой от LVM базирующийся корневой раздел.
Система успешно загружается через initrd. Это запускает init основного ядра, но затем перестало работать при попытке проверить корневой диск (/etc/init.d/checkroot).
Ошибка, о которой сообщают, состоит в том, что корневой диск (/dev/vg/lv) недоступен fsck.whichever.
[Примечание: Я выяснил одно решение этой проблемы, и отправляю это для помощи другим. Если Вы знаете лучший подход, я хотел бы услышать об этом!]
Проблема могла быть то, что LVM блокировка схемы не позволяет группе объема быть активированной.
Если lvm.conf имеет:
/etc/lvm/lvm.conf
locking_type = 1
:
locking_dir = "/var/lock/lvm"
Затем каталог блокировки должен быть записываемым, чтобы группа объема была активирована. Это - проблема на этапе checkroot, поскольку корневая файловая система только только для чтения в этой точке.
Возможно установить locking_type на 0, но это несет риски данных потерь.
Несколько из команд lvm принимают - ignorelockingfailure опция, которая позволяет блокировке временно обойтись. Это используется в initrd, запускают сценарии.
Чтобы заставить checkroot работать, я добавил две строки, прежде чем он на самом деле начал.
&& ! is_net_fs / && ! is_union_fs / ; then
+ lvm vgchange -ayl --ignorelockingfailure
+ lvm vgmknodes --ignorelockingfailure
if touch -c / >& /dev/null ; then