Tệp Virtual Hard Disk (VHD) là tệp khổng lồ mô phỏng phương tiện vật lý trên VirtualBox và bộ giả lập x86/x86_64 khác. Cho phép chạy Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS/2 hoặc Linux khác bên trong Linux. Các tệp này không cho phép ghi trực tiếp nội dung ra ổ vật lý qua lệnh dd (làm được với ISO), nhưng có cách làm. Mặc dù một số hướng dẫn yêu cầu chuyển VHD sang ISO, bạn không cần nếu chạy VirtualBox trên Linux hiện đại. User QEMU cũng có cách, nhưng phức tạp hơn.
Đảm bảo không ổ/phân vùng làm việc là ổ boot. Ví dụ dùng NAND phân vùng, nhưng có thể dùng live DVD/USB boot nếu không thể làm otherwise. Bất kể cách boot, khởi terminal: Ctrl+Alt+T, tìm Ubuntu Dash, hoặc menu phụ Công cụ hệ thống Xfce4/LXDE.
Phương pháp 1: Dùng VBoxManage từ dấu nhắc lệnh
Cách dễ nhất: cài VirtualBox truyền thống. Backup dữ liệu quan trọng trước – bạn sẽ hủy hoại dữ liệu trên ổ đích vật lý trong khi có thể làm hỏng VHD/VHDX. Áp dụng cho phương pháp khác và mọi lệnh phá hủy này.
Khi chắc an toàn và ổ đích unmounted nhưng vẫn gắn (ví dụ ổ cứng ngoài cắm nhưng không mount, thậm chí raw – sẽ mất mọi dữ liệu), chạy:
VBoxManage clonehd freeBSD.VHDX --format RAW freeBSD.RAW
thay freeBSD.VHDX bằng ổ ảo của bạn. Chúng tôi test với ổ ảo cài FreeBSD vừa phải.
Ngay khi lệnh xong, chạy:
sudo dd if=freeBSD.RAW of=/dev/sde
thay tên RAW mới tạo và sde bằng block device thực. Nếu không chắc, sudo fdisk -l xác nhận tên phân vùng. Giống dd bất kỳ, đừng ghi nhầm thiết bị.
Có thể báo lỗi "no space left on device" như ghi tệp lớn vào thiết bị nhỏ, nhưng test không gây vấn đề. Quá trình này thêm padding zero. Chuyển ổ ảo sang ổ vật lý chỉ hai bước, tối thiểu can thiệp.
Phương pháp 2: Với lệnh QEMU Disk Network Block Device Server
User chỉ có Quick Emulator (QEMU) xử lý thủ tục phức tạp hơn VBoxManage. Tại dấu nhắc:
sudo modprobe nbd
qemu-nbd -r -c /dev/nbd0 -f vpc ourTest.vhd
thay tên tệp thực. Có thể cần sudo cho qemu-nbd tùy cấu hình. Copy dán thì nhớ sửa trước chạy. Thường chỉ có nbd0 lo lắng.
Xong, ghi phân vùng:
qemu-nbd -P 2 -r -c /dev/nbd2 -f vpc ourTest.vhd
sudo ddrescue -v -f /dev/nbd2 /dev/sde2
nhớ thay device file và số phân vùng thực. /dev/sde chỉ thẻ SDHC test an toàn. Có thể cần sudo qemu-nbd, nhưng thường không. Có thể bỏ số phân vùng tùy cấu hình. QEMU không trực quan bằng VBoxManage.
User Hyper-V có thể có VHDX thay VHD. Chạy:
qemu-nbd -c /dev/nbd0 -f VHDX ourTest.vhd
thay tên tệp. Định dạng này thêm Windows Server 2012 tăng dung lượng ảo >2TB giới hạn VHD. Ngày càng nhiều user Linux chuyển sang. Hướng dẫn hoạt động bất kể kích thước. GNU ddrescue hoạt động như dd nhưng copy block tốt nhất trước.
Sau chạy, user VHDX chạy:
sudo ddrescue -v -f /dev/nbd2 /dev/sde2
thay file như trên. User VirtualBox mọi loại dùng qemu-nbd -P 2 -r -c /dev/nbd2 -f vpc ourTest.vhd mount phân vùng như ổ bình thường. Cần sudo mount /dev/nbd2 /cdrom hoặc sudo mount /dev/nbd2 /mnt mount. Đảm bảo /cdrom hoặc /mnt chưa mount gì khác.
Phương pháp 3: Unmount và ngắt kết nối tệp
Unmount image:
sudo umount /mnt hoặc sudo umount /cdrom
tách nó. Kernel Linux đang đối xử nó như ổ bình thường.
Vẫn cần ngắt kết nối từ QEMU:
qemu-nbd -d /dev/nbd2
ngắt kết nối.