如何使 LVM 处于可用启动状态?内核恐慌 - CentOS 6.6 中内核升级后 dracut 找不到逻辑卷

如何使 LVM 处于可用启动状态?内核恐慌 - CentOS 6.6 中内核升级后 dracut 找不到逻辑卷

我有一个 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 上永久解决问题的步骤:

  1. 打开删除“GRUB_CMDLINE_LINUX”中的/etc/default/grub内容rd_LVM_LV=
  2. 运行grub2-mkconifg创建一个新的/boot/grub2/grub.cfg

相关内容