Meltdownの問題が原因でCentOS7カーネルを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内でそれを見ていません。
3.10.0-693.11.1と3.10.0-693.11.6のGRUB設定はほとんど同じです
#: 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のmanページを調べたところ、LVMに多くのオプションがありましたが、自動検出が機能していないと思いますが、以前のカーネルで機能するのになぜ新しいバージョンに問題があるのですか?また、さらにデバッグするために、initramでlvmツールを機能させるにはどうすればよいですか?
アドバイスありがとうございます!
更新: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を追加しても、有用なものはありません。
私はこの問題を抱えていました。私はそれを修正しました:
ライブ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がマウントされない問題が発生しました(回復シェルに移動します)。修正したら更新します。