P2V Unable to find volume group "VolGroup00"

问题发生

最近在对一批老系统进行P2V,但天有不测风云,总是有这样的问题困扰着你和我,系统迁移后无法正常启动内核,并给出下面信息:

ERROR: /bin/insmod exited abnormally (pid 507)
    No volume groups found
    Volume group "VolGroup_ID_5090" not found
ERROR: /bin/lvm exited abnormally (pid 534)
mount: error 6 mounting ext3
mount: error 2 mounting none
switchroot: mount failed: 22
umount /initrd/dev failed: 2
kernel panic - not syncing: Attempted to kill init!

一时搞得我束手无策,经过反复测试从VMware社区找到了解决方法

解决方法

  1. 挂载系统镜像盘进入恢复模式
    输入:linux rescue后回车Enter

     boot: linux rescue
    

    Choose a Language => English
    Keyboard Type => us
    Setup Networking => No
    Recue => Continue

  2. 切换根到目标系统目录

     chroot /mnt/sysimage
    
  3. 修改/etc/modprobe.conf文件(确保它是空白的,如果需要,你可以先备份)
    修改成下面内容

     alias scsi_hostadapter mptbase
     alias scsi_hostadapter1 mptscsih
     alias scsi_hostadapter2 mptscsih
     alias scsi_hostadapter3 mptscsih
     alias scsi_hostadapter4 mptscsih
    
  4. 确定GRUB所引导内存文件系统版本

     cat /boot/grub/grub.conf
    

    找到类似initrd /initrd-<内核版本>.img记下内核版本号下面要用

  5. 重新构建initramfs文件(如果需要,可以先备份)

     mkinitrd -v -f /boot/initrd-<内核版本>.img <内核版本>
    
  6. 重启你的系统进行验证
    输入命令exit两次,即可自动重启

经过我的验证,在第3步加到第二行就行了,我的情况可用!

新的解决方法

最近由遇到新的问题,initrd也重新构建了,各个引导项中磁盘我也改成了常规的绝对路径(如:/dev/sda1,不是使用UUIDLABLE),但内核还是报找不到/dev/root文件系统,经过反复探索,发现是内核损坏,只能重新安装内核。

  1. 挂载系统镜像盘进入恢复模式
    输入:linux rescue后回车Enter

     boot: linux rescue
    

    Choose a Language => English
    Keyboard Type => us
    Setup Networking => No
    Recue => Continue

  2. 切换根到目标系统目录

     chroot /mnt/sysimage
    

    确认各个文件分区能正确挂载

  3. 退回光盘修复系统(伪Linux)

     exit
    
  4. 挂载系统安装光盘(必须与目标系统版本一致)

     mount /dev/hda /mnt/soure
    
  5. 重新安装内核包,修复受损内核

     rpm -ivh /mnt/soure/RPMS/Asianux/kernel-2.6.18-238.2.AXS3.x86_64.rpm --root=/mnt/sysimage --force
    

    其他发行版的也适用,只要选择相应的安装包即可,命令可能会不同,但基本思路就这样

  6. 重新引导验证是否搞定
    我这边遇见了很多这样的情况,就是内核和引导镜像都损坏,所有这时我会和上面的步骤一起做,这个没有先后循序。

如果问题依旧

  • 检查自己的步骤是否正确
    先使自己保持冷静,我常常因这些问题而感到焦虑,并自以为是的认定所做的每一步是正确的,但到最后发现往往就错在那些基本的操作上。
  • 确定GRUB配置
    先查看/boot/grub/grub.conf默认引导版本,务必确保是第4步构建的版本。这个路径是你使用chroot命令后的路径,如果没事用这个命令,应该为<你磁盘的挂载点>/boot/grub/grub.conf
  • 确定构建是否正确
    因恢复模式使用的是sh作为默认shell,默认环境变量又没有设置,导致你文件构建在其他目录,使得grub引导是还是用的原来的文件。
  • 问题的确定
    我总结了一下,大部分问题主要出现在GRUB内核initrd镜像文件系统fstab等,如果一开机什么都没有,那么重装GRUB就可以了,还有些就是grub.conf没有正确的标识根文件系统所在分区或标识错误,如使用lable标签方式,但P2V过来后标签信息丢失。还有就是使用了UUID方式,转换过来后UUID被改变,都是导致系统服务器正常启动;内核损坏这种概率虽小,但还是会发生;最多的就是initrd镜像了,因为原来的是为了适应原有的硬件所构建相关的驱动模块,大多都是磁盘驱动模块出的问题,适合VMware SCSI接口驱动的推荐mptscsih模块,可以把原有的模块禁用掉,因为磁盘驱动都没有,所有Linux肯定找不到文件系统,所以系统才会报错;还有就是文件系统的问题,这类主要发生使用了LVS文件系统,新版本对块支持比较好,其他的就是fstab的配置了,这个大多可以进修复模式进行确认和修改,主要的还是关于uuidlable两种识别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值