VMware Workstation 中运行 qcow2 镜像:格式转换指南

发布时间:2026/10/18 18:59:18
VMware Workstation 中运行 qcow2 镜像:格式转换指南 简介面向需要在VMware Workstation中运行qcow2镜像的虚拟化运维与测试人员这份操作手册完整覆盖了从环境搭建到系统安装的关键环节。内容以麒麟V10Kylin-Server-10-SP1镜像运行为主线依次讲解VMware Workstation 15.x虚拟机工具的安装与许可处理、qemu-img 9.1.0磁盘镜像转换工具的安装及环境变量配置并详细演示了创建虚拟机、选择单文件磁盘存储、挂载ISO安装操作系统等步骤。手册还对qcow2格式的快照、压缩和加密特性做了概要说明便于理解该格式在VMware中运行时的注意事项。资源包为1个doc文档整体仅3.77MB文本结构清晰适合打印或对照操作。目前已有2025人学习下载对初次接触qcow2转换与VMware联调使用的读者来说是一份实用且高效的入门指引。1. 为什么要在 VMware Workstation 里跑 qcow2一次镜像迁移的救急方案前阵子因为工作安排我拿到一个 qcow2 格式的麒麟 V10 镜像文件需要在 Windows 笔记本上的 VMware Workstation 里把它跑起来。查了一圈资料办法无非两条要么装一套原生支持 qcow2 的方案要么借道 VMware。我选了后面这条路核心就是两个词格式转换 虚拟机引导。这篇手册解决的问题很具体——让 qcow2 镜像里的系统能在 VMware Workstation 里正常开机、联网、干活同时也回答「先有镜像怎么转」「先装系统怎么导」这两个方向的问题。适合需要在本机验证研发环境、跑 KVM 镜像迁移测试、或者想离线试验麒麟 V10 系统的开发者。2. 先把原理和工具链理清楚qcow2 格式与 VMware 的兼容边界2.1 qcow2 的写时复制、快照与稀疏特性qcow2 是 QEMU/KVM 生态里最常见的磁盘镜像格式全称 QEMU Copy On Write version 2。它最核心的设计是写时复制底层镜像只读新写入的数据落到顶层差异文件中。这个机制给快照提供了天然支撑系统崩溃或者配置改坏回滚也就是一条命令的事。另外它支持稀疏文件也就是说一个给 60GB 的 qcow2 镜像实际在磁盘上可能只占几百 MB因为未写入的块根本没分配物理存储。qemu-img 9.1.0 对 qcow2 的读写算法也比较成熟能把连续零块识别成「未分配」区域不让它们白白占用宿主空间。还有一个容易被忽略的点qcow2 内部可以挂压缩和加密。压缩特性在转换和导出时特别有用一个带了大量日志和缓存文件的环境压缩能让交付体积小一个量级。加密则意味着转出来之前必须保证能拿到密钥不然拿到 vmdk 也是白搭。2.2 VMware 不直接认 qcow2 的原因磁盘描述符与元数据差异VMware Workstation 15.x 原生识别的是 vmdk 格式它靠磁盘描述符文件记录几何参数、磁盘类型和 extent 分布。qcow2 的镜像头结构、L1/L2 页表、快照链和 vmdk 的 descriptor/grain 机制完全不同所以直接把 qcow2 改后缀成 vmdk 是行不通的VMware 打开后大概率提示无效磁盘或直接崩溃。最简单的路子是装一个能在 VMware 里访问 qcow2 的工具再挂载但这种方式涉及客户机内驱动和块设备映射网络场景折腾起来特别费劲。务实的选择还是先转换格式用 qemu-img 把 qcow2 转成 vmdk再用 VMware 加载。转换过程相当于把 qcow2 的分配块重新组织为 vmdk 的 extent虽然耗时和磁盘占用都会变高但换来的是 VMware 全功能可用包括快照、挂起和 VMware Tools。2.3 环境准备清单版本怎么选、ISO 与工具的匹配关系动手之前先把三样东西配齐。VMware Workstation 建议用 15.x它对 Linux 客户机的兼容性在 5.x 内核上表现稳定麒麟 V10 恰好是 4.19 内核踩坑概率最低。qemu-img 建议用 9.1.0 的 64 位 Windows 版命令行工具不需要安装整个 QEMU 套件但要记得把安装目录加进 PATH。最后是系统镜像 Kylin-Server-10-SP1-Release-Build20-20210518-x86_64.iso它既可以是新装系统的安装源也可以当作验证工具使用。工具版本匹配表工具版本用途VMware Workstation15.x虚拟机宿主环境qemu-img9.1.0 64位qcow2/vmdk 格式转换麒麟V10 ISOSP1 Build20系统安装与引导安装包可以从网盘分享目录或官方下载页获取。这里有个容易被忽略的细节qemu-img 版本最好别用太老的老版本对 qcow2 v3 镜像的支持不完整打开带压缩的镜像会直接报错而 9.1.0 对 v2/v3 都能稳定处理。3. 环境搭建VMware Workstation 与 qemu-img 安装及 PATH 配置3.1 安装 VMware Workstation 15.x许可证与试用获取安装包后双击安装程序一路 Next 就行安装路径不建议改到带空格的目录。许可证方面有正版 key 直接输入最省事没有的话先完成安装软件默认进入试用期再从搜索引擎找可用许可证粘贴即可。这一步不要卡太久因为后面创建虚拟机和装载 ISO 都用不到许可证的完整功能。安装完成之后我习惯先确认一下主程序能正常启动避免后续排查问题时分不清是 VMware 没装好还是配置错了。运行vmware -v之类的命令能拿到版本号但这个命令在 Windows 图形界面版本里不一定可用所以更实用的验证方式是直接启动 VMware Workstation看主界面能否正常加载虚拟网络服务。如果提示 VMware Authorization Service 未运行到服务管理里把相关服务启动类型改成自动并手动拉起一次。3.2 安装 qemu-img 9.1.0架构与路径选择qemu-img 9.1.0 的 Windows 安装包是双击即装的 NSIS 程序安装路径默认在C:\Program Files\qemu。这个目录有个坑Program Files 带空格后续在 cmd 或 PowerShell 里操作时如果没加引号命令会找不到工具。我一般会手动把路径改成C:\qemu顺便规避权限问题——Program Files 目录默认需要管理员权限写入后续做格式转换时如果对输出目录没有写权限又会多一层报错。装完后C:\qemu下应该有qemu-img.exe、qemu-system-x86_64.exe等文件。注意 qemu-img.exe 和 qemu-system-x86_64.exe 是两回事运行 qcow2 镜像我们只关心 qemu-img.exe系统模拟器不用管。3.3 配置环境变量为什么 PATH 设置会失败qemu-img 必须能被命令行直接调用才方便。Windows 下配置环境变量右键「此电脑 → 属性 → 高级系统设置 → 环境变量」在系统变量 PATH 里追加C:\qemu。也可以直接用命令设置脚本如下setx /M PATH %PATH%;C:\qemu注意setx会把当前 PATH 内容重新写一遍如果系统 PATH 原本超过 1024 字符追加后可能出现截断。更稳的做法是在环境变量窗口手动编辑把C:\qemu追加到列表末尾。配置完成后重开一个命令行窗口验证qemu-img --version能输出版本号和版权信息就说明 PATH 配置成功。这一步如果失败多数原因是当前终端没有重新加载环境变量重开终端再试。另外注意别用管理员身份打开旧终端验证旧终端缓存了旧 PATH会给出假阴性。4. 核心操作创建虚拟机、转换 qcow2 镜像并安装麒麟 V104.1 创建虚拟机磁盘控制器、单文件存储与容量规划打开 VMware Workstation新建虚拟机操作系统选择「稍后安装操作系统」类型选 Linux版本可以选 CentOS 7 64位或 Linux 内核 4.x。这个选择影响 VMware 提供的虚拟硬件兼容配置文件选 CentOS 7 64位对麒麟 V10 来说最实用。虚拟磁盘创建时有三个重要参数磁盘容量建议 60GB实际占用按需增长存储方式选「将虚拟磁盘存储为单个文件」避免系统自动拆成多个 2GB 分片后续挂载、迁移、转换时少很多麻烦磁盘类型用 SATAAHCI不要用 NVMe。麒麟 V10 安装程序的硬盘驱动主要覆盖 SATA 控制器NVMe 在某些版本上会出现“找不到磁盘设备”的问题。4.2 把现成 qcow2 转成 vmdk转换命令与参数如果你手头已经有一个做好的 qcow2 镜像比如从某测试环境导出的麒麟 V10 系统盘想直接放到 VMware 里运行第一步是格式转换。打开命令行进入镜像所在目录执行qemu-img convert -p -f qcow2 -O vmdk -o subformatmonolithicSparse kylin-source.qcow2 kylin-target.vmdk逻辑说明-p显示转换进度条大镜像转换动辄十几分钟没有进度提示会让人误以为卡死-f qcow2声明输入格式-O vmdk声明输出格式-o subformatmonolithicSparse指定 vmdk 子格式这是 VMware 支持的单文件稀疏格式读写性能最优。转换完成后在虚拟机的「硬盘」设置里删除默认虚拟磁盘再添加「现有磁盘」选中生成的 vmdk 文件即可。参数说明subformatmonolithicSparse单文件稀疏 vmdk文件逻辑大小等于镜像虚拟大小实际占用按写入块增长如果不带这个参数qemu-img 默认生成的 vmdk 在大多数版本里也是 monolithicsparse但显式指定能避免个别旧版本生成只读的 streamOptimized 格式源 qcow2 若带快照转换命令默认展平到当前状态快照历史不会保留。4.3 用 ISO 安装麒麟 V10启动顺序与分区选择如果你不是手里有现成镜像而是像我一样要在 VMware 里从零开始装一个麒麟 V10再把它作为 qcow2 交付给同事那流程就是新建虚拟机磁盘用 4.1 的配置→ 在 CD/DVD 设置里加载 Kylin-Server-10-SP1-Release-Build20-20210518-x86_64.iso → 启动虚拟机。启动后安装程序会进入图形引导界面语言、时区这些按正常流程选。磁盘分区建议选「自动分区」因为我们要的是能跑起来的系统手工分区在后续转 qcow2 时不会带来性能差异反而容易因为引导分区位置特殊导致转换后无法启动。软件包选择上如果只是验证环境选最小安装加上开发工具组即可避免把 X Window 和桌面环境都装上导致镜像体积失控。安装过程最后一步会要求设置 root 密码和创建普通用户密码规则比较严格建议直接设置复杂密码并记录到本地笔记里。安装完成后先别急着进系统记下安装程序的确认页提示重启时会弹出「移除安装介质」这时候直接按回车跳过即可。4.4 系统装完后的网络与 VMware Tools 调整系统第一次启动后网络默认走 NAT 模式理论上能联网但麒麟 V10 某些版本不会自动启用 DHCP导致网卡没有 IP。检查与配置命令如下ip addr show nmcli device status nmcli connection up ens33逻辑说明第一条看当前网卡 IP第二条看设备状态是否为 connected第三条手动拉起连接。如果设备名不是 ens33用nmcli device status输出的实际名字替换。VMware Tools 的安装也别跳过。麒麟 V10 默认没装 VMware Tools图形界面分辨率固定、剪贴板不能共享都跟它有关。挂载 VMware Tools ISO 后执行 tar 解压然后运行 installer 脚本。如果编译内核模块时报缺少 gcc 和 kernel-devel先用包管理器装好再重试dnf install -y gcc make kernel-devel装完后 reboot 一次vmware-toolbox-cmd -v能输出版本号就代表成功。5. 避坑与排查qemu-img 转 vmdk 的五次翻车记录5.1 现象VMware 提示“磁盘类型不受支持”转换完成后把 vmdk 添加到虚拟机开机直接弹窗说磁盘类型不受支持无法启动。原因qemu-img 在某些情况下生成的 vmdk 是 streamOptimized 格式这种格式主要给云平台和 OVF 传输用VMware Workstation 不允许把它作为普通虚拟磁盘直接挂载。解决回到转换步骤把-o subformatmonolithicSparse显式加上重新转换。如果源镜像已经转好但不想重转可以用 VMware 自带的 vmware-vdiskmanager 工具重新封装一下但效率不如直接重转来得快。5.2 现象qemu-img 命令提示“不是内部或外部命令”在 cmd 里敲qemu-img --version系统提示不是内部或外部命令或者 PowerShell 提示无法识别。原因qemu-img 安装目录没有加入 PATH或者终端是在配置 PATH 之前打开的缓存了旧环境变量。解决先确认安装目录下存在 qemu-img.exe然后重新打开一个新的 cmd 窗口验证。如果还是不行检查系统 PATH 是否真的包含目标路径注意setx追加法的截断问题改用手工编辑环境变量最保险。5.3 现象麒麟 V10 安装时找不到磁盘安装程序进入分区页面列表里没有任何磁盘设备手动分区按钮灰色无法点击。原因虚拟机磁盘类型用 NVMe而安装程序缺少对应驱动。麒麟 V10 的磁盘驱动默认覆盖 SATA 和 IDE对 NVMe 的支持取决于内核模块是否打包Build20 这个版本确实有缺失。解决关闭虚拟机打开虚拟机设置把硬盘类型从 NVMe 改为 SATAAHCI重新开机进入安装程序磁盘即被识别。这个坑在新旧版本麒麟镜像里都可能出现统一用 SATA 最省事。5.4 现象安装完成后无法引导到系统安装过程一切正常重启后卡在 grub 引导界面选择默认项后黑屏或直接返回 grub。原因安装时 BIOS 引导模式选择与虚拟机的固件类型不一致。比如虚拟机是 UEFI但安装程序以 Legacy BIOS 模式写入引导重启后找错引导入口。解决在 VMware 的虚拟机设置里把固件类型改成与安装时一致的 BIOS或者反过来在安装启动菜单里手动选 UEFI 安装。更干脆的做法是重装一次安装程序启动阶段确认使用的引导模式记下来后续不切换。5.5 现象转换后宿主磁盘空间不足qcow2 源文件只有 5GB转换成 vmdk 后逻辑大小 60GB转换到一半宿主 C 盘直接写满。原因qcow2 是稀疏存储未分配的块在文件系统里不占空间而转换后的 vmdk 虽然也是稀疏文件但很多文件系统并不会实时回收未写块加上转换过程中同时存在源文件和目标文件瞬时占用翻倍。解决转换前先确认宿主剩余空间至少大于镜像虚拟大小的一半。也可以用-S 4k让 qemu-img 在写入时检测连续零块并跳过分配qemu-img convert -p -S 4k -f qcow2 -O vmdk -o subformatmonolithicSparse source.qcow2 target.vmdk逻辑说明-S 4k表示遇到 4KB 以上的连续零块视为未分配区域不实际写入vmdk 在稀疏文件系统上的物理占用会小很多。6. 进阶快照管理、压缩输出与把 vmdk 再转回 qcow26.1 用 qemu-img 快照回滚而不是重新转换如果你需要反复修改镜像内容比如装软件、改配置转一次 vmdk 再在 VMware 里操作显然效率低。更顺手的做法是直接用 qemu-img 管理 qcow2 快照回滚只是一条命令的事qemu-img snapshot -c clean-baseline system.qcow2 qemu-img snapshot -l system.qcow2 qemu-img snapshot -a clean-baseline system.qcow2-c创建快照-l列出快照-a回滚到指定快照。注意回滚前确认没有业务数据写入否则刚改的东西会丢。6.2 镜像瘦身与压缩交付需要把 VMware 里的 vmdk 还原成 qcow2 交付给别的环境时用反向转换同时开启压缩qemu-img convert -p -c -f vmdk -O qcow2 disk.vmdk final.qcow2-c启用 qcow2 压缩日志文件、缓存、空白分区都能压掉不少体积。转换完成后用qemu-img info final.qcow2确认虚拟大小和实际占用再对比一下源 vmdk 的大小就能看出压缩收益。从那以后我每次拿到 qcow2 镜像第一件事不是急着打开 VMware而是先跑一遍qemu-img info确认格式版本、虚拟大小和快照链再决定转换参数。凡是从我这里出去的镜像都会生成一份版本说明写明内核版本、磁盘类型和快照位置避免队友再踩一遍同样的坑。希望帮到你。本文还有配套的精品资源点击获取