centos7從Hyper-V的一代虛擬機遷移到二代虛擬機

CentOS官網上下載的GenericCloud鏡像是VHD格式,MBR分區,只能掛着Hyper-V的一代虛擬機上。Hyper-V二代虛擬機使用VHDX格式,使用UEFI啓動。遷移到二代機,主要是修改磁盤格式,轉爲GPT分區和激活UEFI啓動系統linux

  1. 首先修改磁盤格式爲VHDXcentos

    • 使用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 ,能夠工做。centos7

    說實話被linux下名目繁多的分區工具閃花了眼。總結以下:code

    • 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分區。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的文件系統。不然在後面的步驟時會沒法啓動系統。

  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。

相關文章
相關標籤/搜索