ติดตั้งgrub
บนอินสแตนซ์ PV ที่จะย้ายข้อมูล (อินสแตนซ์ต้นทาง)
ทำสแน็ปช็อตข้อควรระวังของวอลุ่ม root บนอินสแตนซ์แหล่งที่มา (source volume, SV)
สร้างอินสแตนซ์ HVM ชั่วคราวซึ่งจะโอนย้ายโวลุ่ม
- ฉันใช้อินสแตนซ์ Amazon Linux
สร้างโวลุ่มปลายทาง (DV) และแนบทั้งนี้และ SV กับอินสแตนซ์ชั่วคราว
DV ควรใหญ่อย่างน้อยเท่ากับ SV
แนบ SV เป็น/dev/{sd,xvd}f
และ DV /dev/{sd,xvd}g
เป็น
แบ่งพาร์ติชัน DV:
parted /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'
partprobe /dev/xvdg
udevadm settle
ปรับขนาดให้เล็กที่สุดของ FS ของ SV และใช้dd
ภาพลงบน DV
ทำความสะอาด FS ของแหล่งที่มา: e2fsck -f /dev/xvdf
ย่อเล็กสุด: resize2fs -M /dev/xvdf
สังเกตเอาท์พุทจาก resize2fs (เช่นResizing the file system on /dev/xvdf to 269020 (4k) blocks
) และจดบันทึกไว้สำหรับขั้นตอนต่อไป
ทำซ้ำ SV เป็น DV: dd if=/dev/xvdf of=/dev/xvdg1 bs=<block size from previous step, here 4k> count=<use block count from last step, here 269020>
ขยาย FS บนพาร์ติชันใหม่: resize2fs /dev/xvdg1
ติดตั้งgrub
ลงในบล็อกการบูตของ DV
สร้างไฟล์อุปกรณ์ชั่วคราวบน DV: mount /dev/xvdg1 /mnt; cp -a /dev/xvdg /dev/xvdg1 /mnt/dev/
ติดตั้งไฟล์ด้วง:
rm -f /mnt/boot/grub/*stage*
cp /mnt/usr/*/grub/*/*stage* /mnt/boot/grub/
rm -f /mnt/boot/grub/device.map
- ติดตั้งด้วงในสภาพแวดล้อม chroot:
cat << ARNIE | chroot /mnt grub --batch
device (hd0) /dev/xvdg
root (hd0,0)
setup (hd0)
ARNIE
ต้องทำการเปลี่ยนแปลงเล็กน้อยอื่น ๆ ในปริมาณปลายทาง snap ไดรฟ์และทำ AMI จากมัน
จัดระเบียบไฟล์อุปกรณ์ชั่วคราว: rm -f /mnt/dev/xvdg /mnt/dev/xvdg1
ใน/mnt/boot/grub/grub.conf
เปลี่ยนroot (hd0)
เป็นroot (hd0,0)
เพิ่ม (หรือแทนที่console=*
) console=ttyS0
เป็นเคอร์เนลไลน์และหากจำเป็นให้แทนที่root=*
ด้วยroot=LABEL=/
ในเคอร์เนลบรรทัด
ใน/mnt/etc/fstab
ตรวจสอบว่าบรรทัดของรูท FS มีการอ้างอิงที่มีข้อความ
LABEL=/ / ext4 defaults,noatime 1 1
ติดป้าย FS รูทใหม่ด้วย e2label /dev/xvdg1 /
ถอนติดตั้ง DV จากอินสแตนซ์ชั่วคราวแยกทั้ง SV และ DV ออกจากอินสแตนซ์ชั่วคราว
ถ่ายภาพ DV และจากนั้นสร้างภาพ AMI
เรียกใช้อินสแตนซ์ HVM จาก HMI นั้น นั่นคืออินสแตนซ์ที่ย้ายของคุณ