web-dev-qa-db-ja.com

利用可能な起動時にLVMを作成する方法は?カーネルパニック-CentOS6.6でカーネルをアップグレードした後、dracutが論理ボリュームを見つけることができません

カーネルをアップグレードしたyum updateを実行したcentoOS6.6 vmwarevmがあります

再起動後、私はこれを取得し始めました:

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...

これらを利用可能にしてdracutShellを終了した後、OSは正常に起動しました。

しかし、再起動した後、同じ問題が発生しました。

古いカーネルで起動すると、これはすべて正常に機能します

新しいカーネル引数

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
marathon

RHEL7マシンでも同じ問題が発生します。ただし、GRUB2を使用します。

カーネル引数でそれらのrd_LVM_LV=を削除すると。押す e 起動する前に、カーネル引数でそれらのrd_LVM_LV=を削除し、次のように入力します CTRL+x その後、正常に起動できます。

RHEL 7で永続的に解決する手順:

  1. 「GRUB_CMDLINE_LINUX」で/etc/default/grubを開きますrd_LVM_LV=を削除します
  2. grub2-mkconifgを実行して、新しい/boot/grub2/grub.cfgを作成します
1
MichaelWang