VHD (Virtual Hard Disk) = ไฟล์ใหญ่จำลองดิสก์จริงใน VirtualBox/QEMU ใช้รัน Windows, macOS, BSD, Linux ฯลฯ ใน VM
ไม่สามารถ dd ไฟล์ VHD ตรงๆ ได้ (ต่างจาก ISO) แต่มีวิธี — ไม่ต้องแปลงเป็น ISO หากใช้ VirtualBox บน Linux มอเดิร์น
⚠️ ข้อควรระวัง
- **Backup ข้อมูลสำคัญก่อน** — คำสั่งนี้ทำลายข้อมูลบนดิสก์ปลายทาง
- ดิสก์ปลายทางต้อง **unmounted** แต่ต่ออยู่ (เช่น USB HDD ที่ยังเสียบแต่มาunmount)
- อย่าใช้ดิสก์ที่บูทระบบอยู่
วิธีที่ 1: ใช้ VBoxManage (ง่ายที่สุด — VirtualBox)
- แปลง VHD/VHDX → RAW image:
VBoxManage clonehd freeBSD.VHDX --format RAW freeBSD.RAW - เขียน RAW ไปดิสก์จริงด้วย dd:
sudo dd if=freeBSD.RAW of=/dev/sde- แทน
freeBSD.RAW= ไฟล์ RAW ที่สร้าง,/dev/sde= ดิสก์ปลายทาง - เช็กชื่อดิสก์:
sudo fdisk -l
- แทน
อาจขึ้น error "no space left on device" แต่ทดสอบผ่าน — กระบวนการเพิ่ม zero padding
วิธีที่ 2: ใช้ QEMU NBD (Network Block Device)
สำหรับผู้ใช้ QEMU เท่านั้น — ขั้นตอนซับซ้อนกว่า
sudo modprobe nbdqemu-nbd -r -c /dev/nbd0 -f vpc ourTest.vhd(อาจต้อง sudo)- เขียนพาร์ติชัน:
qemu-nbd -P 2 -r -c /dev/nbd2 -f vpc ourTest.vhd sudo ddrescue -v -f /dev/nbd2 /dev/sde2 - แทน device/partition ให้ถูกต้อง (ใช้
fdisk -lเช็ก)
VHDX (Hyper-V, >2TB):
qemu-nbd -c /dev/nbd0 -f VHDX ourTest.vhdx
sudo ddrescue -v -f /dev/nbd2 /dev/sde2
mount ตรวจสอบ: sudo mount /dev/nbd2 /mnt (ต้องว่าง)
วิธีที่ 3: Unmount และ Disconnect (QEMU)
sudo umount /mnt
qemu-nbd -d /dev/nbd2
เกี่ยวกับผู้เขียน
Kevin Arrows — MCTS, 10+ ปีประสบการณ์