# 阿里云 ECS（Ubuntu 18.04）把 系统盘转换成 Hyper-V 可用的 VHD

可以，阿里云 ECS（Ubuntu 18.04）把 **系统盘转换成 Hyper-V 可用的 VHD**，标准做法是：

👉 **新增一块临时云盘 → dd 克隆系统盘 → qemu-img 转换 VHD**

下面给你一套 **运维可直接执行流程（适合 Linux 运维）**。

---

# 一、前提确认（非常重要）

先确认磁盘：

```bash
lsblk

```

假设：

<table id="bkmrk-%E7%A3%81%E7%9B%98-%E4%BD%9C%E7%94%A8-%2Fdev%2Fvda-40g-%E7%B3%BB"><thead><tr><th>磁盘</th><th>作用</th></tr></thead><tbody><tr><td>/dev/vda</td><td>40G 系统盘</td></tr><tr><td>/dev/vdb</td><td>新增临时云盘</td></tr></tbody></table>

⚠️ 后面全部按这个示例写，实际请替换。

---

# 二、安装转换工具

Ubuntu18 默认没有 qemu-img：

```bash
apt update
apt install -y qemu-utils

```

确认：

```bash
qemu-img --version

```

---

# 三、临时云盘分区 + 挂载

## 1️⃣ 分区

```bash
fdisk /dev/vdb

```

操作：

```
n
p
1
回车
回车
w

```

---

## 2️⃣ 格式化

推荐 ext4：

```bash
mkfs.ext4 /dev/vdb1

```

---

## 3️⃣ 挂载

```bash
mkdir /mnt/tempdisk
mount /dev/vdb1 /mnt/tempdisk

```

确认：

```bash
df -h

```

---

# 四、克隆系统盘（生成 RAW）

⚠️ **必须用整盘 /dev/vda，不是分区**

```bash
dd if=/dev/vda of=/mnt/tempdisk/system.raw bs=16M status=progress

```

参数说明：

<table id="bkmrk-%E5%8F%82%E6%95%B0-%E4%BD%9C%E7%94%A8-if-%E8%BE%93%E5%85%A5%E7%A3%81%E7%9B%98-of-%E8%BE%93%E5%87%BA%E6%96%87"><thead><tr><th>参数</th><th>作用</th></tr></thead><tbody><tr><td>if</td><td>输入磁盘</td></tr><tr><td>of</td><td>输出文件</td></tr><tr><td>bs=16M</td><td>提升复制速度</td></tr><tr><td>status=progress</td><td>显示进度</td></tr></tbody></table>

预计时间：

- 40G SSD ECS
- 约 5～15 分钟

---

# 五、转换为 Hyper-V VHD

## 1️⃣ 固定大小 VHD（强烈推荐）

Hyper-V 兼容性最好：

```bash
qemu-img convert -f raw -O vpc -o subformat=fixed,force_size \
/mnt/tempdisk/system.raw \
/mnt/tempdisk/system.vhd

```

---

## 2️⃣ 可扩展 VHD（可选）

```bash
qemu-img convert -f raw -O vpc \
/mnt/tempdisk/system.raw \
/mnt/tempdisk/system.vhd

```

---

# 六、验证 VHD

```bash
qemu-img info /mnt/tempdisk/system.vhd

```

应该看到：

```
file format: vpc

```

---

# 七、压缩（强烈建议）

```bash
tar -czvf system_vhd.tar.gz system.vhd

```

---

# 八、下载回本地

方式：

### 方案1（推荐）

阿里云：

- 上传 OSS
- 再下载

---

### 方案2

直接 scp：

```bash
scp root@ecs-ip:/mnt/tempdisk/system_vhd.tar.gz .

```

---

# 九、Hyper-V 启动注意事项（90%人会踩坑）

创建 VM 时：

## Generation 选择

👉 Ubuntu18 建议：

```
Generation 1

```

不要选 Gen2（UEFI可能无法启动）。

---

## 启动前修复（强烈建议在 ECS 先做）

```bash
apt install -y linux-image-virtual linux-tools-virtual

```

安装：

```
hv_vmbus
hv_storvsc
hv_netvsc

```

---

# 十、企业级推荐方案（比 dd 更专业）

如果你是生产环境迁移，我更建议：

```
阿里云镜像导出 → qcow2 → vhd

```

优点：

- 不停机
- 一致性好
- 可自动修复分区

---

# 如果你愿意，我可以给你：

1️⃣ ✅ **一键系统盘转 Hyper-V VHD 脚本（生产级）**  
2️⃣ ✅ **阿里云 ECS → Hyper-V 无法启动的修复大全（90%问题覆盖）**  
3️⃣ ✅ **Gen1 / Gen2 选择与 grub 修复流程图**  
4️⃣ ✅ **Hyper-V 启动蓝屏/Kernel Panic 专业排查手册**

直接告诉我 👍