由于 Meltdown 问题,我将 CentOS7 内核从 3.10.0-693.11.1 更新到 3.10.0-693.11.6,但更新后,我无法启动,因为 centos drop 到 dracut 时出现错误
warning /dev/mapper/centos-root does not exist
dracut:/# ls /dev/mapper/
control
dracut:/#
Run Code Online (Sandbox Code Playgroud)
看来我的 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
Run Code Online (Sandbox Code Playgroud)
我发现工具的问题通常是由 /sbin 中缺少二进制文件引起的,所以我安装了稳定内核并检查:
root@localhost ~# ls /sbin/lvm
/sbin/lvm
root@localhost ~# which lvm
/sbin/lvm
Run Code Online (Sandbox Code Playgroud)
因此二进制文件位于正确的位置,但由于某种原因 dracut 在 /sbin 中看不到它。
我的 3.10.0-693.11.1 和 …