CentOS官网上下载的GenericCloud镜像是VHD格式,MBR分区,只能挂着Hyper-V的一代虚拟机上。Hyper-V二代虚拟机使用VHDX格式,使用UEFI启动。迁移到二代机,主要是修改磁盘格式,转为GPT分区和激活UEFI启动系统linux
首先修改磁盘格式为VHDXcentos
使用Hyper-V创建2代虚拟机。添加上一步创建的vhdx磁盘,添加光驱。注意在“设置->固件”中把安全启动去掉,并在启动顺序把光盘启动提早。安全
转MBR分区为GPT分区工具
对系统所在的磁盘作分区操做须要救急光盘。hyper-v二代虚拟机,只在UEFI上启动,因此要使用支持UEFI启动的救急光盘。gparted-live-0.31.0-1-amd64.iso
,在移动磁盘分区的时候闪退。后来用super_grub2_disk制做的救急光盘 rescatux-0.51b3.iso
,能够工做。centos7
说实话被linux下名目繁多的分区工具闪花了眼。总结以下:code
首先,使用gparted移动和扩展已有的数据分区,这样新建的分区能够放到前面。固然也能够直接在原分区的末尾添加一个UEFI的启动ESP分区,但之后想扩展分区容量时,附在分区末尾的疤同样的存在就很讨厌了。排序
centos7使用xfs文件系统,gparted只能扩大和移动,不能缩小。移动原数据分区到末尾,注意末尾留下1M的空间。由于GPT会在磁盘末尾33个扇区备份分区表,留1M空间是为保持1M对齐。磁盘前面,留下1G+10M左右空间,其中1G作swap分区,零头10M左右为UEFI的启动分区,ESP分区。get
其次,使用gdisk把MBR格式转成GPT格式。转格式方法很简单,sudo gdisk /dev/sda
打开硬盘设备后,直接 w
,写入硬盘就能够了。固然,gdisk在GPT分区上仍是有特点的,咱们继续用它建立好分区。在交互模式下,先创建swap分区(分区类型8200)和ESP分区(分区类型EF00),而后记得按 s
对分区表从新排序。虚拟机
最后,为ESP分区创建文件系统,假设排过序后,ESP分区在第一个分区::it
sudo mkfs -t vfat /dev/sda1
ESP分区上要有FAT的文件系统。不然在后面的步骤时会没法启动系统。
激活centos的UEFI启动
使用super grub2 disk的另外一个工具光盘,super_grub2_disk_hybrid_2.02s10-beta5.iso
,别费力用刚才的 rescatux-0.51b3.iso
光盘里的easy gnu/linux boot fix功能,在这里没用。super_grub2_disk_hybrid_2.02s10-beta5.iso
,是个启动工具,帮助启动受损的系统,经过它启动进入系统。
使用 super_grub2_disk_hybrid_2.02s10-beta5.iso
启动系统,检测到虚拟机上已存在的centos7后,选择并进入。而后安装grub的EFI启动器。
修改/etc/fstab。先使用 sudo blkid
查看各分区id及文件系统。而后修改/etc/fstab,把ESP分区和swap分区加上,ESP分区挂载/boot/efi目录。
sudo mount -a
从新挂载文件系统
安装grub的EFI启动器::
sudo yum install grub2-efi-x64-modules sudo yum install efibootmgr sudo grub2-install --target x86_64-efi --bootloader-id=centos /dev/sda sudo grub2-mkconfig -o /boot/grub2/grub.cfg
OK. 移除光盘,从新启动系统。正常进入centos7。