1. 停止 PV 實例。
注意:我們建議您在測試 PV 實例上執行此步驟。要創建測試實例,請先為您的 PV 實例創建映像。之後,從映像啟動新的 PV 實例。
2. 為 PV 實例的根卷創建快照。
3. 將 PV 實例的根卷快照還原為新 EBS 卷。該卷必須在 PV 實例所在的可用區中還原。
4. 從 Amazon Linux HVM AMI 啟動新實例。該實例必須在 PV 實例所在的可用區中啟動。
5. 選擇從 PV 實例的根快照還原的 EBS 卷。然後,以 /dev/xvdf 的形式連接該捲到新的 HVM 實例。
6. 創新新的空白 EBS 卷,其大小與從 PV 實例的根快照還原的捲相同。將新的空白 EBS 卷以 /dev/xvdg 的形式連接到 HVM 實例。
注意:執行此步驟後,新的 HVM 實例將包含三個卷。
7. 使用 SSH 連接到新的 HVM 實例。
注意:您必須具有根用戶權限才能繼續執行後續步驟。
8. 運行以下命令以顯示卷:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 8G 0 disk
xvdg 202:96 0 8G 0 disk
注意:xvda 是 HVM 實例的根卷。 xvdf 是從 PV 實例的根快照還原的捲。 xvdg 是新的空白卷。
9. 運行以下命令以在 xvdg (新卷) 上創建新分區。
# parted /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'
# partprobe /dev/xvdg
# udevadm settle
注意:這些命令將創建 xvdg1。
10. 運行以下命令以檢查 xvdf (PV 根卷) 的大小並將原始文件系統的大小降到最小。要想加快該過程,請勿在下一步中復制可用磁盤空間。
# e2fsck -f /dev/xvdf ; resize2fs -M /dev/xvdf
11. 運行以下命令以將 xvdf (PV 根卷) 複製到 xvdg1 (新卷):
# dd if=/dev/xvdf of=/dev/xvdg1 bs=$(blockdev --getbsz /dev/xvdf) conv=sparse count=$(dumpe2fs /dev/xvdf | grep "Block count:" | cut -d : -f2 | tr -d "\\ ")
12. 運行以下命令以將 xvdg1 (新卷) 的大小調整到其最大大小:
# e2fsck -f /dev/xvdg1 && resize2fs /dev/xvdg1
13. 運行以下命令以準備好將 xvdg1 (新卷) 轉換為 HVM 實例的根卷:
# mount /dev/xvdg1 /mnt/ && mount -o bind /dev/ /mnt/dev && mount -o bind /sys /mnt/sys && mount -o bind /proc /mnt/proc
14. 運行以下命令以將 xvdg1 (新卷) 轉換為 HVM 實例的根卷:
# chroot /mnt/
15. 運行以下命令以在新根卷上重新安裝 GRUB 引導程序:
# yum reinstall grub -y
# rm -f /boot/grub/*stage* /boot/grub/device.map
# grub-install /dev/xvdg
16. “grub-install”命令返回以下消息。此消息在預料之中 - 將其忽略並繼續執行下一步。
Probing devices to guess BIOS drives. This may take a long time.
Unknown partition table signature
/dev/xvdg does not have any corresponding BIOS drive.
17. 運行以下命令以更新 GRUB 引導程序配置。
# cat <<EOF | grub --batch
device (hd0) /dev/xvdg
root (hd0,0)
setup (hd0)
EOF
# sed -i 's/root\ (hd0)/root (hd0,0)/g' /etc/grub.conf
# sed -i 's/root\ (hd0)/root (hd0,0)/g' /boot/grub/menu.lst
# sed -i 's/console=hvc0/console=ttyS0/g' /etc/grub.conf
# sed -i 's/console=hvc0/console=ttyS0/g' /boot/grub/menu.lst
18. 運行以下命令以退出“chroot”函數:
# exit
19. 運行以下命令以關閉實例:
# halt
20. 將您之前連接到 HVM 實例的三個卷分離出來。
21. 選擇您之前以 /dev/xvdg 形式連接的捲 (新卷)。以 /dev/xvda 形式重新連接此捲到 HVM 實例。
22. 啟動 HVM 實例。
新的 HVM 實例是源 PV 實例的精確副本。確認 HVM 實例正常工作後,可以終止源 PV 實例。您也可以刪除以下兩個臨時卷:HVM 實例的原始根卷以及從 PV 實例的根快照還原的捲。
Hits: 122