KVM卡在‘Booting from hard disk’:无Grub的Ubuntu Server 16.04虚拟机导入求助
解决无Grub引导的Hyper-V转KVM虚拟机启动问题
我之前碰到过完全一样的场景——把没装Grub的Hyper-V VHDX转成QCOW2后,KVM直接卡在「Booting from hard disk」界面不动。核心问题就是系统缺少引导加载程序,下面是我亲测有效的修复步骤:
步骤1:用Ubuntu安装镜像启动救援模式
- 下载Ubuntu Server 16.04的安装ISO镜像,在KVM中给你的虚拟机添加这个ISO作为光驱设备。
- 启动虚拟机,在GRUB引导菜单里选择「Rescue a broken system」(如果没看到这个选项,按
Esc调出完整GRUB菜单,找到救援模式选项)。
步骤2:挂载你的系统分区
进入救援模式后,系统会自动扫描磁盘:
- 当提示「Choose the partition containing the root file system」时,选中你的Ubuntu系统所在的分区(一般是
/dev/vda1,具体看扫描结果里的分区信息)。 - 选择「Mount the partition as read-write」,确认将分区挂载到
/target目录。
步骤3:进入chroot环境修复Grub
- 挂载完成后,选择「Execute a shell in /target」进入chroot环境(相当于直接操作你的系统分区)。
- 安装Grub到磁盘(注意这里要指定磁盘设备,不是分区,比如你的磁盘是
/dev/vda):grub-install /dev/vda - 更新Grub配置文件,让它识别并生成你的系统引导项:
update-grub
步骤4:重启验证
- 执行
exit退出chroot环境,然后选择「Reboot the system」重启虚拟机。 - 重启前记得移除安装ISO镜像,之后虚拟机应该就能正常引导进入系统了。
额外注意事项
- 转换磁盘时确保命令正确:用
qemu-img convert -f vhdx -O qcow2 your-source.vhdx your-target.qcow2完成格式转换,转换后可以用qemu-img check your-target.qcow2验证镜像完整性。 - 如果救援模式里找不到系统分区,先执行
fdisk -l查看磁盘分区情况,确认分区表没有损坏。 - KVM虚拟机的硬件架构尽量和原Hyper-V保持一致(比如x86_64),避免不必要的兼容性问题。
内容的提问来源于stack exchange,提问作者Miodrag
相关产品推荐
相关产品推荐

