1、问题前提
从其它虚拟化平台上迁移CentOS操作系统到H3C CAS虚拟化平台(基于KVM),其它平台未知,方法可以尝试。
这是条guanggao:H3C CAS是面向数据中心自主研发的虚拟化平台,是下一代云数据中心的基石,全世界最niubility虚拟化平台。
2、问题
CentOS操作系统从其它虚拟化平台(VMWARE、华为)迁移到H3C CAS虚拟化平台,启动操作系统报错Volume group “VolGroup00”not found,Unable to access resume device(/dev/VolGroup00/LogVol01)”,错误如下图:
3、问题分析
在迁移完成CentOS操作系统,按照操作指导安装H3C Cas Tool工具后,已经包含磁盘virtio驱动,所以并非缺少磁盘驱动。一般原创建虚拟机的时候默认选择IDE盘,操作系统不会将virtio驱动写入initrd中,导致内核启动的时候无法加载virtio驱动,从而无法识别硬盘,所以需要手动写入virtio驱动到启动加载里。
4、解决方法
编辑虚拟机,修改磁盘类型为IDE,系统正常启动,使用root账号登录系统,cd到/boot目录下,执行下面命令修改。
CentOS 5.X
mkinitrd --with=virtio --with=virtio_pci --with=virtio_blk --with=virtio_net -f /boot/initrd-$(uname -r).img $(uname -r)
CentOS 7.X
mkinitrd --with=virtio --with=virtio_pci --with=virtio_blk --with=virtio_net –v /boot/initramfs-$(uname -r).img `uname –r` --force
命令执行完没有报错就说明执行成功了,然后关闭虚拟机,按照更换磁盘类型的步骤删除IDE盘,新增virtio盘,重新启动虚拟机,检查是否正常启动。
5、扩展
Linux系统启动流程
系统启动两个阶段:
第一阶段:MBR(硬盘0分区)
--定位第二阶段的启动代码,并转交控制权
第二阶段:GRUB(grub配置在/boot/grub/grub.conf)
--显示启动列表、启动参数
--提供简单的交互shell
GRUB文件说明:
root (hd0,0):指定根分区
--这个根分区是grub内部定义的根分区,和Linux无关。
kernel:指定grub要引导的内核文件
--每个系统的内核文件均不同
--若系统支持,则可以向内核传递参数
initrd:初始内存盘。
--存放Linux内核所需的功能模块
--此项为Linux特有