1. 引言

在装机、系统维护、虚拟机部署和嵌入式开发中,我们经常会遇到各种「镜像文件」:ISO、IMG、VHD/VHDX、QCOW2……它们看起来都是「一个文件装下整个系统」,但格式、用途、挂载方式和适用操作系统却差别很大。

本文围绕最常见的四种镜像文件格式,讲清三件事:

  • 每种格式是什么、内部结构如何;
  • 在 Windows、Linux、macOS 上分别怎么用(挂载、写入、转换、启动);
  • 四种格式之间的核心区别与选型建议。

说明:本文以常见发行版与工具链为例,命令中的设备名(如 /dev/sdX、/dev/disk2)请务必替换为你自己的实际设备,写盘操作不可逆,操作前请确认目标设备。

2. 四种镜像格式速览

格式典型后缀本质常见用途是否可直接挂载
ISO 9660.iso光盘文件系统镜像系统安装盘、光盘分发是(只读)
原始磁盘镜像.img、.raw磁盘/分区的逐字节拷贝树莓派系统、嵌入式固件、磁盘备份视内容而定
VHD / VHDX.vhd、.vhdx虚拟硬盘(含分区表)Hyper-V、VirtualBox、Windows 备份是(Windows 原生)
QCOW2.qcow2QEMU 写时复制虚拟磁盘KVM/QEMU、OpenStack、云镜像需 qemu-nbd 等工具

一句话概括:ISO 是「光盘」,IMG 是「裸磁盘」,VHD/VHDX 是「微软系虚拟硬盘」,QCOW2 是「QEMU 系虚拟硬盘」。

3. ISO 镜像:光盘文件系统镜像

3.1 格式特点

ISO 9660 是光盘标准文件系统,.iso 文件就是一张光盘的完整镜像,通常只读。它内部只有文件系统,没有分区表(部分混合 ISO 例外,如支持 UEFI 启动的镜像会带 El Torito 引导记录)。

3.2 Windows 下的用法

Windows 10/11 原生支持双击挂载 ISO:

# 挂载 ISO,返回盘符
$mount = Mount-DiskImage -ImagePath "D:\ubuntu-24.04-desktop-amd64.iso" -PassThru
($mount | Get-Volume).DriveLetter

# 卸载
Dismount-DiskImage -ImagePath "D:\ubuntu-24.04-desktop-amd64.iso"

制作启动 U 盘可借助 Rufus 或 dd 类工具;注意 Windows 下写盘会清空目标 U 盘。

3.3 Linux 下的用法

# 只读挂载到目录
sudo mkdir -p /mnt/iso
sudo mount -o loop ubuntu-24.04-desktop-amd64.iso /mnt/iso
ls /mnt/iso

# 卸载
sudo umount /mnt/iso

# 写入 U 盘(危险操作,确认设备名)
sudo dd if=ubuntu-24.04-desktop-amd64.iso of=/dev/sdX bs=4M status=progress oflag=sync

3.4 macOS 下的用法

# 挂载(macOS 会自动挂载到 /Volumes)
hdiutil attach ubuntu-24.04-desktop-amd64.iso

# 卸载
hdiutil detach /Volumes/Ubuntu\ 24.04.1\ LTS\ amd64

4. IMG 镜像:原始磁盘镜像

4.1 格式特点

.img(也叫 raw 镜像)是磁盘或分区的逐字节拷贝,没有统一规范:它可能只是一个文件系统(如 FAT32 分区镜像),也可能包含完整分区表(MBR/GPT)和多个分区。树莓派、香橙派等单板机的系统镜像基本都是这种格式。

因为「裸」,它体积大、不支持快照,但兼容性最好,几乎所有工具都能识别。

4.2 Windows 下的用法

Windows 不能直接双击挂载任意 IMG。常见做法:

  • 用 7-Zip 打开查看内容(仅限单文件系统镜像);
  • 用 Win32DiskImager / balenaEtcher 写入 SD 卡;
  • 用 diskpart 配合虚拟磁盘挂载(需先转换为 VHD)。
# 用 diskpart 将 IMG 转为 VHD 后挂载(示例思路)
# 1) 创建 VHD 并写入 IMG 内容,2) attach vdisk

4.3 Linux 下的用法

# 若 IMG 是单分区文件系统镜像
sudo mount -o loop raspios.img /mnt/img

# 若 IMG 含分区表,先看分区偏移
sudo fdisk -l raspios.img
# 假设第一分区起始扇区 8192,扇区大小 512
sudo mount -o loop,offset=$((8192*512)) raspios.img /mnt/img

# 写入 SD 卡(危险操作)
sudo dd if=raspios.img of=/dev/sdX bs=4M status=progress oflag=sync

4.4 macOS 下的用法

# 查看镜像信息
hdiutil imageinfo raspios.img

# 挂载(raw 镜像需指定格式)
hdiutil attach -imagekey diskimage-class=CRawDiskImage raspios.img

# 写入 SD 卡(先 diskutil list 确认磁盘号)
diskutil unmountDisk /dev/disk2
sudo dd if=raspios.img of=/dev/rdisk2 bs=4m

5. VHD / VHDX:微软系虚拟硬盘

5.1 格式特点

VHD 是微软的虚拟硬盘格式,VHDX 是其升级版(支持最大 64TB、4KB 逻辑扇区、断电保护)。两者都包含完整分区表,可动态扩展、可做差异盘,是 Hyper-V 的原生格式,VirtualBox 也支持。

5.2 Windows 下的用法

Windows 原生支持挂载 VHD/VHDX:

# 挂载
Mount-VHD -Path "D:\data.vhdx"

# 查看磁盘
Get-Disk | Where-Object PartitionStyle -ne 'RAW'

# 卸载
Dismount-VHD -Path "D:\data.vhdx"

也可在「磁盘管理 → 操作 → 附加 VHD」中图形化挂载。

5.3 Linux 下的用法

Linux 需借助 qemu-nbd 或 libguestfs:

# 加载 nbd 模块并连接
sudo modprobe nbd max_part=16
sudo qemu-nbd -c /dev/nbd0 data.vhdx
sudo partprobe /dev/nbd0

# 挂载分区
sudo mount /dev/nbd0p1 /mnt/vhd

# 卸载
sudo umount /mnt/vhd
sudo qemu-nbd -d /dev/nbd0

5.4 macOS 下的用法

macOS 无原生支持,通常通过 VirtualBox/VMware 挂载,或安装 qemu 后用 qemu-nbd(需额外配置 nbd 支持),实际使用较少。

6. QCOW2:QEMU 写时复制镜像

6.1 格式特点

QCOW2(QEMU Copy-On-Write v2)是 KVM/QEMU 的默认磁盘格式,支持:

  • 稀疏分配:文件按需增长,不预占全部空间;
  • 快照:内置快照与外部快照;
  • 压缩与加密;
  • 后备文件(backing file):基于模板盘快速创建差异盘。

它是 OpenStack、Proxmox、多数云厂商镜像的标准格式。

6.2 Linux 下的用法

# 查看信息
qemu-img info ubuntu.qcow2

# 创建 20G 镜像
qemu-img create -f qcow2 disk.qcow2 20G

# 基于模板创建差异盘
qemu-img create -f qcow2 -b base.qcow2 -F qcow2 overlay.qcow2

# 挂载(需 nbd)
sudo modprobe nbd max_part=16
sudo qemu-nbd -c /dev/nbd0 ubuntu.qcow2
sudo mount /dev/nbd0p1 /mnt/qcow2
sudo umount /mnt/qcow2
sudo qemu-nbd -d /dev/nbd0

# 格式转换
qemu-img convert -f qcow2 -O raw ubuntu.qcow2 ubuntu.img

6.3 Windows 下的用法

Windows 无原生支持,可通过以下方式使用:

  • 安装 QEMU for Windows,使用 qemu-img 转换格式;
  • 用 VirtualBox 的 VBoxManage 转换后挂载;
  • 在 WSL2 中按 Linux 方式操作。
# 转换为 VHDX 后用 Windows 原生挂载
qemu-img convert -f qcow2 -O vhdx ubuntu.qcow2 ubuntu.vhdx
Mount-VHD -Path ".\ubuntu.vhdx"

6.4 macOS 下的用法

# 安装 qemu
brew install qemu

# 查看与转换
qemu-img info ubuntu.qcow2
qemu-img convert -f qcow2 -O raw ubuntu.qcow2 ubuntu.img

7. 四种格式的核心区别

维度ISOIMG (raw)VHD/VHDXQCOW2
抽象层级文件系统(光盘)裸磁盘/分区虚拟硬盘虚拟硬盘
是否含分区表通常无视情况有有
是否可写只读可写(直接改文件)可写可写
稀疏/按需增长否否VHDX 支持支持
快照不支持不支持差异盘内置快照
压缩无无无支持
典型工具Rufus、dd、hdiutildd、Etcher、Win32DiskImagerHyper-V、Mount-VHDqemu-img、qemu-nbd
主要生态通用通用/嵌入式微软QEMU/KVM/云

8. 格式转换与选型建议

8.1 常用转换命令

# IMG -> QCOW2
qemu-img convert -f raw -O qcow2 disk.img disk.qcow2

# QCOW2 -> VHDX
qemu-img convert -f qcow2 -O vhdx disk.qcow2 disk.vhdx

# VHDX -> QCOW2
qemu-img convert -f vhdx -O qcow2 disk.vhdx disk.qcow2

# ISO -> IMG(仅适用于可引导光盘镜像,本质是去掉光盘封装)
# 一般不建议直接转换,应按目标平台重新制作启动盘

8.2 选型建议

  • 装系统、做启动盘:选 ISO,工具链最成熟;
  • 树莓派/嵌入式/固件烧录:选 IMG,直接 dd 写入;
  • Hyper-V、Windows 备份、企业虚拟化:选 VHDX;
  • KVM/QEMU、OpenStack、需要快照与稀疏分配:选 QCOW2。

8.3 一张图看懂使用路径

.iso

.img

单分区

含分区表

.vhd/.vhdx

.qcow2

拿到镜像文件

后缀是什么

挂载查看 / 制作启动盘

确认是否含分区表

mount -o loop 直接挂载

按 offset 挂载或 dd 写盘

Windows: Mount-VHD

Linux: qemu-nbd 挂载

需要跨平台时用 qemu-img 转换

完成部署或数据访问

9. 常见坑与注意事项

  • 写盘前务必确认设备名:dd 写错设备会直接毁掉系统盘,建议先用 lsblk / diskutil list 核对容量。
  • IMG 挂载失败多半是 offset 不对:用 fdisk -l 或 parted 查看分区起始扇区,再乘扇区大小。
  • VHDX 在 Linux 上挂载需要 nbd 模块:部分内核未编译该模块,需先安装 qemu-utils。
  • QCOW2 不要直接 dd 到物理盘:它是虚拟格式,必须先 qemu-img convert -O raw。
  • ISO 是只读的:需要修改内容时,先解包到目录,再用 genisoimage / xorriso 重新打包。
  • 跨平台转换优先用 qemu-img:它几乎支持所有主流格式互转,是事实标准工具。

10. 补充:装系统常见的四种镜像——ISO、GHO、WIM、ESD

前面讨论的是「镜像文件格式」层面的差异,而在 Windows 装机这个具体场景里,大家更常听到的是另外四个名字:ISO、GHO、WIM、ESD。它们并不是同一维度的分类——ISO 是「容器」,GHO/WIM/ESD 是「系统映像的封装格式」。这一节专门讲清它们在装系统时的用法与区别。

10.1 四种格式速览

格式典型后缀本质典型工具是否可直接引导安装
ISO.iso光盘镜像容器,内部可放任意文件Rufus、Ventoy、UltraISO是(需可引导)
GHO.gho、.ghsSymantec Ghost 的分区/整盘映像Ghost、一键还原类工具否(需 PE 环境还原)
WIM.wim微软基于文件的映像格式,可多卷DISM、ImageX、WinPE否(需部署到分区)
ESD.esd加密压缩的 WIM(Electronic Software Download)DISM、NTLite、部分 PE 工具否(需解密/转换后部署)

一句话概括:ISO 是「装系统的外壳」,GHO 是「Ghost 时代的整盘快照」,WIM 是「微软官方的文件级映像」,ESD 是「WIM 的高压缩加密版」。

10.2 ISO:装机最通用的载体

装系统时说的 ISO,通常指微软官方或第三方封装的系统安装光盘镜像,内部包含 boot、sources、setup.exe 等安装程序文件。

  • 制作启动 U 盘:用 Rufus 选择 ISO,按目标机器选择 GPT/UEFI 或 MBR/BIOS 分区方案写入;
  • 免写盘方案:用 Ventoy 把 ISO 直接拷进 U 盘即可引导,一个盘可放多个系统;
  • 虚拟机安装:VMware/VirtualBox/Hyper-V 直接把 ISO 挂到虚拟光驱启动。
# Windows 下挂载 ISO 查看内容
$m = Mount-DiskImage -ImagePath "D:\Win11_24H2.iso" -PassThru
($m | Get-Volume).DriveLetter

注意:ISO 只是「外壳」,里面装的可能是 WIM、ESD,也可能是 GHO。判断一个 ISO 能不能直接引导安装,要看它是否带引导记录和 sources\boot.wim。

10.3 GHO:Ghost 时代的整盘快照

GHO 是 Symantec Ghost 生成的映像,本质是按扇区/簇备份的分区或整盘快照,常见于早期的「一键还原」「Ghost 版系统」。

  • 制作:在 PE 中用 Ghost 选择 Local → Partition → To Image;
  • 还原:Local → Partition → From Image,选择目标分区后写入;
  • 特点:还原速度快、体积相对小,但与硬件和分区结构强绑定,跨机型还原容易蓝屏(尤其是存储控制器驱动不同)。
Ghost 典型流程(在 PE 环境下操作):
Local -> Partition -> To Image     备份分区为 .gho
Local -> Partition -> From Image   从 .gho 还原到分区

现状:GHO 已逐步被淘汰,新机器(尤其是 NVMe + UEFI + GPT)用 GHO 还原失败率高,不建议在新平台使用。

10.4 WIM:微软官方的文件级映像

WIM(Windows Imaging Format)是微软从 Vista 开始引入的映像格式,基于文件而非扇区,因此可以:

  • 一个 WIM 内放多个「卷」(如专业版、家庭版),安装时选择;
  • 支持增量更新与去重,多个版本共享相同文件只存一份;
  • 支持离线挂载修改(用 DISM),不依赖硬件。
# 查看 WIM 中的映像列表
dism /Get-WimInfo /WimFile:D:\sources\install.wim

# 挂载到目录进行修改
dism /Mount-Image /ImageFile:D:\sources\install.wim /Index:1 /MountDir:C:\mount

# 提交并卸载
dism /Unmount-Image /MountDir:C:\mount /Commit

# 将 WIM 应用到目标分区(PE 环境下)
dism /Apply-Image /ImageFile:D:\sources\install.wim /Index:1 /ApplyDir:W:\

官方 ISO 里的 sources\install.wim 就是它。WIM 不能直接引导,必须通过 WinPE 或安装程序部署到分区。

10.5 ESD:高压缩加密的 WIM

ESD(Electronic Software Download)是微软用于在线分发系统的格式,可以理解为经过 LZMS 高压缩并加密的 WIM。

  • 来源:Windows 更新助手、Media Creation Tool 下载的 install.esd,以及部分官方镜像;
  • 特点:体积比 WIM 小 30% 左右,但不能直接用 DISM 挂载(加密),需先解密或转换;
  • 转换:用 dism 的 /Export-Image 或第三方工具(如 NTLite、ESD-Decrypter)转为 WIM。
# ESD 转 WIM(部分未加密 ESD 可直接导出)
dism /Export-Image /SourceImageFile:D:\sources\install.esd /SourceIndex:1 /DestinationImageFile:D:\install.wim /Compress:max

# 查看 ESD 信息
dism /Get-WimInfo /WimFile:D:\sources\install.esd

若提示「文件受保护/无法识别」,说明该 ESD 已加密,需要先用对应工具解密再转换。

10.6 四者的核心区别

维度ISOGHOWIMESD
抽象层级容器(光盘镜像)扇区级快照文件级映像文件级映像(压缩加密)
是否可多卷否(内部可含多文件)否是是
是否可离线修改需解包重打包困难是(DISM 挂载)需先解密/转换
压缩率取决于内部格式中中高
硬件依赖低高低低
典型场景制作启动盘、虚拟机安装老机器快速还原官方部署、批量装机在线分发、精简系统

10.7 选型建议

  • 新机器装系统:优先用官方 ISO(内部为 WIM 或 ESD),配合 Rufus/Ventoy 制作启动盘;
  • 批量部署企业环境:用 WIM + DISM 或 MDT/SCCM,便于统一镜像与驱动注入;
  • 下载到 ESD 想改系统:先转成 WIM,再用 DISM 挂载精简;
  • 老机器/老 PE 环境:GHO 仍可用,但要注意分区结构与存储驱动匹配。

10.8 一张图看懂装机镜像选择

.iso

.gho

.wim

.esd

拿到装机镜像

后缀是什么

Rufus/Ventoy 制作启动盘

PE 环境 Ghost 还原分区

DISM Apply-Image 部署

先转 WIM 再部署

进入安装程序完成装机

重启并修复引导

装机完成

10. 总结

镜像文件并不是「谁替代谁」的关系,而是面向不同场景的抽象:

  • ISO 面向光盘分发与系统安装;
  • IMG 面向裸盘烧录与嵌入式;
  • VHD/VHDX 面向微软虚拟化生态;
  • QCOW2 面向 QEMU/KVM 与云平台。

另外装系统那块兼容性最好的非ISO莫属:

  • ISO “外包装箱”的光盘安装包。
  • GHO 优点是恢复快但缺点是绑定硬件,所以现阶段基本淘汰。
  • WIM 微软官方的系统本体。
  • ESD 高压缩版WIM。

掌握它们的挂载方式(mount -o loop、qemu-nbd、Mount-VHD、hdiutil)和转换工具(qemu-img),就能在 Windows、Linux、macOS 之间自由搬运系统镜像,少走很多弯路。
另外装系统可以这么选:普通人装系统用ISO,企业批量部署用WIM,在线升级用ESD,老电脑应急才考虑GHO。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐