最近在 macOS 上制作 Windows 安装 U 盘时踩了一个坑:用 dd 把 Windows ISO 原样写进 U 盘后,机器可以从 U 盘启动,也能进入 Windows 安装界面,但安装器很快提示缺少驱动,或者在选择安装位置之前就卡在“Install Driver to Show Hardware / 缺少介质驱动程序”这一类界面。

这个现象和 TaurusXin 记录的那篇文章很像。他遇到的是用 Etcher 写 Windows 安装盘后,安装器提示缺少驱动;我这里换成 macOS 下的 dd,结果仍然类似。表面看像是 NVMe、RST、VMD、USB 控制器驱动问题,实际更可能是启动 U 盘的制作方式不适合 Windows 安装 ISO。

后面实测可行的方案是:在 macOS 上改用 WinDiskWriter 重新制作 U 盘,并勾选 Patch Installer RequirementsInstall Legacy BIOS Boot Sector,重新引导后就可以继续正常安装。

现象:能启动,但安装器继续读不到安装文件#

典型过程是这样的:

# 示例:不要照抄执行,diskN 必须先确认清楚
sudo diskutil unmountDisk /dev/diskN
sudo dd if=Win11.iso of=/dev/rdiskN bs=4m status=progress
sync

写完之后,U 盘看起来已经“烧录成功”:

  1. BIOS / UEFI 启动菜单里能看到这个 U 盘。
  2. 可以进入 Windows 安装器的第一屏。
  3. 继续安装时提示缺少驱动,或者看不到后续安装所需内容。

最误导人的地方在于“缺少驱动”这几个字。很多人第一反应会去查硬盘驱动,比如 Intel RST、VMD、NVMe、SATA 模式,甚至尝试关闭 Secure Boot、换 USB 口、换 USB 2.0。它们确实可能影响安装,但不是这类问题的第一嫌疑。

核心原因:dd 只是原样复制 ISO,不等于制作 Windows 安装盘#

dd 做的事情非常简单:把输入文件的字节流原封不动写到目标块设备。它不会理解 Windows 安装盘需要什么分区结构,也不会帮你拆分 install.wim,更不会根据 UEFI、FAT32、NTFS 的限制重新组织文件。

Linux 发行版 ISO 很多是 hybrid ISO,本来就设计成既能刻盘,也能直接原样写到 U 盘启动。Windows ISO 的使用模型不完全一样。它能被固件引导进安装环境,不代表 Windows PE 后续就能稳定读取 U 盘上的安装文件。

可以把这个过程理解成两段:

UEFI 固件启动 U 盘
        |
        v
进入 Windows PE 安装环境
        |
        v
Windows PE 继续读取 U 盘里的 sources/install.wim 或 install.esd

第一段成功,只说明固件找到了可启动入口。第二段失败,安装器就可能报“缺少驱动”。这里缺的未必是目标电脑硬盘的驱动,而可能是安装环境无法正常读取当前 U 盘上的文件系统、分区布局或安装镜像内容。

TaurusXin 那篇文章里提到 Etcher 会把 U 盘写成 Windows 安装器不适合读取的特殊分区格式,导致安装器误报缺少驱动。dd 虽然不是 Etcher,但风险点类似:它们都偏向“把镜像原样写进去”,而不是“按 Windows 安装盘的规则重建 U 盘”。

为什么 Windows 安装盘更麻烦#

Windows 安装 U 盘常见会碰到几个约束:

  1. UEFI 对 FAT32 支持最好,但 FAT32 单文件最大只能到 4GB。
  2. 新版 Windows ISO 里的 sources/install.wim 经常超过 4GB。
  3. 如果直接改用 NTFS,又要考虑某些 UEFI 固件是否能直接从 NTFS 启动。
  4. 如果 ISO 被原样写成只读镜像布局,Windows PE 后续阶段未必按你期望的方式访问它。

所以合格的 Windows 启动盘工具通常不是简单复制 ISO,而是会做额外处理:创建合适的分区,放置 EFI 启动文件,必要时拆分 install.wim,或者通过额外引导方式让 UEFI 能进入 NTFS 分区。

这也是 Rufus、微软 Media Creation Tool、WinDiskWriter 这类工具比 dd 更适合制作 Windows 安装 U 盘的原因。

实测可用方案:macOS 用 WinDiskWriter 重做 U 盘#

如果只有 macOS,不建议继续用 dd 或 Etcher 反复写同一个 Windows ISO。实测可用的做法是用 WinDiskWriter 重新制作:

  1. 下载官方 Windows ISO。
  2. 插入 U 盘,确认里面的数据已经备份,制作过程会清空 U 盘。
  3. 打开 WinDiskWriter,选择 Windows ISO 和目标 U 盘。
  4. 勾选 Patch Installer Requirements
  5. 勾选 Install Legacy BIOS Boot Sector
  6. 开始写入,完成后从这只 U 盘重新启动安装。

这两个选项的作用不完全一样:

Patch Installer Requirements 主要用于处理 Windows 11 安装限制,比如 TPM、Secure Boot、内存等检查。它不一定是“缺少驱动”本身的原因,但在旧机器、兼容性不确定的机器上可以减少安装阶段的额外拦截。

Install Legacy BIOS Boot Sector 会给 U 盘补上传统 BIOS 启动所需的引导扇区。即使目标机器最终走 UEFI 启动,勾上它通常也能让这只安装盘对旧固件、混合启动菜单或兼容模式更友好。你的这次实测结果是两个选项都勾选后可以正常安装,所以这篇文章也按这个组合记录。

制作完成后,如果安装器不再提示缺少驱动,并能继续进入磁盘选择页面,基本就能确认前面的问题出在 U 盘制作方式,而不是 Windows ISO 或目标硬盘本身。

其他可选做法#

如果手头有 Windows 电脑,最稳妥的是直接用微软官方 Media Creation Tool 或 Rufus 重新制作 U 盘。微软官方页面也把“Create Windows 11 Installation Media”作为重装或全新安装时的专门选项,而不是让用户直接 dd ISO。

还有一种思路是使用 Ventoy:先把 Ventoy 安装到 U 盘,再把 Windows ISO 作为普通文件复制进去,从 Ventoy 菜单启动。Ventoy 官方说明它支持直接从 ISO/WIM/IMG/VHD(x)/EFI 文件启动,也支持大于 4GB 的 ISO 文件。这个方案适合经常维护多个系统镜像的人,但如果只是临时装一次 Windows,我更倾向于 Rufus、Media Creation Tool 或 WinDiskWriter 这类专门路径。

排查顺序#

遇到这个错误时,我建议按下面顺序判断:

  1. 先不要急着找硬盘驱动。确认 U 盘是不是用 Etcher、ddbalenaEtcher 这类原样写盘方式做出来的。
  2. 如果是,优先换工具重做 U 盘。Windows 上用 Media Creation Tool / Rufus,macOS 上用 WinDiskWriter。
  3. 在 WinDiskWriter 里建议同时勾选 Patch Installer RequirementsInstall Legacy BIOS Boot Sector,这是这次实测可用的组合。
  4. 重做 U 盘后再进安装器。如果这时能正常看到安装流程,说明问题就在安装介质。
  5. 如果仍然看不到目标硬盘,再检查 BIOS / UEFI 里的 VMD、Intel RST、RAID / AHCI 模式。
  6. 对较新的 Intel 平台,如果必须开启 VMD / RST,就需要准备对应存储控制器驱动,在安装器里手动加载。

这个顺序很重要。因为“安装介质读不到”和“目标硬盘读不到”都会被包装成驱动问题,但修法完全不同。

结论#

在 macOS 上用 dd 制作 Windows 安装 U 盘,看起来很 Unix、很直接,但它并不是一个可靠的 Windows 安装盘制作方法。dd 能让 U 盘启动,不代表后续 Windows 安装器能正确读取安装文件。

这类问题的关键判断是:如果安装器一进入就提示缺少驱动,尤其是用 Etcher 或 dd 写盘之后出现,先怀疑 U 盘制作方式,而不是先怀疑 NVMe 硬盘本身。

我的建议很简单:

Windows ISO + macOS + dd/Etcher = 容易踩坑
Windows ISO + WinDiskWriter + Patch Installer Requirements + Install Legacy BIOS Boot Sector = 实测可用
Windows ISO + Rufus/Media Creation Tool = Windows 环境下更稳妥

下次在 Mac 上做 Windows 安装 U 盘,我不会再用 dd 直接写 ISO,而会用专门处理 Windows 安装介质的工具。

参考#