如何迁移virtualbox 的虚拟机到hype-v
迁移virtualbox虚拟机核心工作就是虚拟盘格式迁移到hyper-v支持的格式上,本身操作比较简单,但是如果遇到boot方式不对应则需要手动修正,否则无法正常启动,同时也介绍了如何调整显示分辨率。...
简介:迁移virtualbox虚拟机核心工作就是虚拟盘格式迁移到hyper-v支持的格式上,本身操作比较简单,但是如果遇到boot方式不对应则需要手动修正,否则无法正常启动。
迁移流程:
*virtualbox 下把虚拟机处于关闭状态(非停止),在命令行下运行下面命令:
VBoxManage.exe clonehd --format vhd "C:\temp\VM\src-disk.vmdk" "C:\temp\VM\target-disk.vhd"
其中src-disk.vmdk为virtualbox 创建好的虚拟盘,而目标文件target-disk.vhd是hyper-v支持的格式
*启动hyper-v新建一个虚拟机,在进入连接虚拟硬盘环节选择你刚转换的虚拟硬盘:
*顺利的话即可启动新虚拟机。
无法启动故障分析:
现象:屏幕只是一个光标闪烁,连ubuntu的grub菜单都不出现,则可能是hyper-v和虚拟盘配置的启动方式不对造成。
解决方法:
检查当下hyper-v方式方法:
关闭系统
重新连接:
点击媒体->DVD驱动器->插入磁盘 来挂接ubuntu 的iso文件,如果已经挂接可以忽略这步
点击启动,hyper-v从ubuntu iso 启动并进入ubuntu光盘演示模式。
在演示模式命令行下面输入
sudo efibootmgr -v
如果出现 "EFI variables are not supported on this system",意味着hype-v当前是处于早期的bios mbr启动模式,否则就是UEFI引导模式。
我的hyper-v是mbr引导模式。
提示,创建hyper-v时候选择代数就是影响启动模式(虽然我的虚拟机是uefi模式,但是创建磁盘时候hyper-v 禁止我选择该模式):
输入fdisk -l检查当前系统的boot模式。对我的虚拟机,虚拟盘是两个分区,其中一个分区属于uefi,另外一个是主系统区域,即在virtualbox里面安装的系统是uefi引导而hyper-v是采用bios mbr引导,两者不一致导致系统无法加载。
由于hyper-v并不支持修改引导模式,故需要把ubuntu系统切到老的bios引导模式。
方法如下(继续在光盘演示模式下):
运行GParted ,删除uefi分区,并创建一个标识为bios_grub的未格式化分区,也可以用fdisk 修改该分区类型为4 (bios boot类型),分区不要少于1M(注意不是修改你系统分区,系统分区一般是ext4类型)
然后依次运行下面命令(其中sda2要依据fdisk输出来调整):
mount /dev/sda2 /mnt/
mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -t sysfs sys /mnt/sys
chroot /mnt/ /bin/bash
update-grub
/usr/sbin/grub-install --recheck --no-floppy /dev/sda
重新启动,正常情况下grub会出现,启动过程中会进入紧急修复模式,这是因为删除uefi分区导致,可以用vi编辑器注释掉/etc/fstab里面对应分区的挂接,对我的系统是一个id 为747f-1e42的分区。
重启后即可正常进入系统,不要忘记卸载掉virtualbox的无用的插件:
sudo vbox-uninstall-guest-additions
如果你还希望调整hyper-v 虚拟窗口的尺寸,可以按照下面方式进行:
1 进入ubuntu系统,编辑grub
Sudo vim /etc/default/grub
修改 其中GRUB_CMDLINE_LINUX_DEFAULT内容如下:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"
其中1920x1080就是希望的分辨率
2 运行sudo update-grub
3 安装额外的驱动:sudo apt install linux-image-extra-virtual
4 重启系统
这时候hyper-v的显示尺寸已经变大了。
更多推荐
所有评论(0)