Команда CentOS7 Dracut lvm не найдена

Я обновил ядро ​​CentOS7 из-за проблемы с Meltdown с 3.10.0-693.11.1 до 3.10.0-693.11.6, но после этого обновления я не могу загрузиться поскольку centos падает на dracut с ошибкой

warning /dev/mapper/centos-root does not exist

dracut:/# ls /dev/mapper/
control
dracut:/# 

Похоже, мой initrd настроен неправильно, я все еще могу загрузить 3.10.0-693.11.1 без каких-либо проблем. Я пытаюсь отладить это (есть много ресурсов в Интернете), но похоже, что мне здесь чего-то принципиально не хватает, так как я не могу выполнить команду lvm ​​

dracut:/# lvm scan
sh: lvm: command not found
dracut:/# ls /etc/lvm/lvm.conf
ls: cannot access /etc/lvm/lvm.conf: No file or dictionary
dracut:/# ls /etc/lvm
ls: cannot access /etc/lvm: No file or dictionary

Я видел, что обычно проблема с инструментами вызвана отсутствием двоичных файлов в / sbin, поэтому я загрузил стабильное ядро ​​и проверил:

root@localhost ~# ls /sbin/lvm
/sbin/lvm
root@localhost ~# which lvm
/sbin/lvm

Итак, двоичный файл находится в правильном месте, но по какой-то причине dracut не видит его внутри / sbin.

Моя конфигурация grub для 3.10.0-693.11.1 и 3.10.0-693.11.6 почти идентична

#: after update kernel params
linux16 /vmlinuz-3.10.0-693.11.6.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=128M rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rdshell 
#: before update kernel params
linux16 /vmlinuz-3.10.0-693.11.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=128M rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rdshell

Здесь я немного боролся: я просмотрел страницу руководства dracut и там много вариантов для LVM, Я нажимаю, что автообнаружение не работает, но почему оно работает с предыдущим ядром, а в новом есть проблема? Также как я могу получить работающие инструменты lvm на initram, чтобы отлаживать его дальше?

Спасибо за любой совет!

ОБНОВЛЕНИЕ: Запуск lsinitrd -m -k показывает, что внутри ramdisk нет модуля lvm

========================================================================
Image: /boot/initramfs-3.10.0-693.11.6.el7.x86_64.img: 18M
========================================================================
Early CPIO image
========================================================================
drwxr-xr-x   3 root     root            0 Jan 22 11:15 .
-rw-r--r--   1 root     root            2 Jan 22 11:15 early_cpio
drwxr-xr-x   3 root     root            0 Jan 22 11:15 kernel
drwxr-xr-x   3 root     root            0 Jan 22 11:15 kernel/x86
drwxr-xr-x   2 root     root            0 Jan 22 11:15 kernel/x86    /microcode
-rw-r--r--   1 root     root        24576 Jan 22 11:15 kernel/x86    /microcode/GenuineIntel.bin
========================================================================
Version: dracut-033-502.el7

dracut modules:
bash
nss-softokn
i18n
network
ifcfg
drm
plymouth
kernel-modules
qemu
resume
rootfs-block
terminfo
udev-rules
biosdevname
systemd
usrmount
base
fs-lib
shutdown
========================================================================

Я пытался добавить драйвер ядра lvm в образ initram, но, к сожалению, это не удалось без каких-либо видимых проблем:

dracut --add-drivers  lvm /boot/initramfs-3.10.0-693.11.6.el7.x86_64.img

dracut[27939]: Failed to install module lvm

добавление -v не указывает ни на что полезное.

1
задан 24 January 2018 в 13:34
2 ответа

У меня была эта проблема. Я исправил это с помощью:

входа в live cd (восстановление тоже подойдет)

cp /etc/dracut.conf /etc/dracut.conf.bak

nano /etc/dracut.conf

Поправив следующие строки:

# dracut modules to add to the default
add_dracutmodules+="lvm"

# install local /etc/mdadm.conf
mdadmconf="yes"

# install local /etc/lvm/lvm.conf
lvmconf="yes"

(mdadmconf вам, вероятно, не понадобится, я добавил его, поскольку у меня есть Raid.)

Повторно запустить dracut -f для моего ядра. Перезагрузка.

Это помогло мне решить проблему lvm. Теперь у меня проблемы с тем, что sysroot не монтируется (он сбрасывает меня в оболочку восстановления). Я обновлю, когда исправят.

3
ответ дан 3 December 2019 в 18:28

Убедитесь, что установлен пакет lvm2.

yum install -y lvm2
0
ответ дан 30 December 2020 в 08:29

Теги

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