centos7 从 Hyper-V 的一代虚拟机迁移到二代虚拟机 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
atuocn
V2EX    Linux

centos7 从 Hyper-V 的一代虚拟机迁移到二代虚拟机

  •  
  •   atuocn 2018-06-29 13:41:56 +08:00 3503 次点击
    这是一个创建于 2739 天前的主题,其中的信息可能已经有所发展或是发生改变。

    CentOS 官网上下载的 GenericCloud 镜像是 VHD 格式,MBR 分区,只能挂着 Hyper-V 的一代虚拟机上。Hyper-V 二代虚拟机使用 VHDX 格式,使用 UEFI 启动。迁移到二代机,主要是修改磁盘格式,转为 GPT 分区和激活 UEFI 启动系统

    1. 首先修改磁盘格式为 VHDX

      • 使用 Hyper-V 管理器,编辑磁盘,把 CentOS-7-x86_64-GenericCloud.vhd 转换成 CentOS-7-x86_64-GenericCloud.vhdx
      • 因为 GPT 启动要建立 ESP 分区,所以需要扩大磁盘( centos 使用 xfs 文件系统,gparted 不支持缩小 xfs 分区。)。仍使用 Hyper-V 管理器,编辑磁盘,扩展,最少增加 1G。那就增加 2G 吧,多点空间随便做个交换分区。
    2. 使用 Hyper-V 建立 2 代虚拟机。添加上一步建立的 vhdx 磁盘,添加光驱。注意在“设置->固件”中把安全启动去掉,并在启动顺序把光盘启动提前。

    3. 转 MBR 分区为 GPT 分区

      对系统所在的磁盘做分区操作需要救急光盘。hyper-v 二代虚拟机,只在 UEFI 上启动,所以要使用支持 UEFI 启动的救急光盘。gparted-live-0.31.0-1-amd64.iso ,在移动磁盘分区的时候闪退。后来用super_grub2_disk制作的救急光盘 rescatux-0.51b3.iso ,可以工作。

      说实话被 linux 下名目繁多的分区工具闪花了眼。总结如下:

      • gparted GNOME 的图形化分区工具,支持 GPT 和 MBR。支持无损移动 /修改分区大小(视文件系统)
      • fdisk 传统的分区工具,早期版本不支持 GPT,现已支持 MBR 和 GPT。支持交互式操作。
      • gdisk 对应 fdisk 的 GPT 分区工具。支持交互操作模式。特色功能是无损转 MBR 到 GPT 分区,还能建立混合 GPT/MBR

      首先,使用 gparted 移动和扩展已有的数据分区,这样新建的分区可以放到前面。当然也可以直接在原分区的末尾添加一个 UEFI 的启动 ESP 分区,但以后想扩展分区容量时,附在分区末尾的疤一样的存在就很讨厌了。

      centos7 使用 xfs 文件系统,gparted 只能扩大和移动,不能缩小。移动原数据分区到末尾,注意末尾留下 1M 的空间。因为 GPT 会在磁盘末尾 33 个扇区备份分区表,留 1M 空间是为保持 1M 对齐。磁盘前面,留下 1G+10M 左右空间,其中 1G 做 swap 分区,零头 10M 左右为 UEFI 的启动分区,ESP 分区。

      其次,使用 gdisk 把 MBR 格式转成 GPT 格式。转格式方法很简单,sudo gdisk /dev/sda 打开硬盘设备后,直接 w,写入硬盘就可以了。当然,gdisk 在 GPT 分区上还是有特色的,我们继续用它创建好分区。在交互模式下,先建立 swap 分区(分区类型 8200)和 ESP 分区(分区类型 EF00),然后记得按 s 对分区表重新排序。

    最后,为 ESP 分区建立文件系统,假设排过序后,ESP 分区在第一个分区::

    sudo mkfs -t vfat /dev/sda1 

    ESP 分区上要有 FAT 的文件系统。否则在后面的步骤时会无法启动系统。

    1. 激活 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。


    从我的 oschina 的空间2转载至此

    1 条回复    2018-06-29 13:58:29 +08:00
    la0wei
        1
    la0wei  
       2018-06-29 13:58:29 +08:00
    微软自己的群集管理器里说来宾系统至少 win8 或 2012,我倒是没有思考与一代有什么根本性的差异,学习了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     838 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 21:02 PVG 05:02 LAX 13:02 JFK 16:02
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86