我有一个 centoOS 6.6 vmware 虚拟机,我yum update
在其上运行并升级了内核
重新启动后,我开始得到这个:
dracut Warning: No root device "block:/dev/vg_myhost/lv_root" found
dracut Warning: LVM /dev/vg_myhost/lv_root not found
dracut Warning: LVM /dev/vg_myhost/lv_swap not found
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: init Not tainted 2.6.32-504.16.2.el6.x86_64 #1
panic
do_exit
fput
do_group_exit
sys_exit_group
system_call_fastpath
我将 rdshell 添加到我的内核参数中并再次重新启动。出现同样的错误后,启动顺序落入 rdshell。
在外壳上,我跑了lvm lvdisplay
,它找到了卷,但它们被标记为LV 状态不可用
dracut:/#lvm lvdisplay
--- Logical volume ---
LV Path /dev/vg_myhost/lv_root
LV Name lv_root
VG Name vg_myhost
...
LV Status NOT available
...
然后我就能够激活这些。
dracut:/# lvm vgchange -ay
2 logical volume(s) in volume group "vg_myhost" now active
dracut:/# exit
...boots normally...
使这些可用并退出 dracut shell 后,操作系统就可以正常启动了。
但再次重新启动后我遇到了同样的问题。
笔记如果我使用旧内核启动,这一切都可以正常工作
新的内核参数
kernel /vmlinuz-2.6.32-504.16.2.el6.x86_64 ro root=/dev/vg_myhost/lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_myhost/lv_root rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_myhost/lv_swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rdshell
旧内核参数:
kernel /vmlinuz-2.6.32-504.8.1.el6.x86_64 ro root=/dev/vg_myhost/lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_myhost/lv_root rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_myhost/lv_swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
我的问题:如何让新内核在启动时看到这些卷?
答案1
我的 RHEL 7 机器上也有同样的问题。但它使用GRUB2。
当我删除rd_LVM_LV=
内核参数中的那些时。启动前按e,删除rd_LVM_LV=
内核参数中的那些,输入CTRL+ xI 即可成功启动。
在 RHEL 7 上永久解决问题的步骤:
- 打开删除“GRUB_CMDLINE_LINUX”中的
/etc/default/grub
内容rd_LVM_LV=
- 运行
grub2-mkconifg
创建一个新的/boot/grub2/grub.cfg