macOS 上用 dd 制作 Windows 安装 U 盘后提示缺少驱动的原因
最近在 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 Requirements 和 Install Legacy BIOS Boot Sector,重新引导后就可以继续正常安装。
现象:能启动,但安装器继续读不到安装文件#
典型过程是这样的:
# 示例:不要照抄执行,diskN 必须先确认清楚
sudo diskutil unmountDisk /dev/diskN
sudo dd if=Win11.iso of=/dev/rdiskN bs=4m status=progress
sync
写完之后,U 盘看起来已经“烧录成功”:
- BIOS / UEFI 启动菜单里能看到这个 U 盘。
- 可以进入 Windows 安装器的第一屏。
- 继续安装时提示缺少驱动,或者看不到后续安装所需内容。
最误导人的地方在于“缺少驱动”这几个字。很多人第一反应会去查硬盘驱动,比如 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 盘常见会碰到几个约束:
- UEFI 对 FAT32 支持最好,但 FAT32 单文件最大只能到 4GB。
- 新版 Windows ISO 里的
sources/install.wim经常超过 4GB。 - 如果直接改用 NTFS,又要考虑某些 UEFI 固件是否能直接从 NTFS 启动。
- 如果 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 重新制作:
- 下载官方 Windows ISO。
- 插入 U 盘,确认里面的数据已经备份,制作过程会清空 U 盘。
- 打开 WinDiskWriter,选择 Windows ISO 和目标 U 盘。
- 勾选
Patch Installer Requirements。 - 勾选
Install Legacy BIOS Boot Sector。 - 开始写入,完成后从这只 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 这类专门路径。
排查顺序#
遇到这个错误时,我建议按下面顺序判断:
- 先不要急着找硬盘驱动。确认 U 盘是不是用 Etcher、
dd、balenaEtcher这类原样写盘方式做出来的。 - 如果是,优先换工具重做 U 盘。Windows 上用 Media Creation Tool / Rufus,macOS 上用 WinDiskWriter。
- 在 WinDiskWriter 里建议同时勾选
Patch Installer Requirements和Install Legacy BIOS Boot Sector,这是这次实测可用的组合。 - 重做 U 盘后再进安装器。如果这时能正常看到安装流程,说明问题就在安装介质。
- 如果仍然看不到目标硬盘,再检查 BIOS / UEFI 里的 VMD、Intel RST、RAID / AHCI 模式。
- 对较新的 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 安装介质的工具。