在 Ubuntu 14.04 环境下,将 整块分区 /dev/vdc1 转换为 VHD 文件
在 Ubuntu 14.04 环境下,将 整块分区 /dev/vdc1 转换为 VHD 文件 并保存到/home/shuncom/,推荐使用 qemu-img,而不是直接 dd,因为:
-
VHD 支持稀疏文件(体积更小)
-
兼容 Hyper-V
-
可控、可校验、可恢复
下面给你一套 生产可用、一步到位 的做法。
一、前置强烈建议(重要)
1️⃣ 确保分区未被写入
mount | grep vdc1
-
理想状态:未挂载
-
如果已挂载,务必只读卸载:
umount /dev/vdc1
2️⃣ 确认分区信息
lsblk -f /dev/vdc
二、安装必需工具(Ubuntu 14.04 可用)
apt-get update
apt-get install -y qemu-utils
确认:
qemu-img --version
三、推荐方案(最优):直接转为 VHD
命令(标准、安全)
qemu-img convert \
-p \
-f raw \
-O vpc \
/dev/vdc1 \
/home/shuncom/vdc1.vhd
说明:
| 参数 | 含义 |
|---|---|
-p |
显示进度 |
-f raw |
输入是裸设备 |
-O vpc |
输出为 VHD(Hyper-V) |
/dev/vdc1 |
整个分区 |
vdc1.vhd |
目标文件 |
四、如果你想“更稳妥”(推荐生产)
方案:raw → vhd(两步)
1️⃣ 先做 raw 镜像
dd if=/dev/vdc1 \
of=/home/shuncom/vdc1.raw \
bs=64M \
status=progress
2️⃣ 转换为 VHD
qemu-img convert -p -f raw -O vpc \
/home/shuncom/vdc1.raw \
/home/shuncom/vdc1.vhd
完成后可删除 raw:
rm -f /home/shuncom/vdc1.raw
五、校验与确认(必须做)
1️⃣ 查看 VHD 信息
qemu-img info /home/shuncom/vdc1.vhd
应看到:
file format: vpc
virtual size: XXXG
2️⃣ (可选)做 hash 校验
sha256sum /home/shuncom/vdc1.vhd > /home/shuncom/vdc1.vhd.sha256
六、常见问题与坑
❗ XFS / ext4 都支持
-
ext4:完全没问题
-
XFS:必须卸载或只读
❗ 空间不足
VHD 虽然是稀疏文件,但仍需:
-
至少 10–20% 剩余空间
-
用
df -h提前确认
❗ 分区 vs 整盘区别
你现在导出的是:
/dev/vdc1 ← 分区(常用,正确)
如果你想要 MBR/GPT + 全盘,应使用:
/dev/vdc
七、导入 Hyper-V 的注意事项(提前提醒)
-
建议用 Generation 1(尤其是老系统 / BIOS)
-
Linux 内核 3.x(14.04)兼容性更好
-
启动失败时检查:
-
grub
-
fstab 中 UUID
-
八、我可以继续帮你
如果你后续是要:
-
导入 Hyper-V 无法启动
-
要合并系统盘 + 数据盘
-
转 VHDX / QCOW2 / VMDK
-
写自动化脚本
直接告诉我你的 最终目标平台,我可以直接给你下一步命令级方案。
No Comments