为什么 dd 不能为 Microsoft 制作可启动的 USB 记忆棒?

use*_*334 10 windows usb dd

请不要让我参考已经发布的关于这个主题的(大部分是错误的)答案。没有一个是正确的。

在过去的几年里,我已经制作了一百万个这样的可启动dd if=(this).iso of=/dev/sdb bs=4M bla ..记忆棒:显然它每次都适用于 ISO,尤其是 Linux 发行版,但如果这是任何 Windows 7 或 10 iso,生成的 USB 记忆棒不可启动,并且是任何 PC BIOS(尤其是戴尔)都看不到。iso 非常好,并作为文件系统挂载,其中包含所有 Windows 媒体,但 BIOS 看不到它,因此无法使用。为什么不?

推论:Microsoft 提供了各种工具来输入 ISO 并对 USB/DVD 进行必要的写入(在 Windows 下运行)。这些工具失败了。我不在乎,但我想知道,这些工具是否有一些神奇的功能,而不仅仅是直接的物理副本dd

sud*_*dus 12

克隆(使用dd或其他克隆工具)适用于大多数当前的 linux iso 文件。它们是混合 iso 文件,准备好后可以使用相同的文件来创建 DVD 启动盘、USB 启动驱动器和启动存储卡(例如 SD 卡)。

克隆不会从当前的 Windows iso 文件制作可启动的 USB 驱动器。为此,您需要一些特殊工具,或者根据需要手动执行这些步骤(在提取过程中)。

此链接主要关注woeusb从当前 Windows iso 文件制作可启动 USB 驱动器的工具(Linux 中的工具)。我最近对其进行了测试,可以验证它是否有效。

您可以详细帮助下自己做“魔术”

help.ubuntu.com/community/Installation/iso2usb/diy/windows-installer-for-big-files

  • 您可能应该将这些链接的相关部分作为引号放在您的答案中。我以前见过 ubuntu.com 链接失效了。 (2认同)

pen*_*359 5

我相信这个问题已经得到解答,但我想添加对正在发生的事情的更详细描述。首先,计算机读取 CD-ROM 和 DVD 的方式与所有其他磁盘介质不同。CD-ROM 或 DVD 将使用称为 ISO 9660 的文件系统(或称为 UDF 的更新文件系统)进行格式化。另一方面,其他磁盘式介质(包括任何 USB)以主引导记录或 MBR 启动。较大的磁盘现在使用 GPT,但对于本次讨论来说它是类似的。计算机中的 BIOS 将从磁盘介质读取 MBR 或 GPT,并在那里查找引导加载程序。对于 MBR,引导加载程序与 MBR 一起保存在磁盘上的第一个 512 字节扇区中。GPT 略有不同,它会在磁盘上的其他位置分配称为 EFI 分区的东西。GPT 本身位于磁盘的前几千字节。

启动 CD-ROM 是一个非常不同的过程。该标准称为 El Torito Boot,描述了驻留在 ISO 9660 文件系统内的结构。当计算机上的 BIOS 或 UEFI 尝试从 CD-ROM 引导时,它会使用 CD-ROM,而不查找 MBR 或 GPT。这意味着启动 ISO 的设置必须与 USB 驱动器完全不同。

许多 Linux 发行版使用一种称为混合 ISO 的技术。ISO 9660 文件系统有一个有趣的功能,它将前 32 KB 声明为系统区域,供其他人使用。它根本不声明什么可以去那里,并且会忽略那里的任何东西。将光盘读取为 ISO 9660 的软件将始终跳过该部分。这留下了足够的空间来用传统的磁盘引导加载程序隐藏 MBR 或 GPT 标签。混合 ISO 实际上有两种不同的引导加载程序,一种作为 ISO 9660 El Torito Boot 的一部分,另一种用于传统磁盘引导。

因此,总而言之,ISO 映像应该可以在 USB 磁盘上启动,这一点没有什么可说的。如果小心操作,这是 ISO 9660 允许的一项额外功能。例如,MBR 的引导加载程序可以超过 32 KB,否则它将覆盖 ISO 内容。但制作混合 ISO 是许多 Linux 发行版为了让用户的生活更轻松而所做的事情。这不是微软懒得做的事情。