为什么 Rufus 不推荐使用 DD 模式而不是 ISO 模式来处理 ISOHybrid 图像?DD 肯定更好!

为什么 Rufus 不推荐使用 DD 模式而不是 ISO 模式来处理 ISOHybrid 图像?DD 肯定更好!

我从来没有注意过这个细节,一直以为 Rufus 将“原始 ISO 映像”写入目标磁盘而不做任何改变。

但是今天我注意到,将 Ubuntu ISO 写入 USB 闪存驱动器时,它默认使用 FAT 或 FAT32:

在此处输入图片描述

这怎么可能呢?

我很确定它ubuntu-20.04-desktop-amd64.iso包含 ext4 分区并且不包含 FAT32 分区。

答案1

CD 和 DVD 使用 ISO-9660 或 UDF,而不是 FAT32 或 ext4,否则大多数非 Linux 平台无法读取它们。但现代 Linux 安装光盘也同质杂化因此如果映像被写入普通的非光盘,它们也可以直接启动。这就是dd 方法并且大多数其他 Linux 发行版建议使用 dd 模式来创建可启动的 USB 安装驱动器。还有一些其他方法,例如将整个 ISO 文件复制到数据分区并进行映射,然后使用从映射 ISO 启动Grub 的功能或者将安装程序的所有文件复制到FAT32分区,然后使用syslinux启动

Rufus 也支持 dd 模式,但是它的作者已经说明了为什么它默认不使用该模式在里面常问问题在其 Github 存储库中。原因很长,请参阅上述链接或下面的完整内容。但总结一下对于普通用户来说更简单, 是不那么令人惊讶用户可以正常使用 U 盘存储数据。使用 dd 方法,用户需要删除分区并重新初始化磁盘,而此方法只需要简单格式化或删除文件

Rufus 的作者也有一个很好的答案我刚刚在 SuperUser 上看到Kamil Maciorowski 的评论发布这个答案后

以下是 Github 上的完整原因:

为什么 Rufus 不推荐使用 DD 模式而不是 ISO 模式来处理 ISOHybrid 图像?DD 肯定更好!

恭喜你。如果你带着“DD 模式没有缺点”的想法来阅读这篇常见问题解答,那么你已经喝醉了等速混合kool aid,它是一种大规模瘟疫对于那些试图确保用户能够真正在最佳条件下创建可启动驱动器的人来说,不受“一法统领一切”谬论。

在这里,我听到了你的抗议:“但是 dd 比复制单个文件要快得多,并且它可以使用本机 Linux 文件系统以及 ESP,此外它还可以确保生成的驱动器是制作 ISO 的人所创建的驱动器的逐位副本。这怎么可能不是客观上更好的选择呢??”

嗯,不幸的是, 非常 简单的 反驳 模式 更好的 选项 为了 用户(这还不包括我通过电子邮件收到的类似报告)。Windows 无法本地安装 ESP 后面的常见 Linux 分区,这是对许多用户来说非常混乱。因此,在模式下写入 ISOHybriddd通常会破坏最小惊讶原则Linux 维护人员不太愿意听取 Windows 用户的报告,往往会认为这不是一个问题,但它肯定是一个问题。

此外,尽管几乎任何操作系统都提供了原生工具来容易地在 USB 驱动器上创建一个 FAT32 分区,并将 ISO 内容提取到其中(如果您有 UEFI 系统,这应该足以创建可启动驱动器,前提是映像创建者正确地完成了他们的工作),这样您甚至不必使用 Rufus 之类的实用程序,用于dd复制映像需要更多的参与,如果您手动使用它,可能会导致严重的事故(dd这也称为冰岛克朗埃斯特罗耶尔使用文件提取模式时,发生此类情况的可能性就会小得多。

还存在将您创建的媒体限制为仅限 UEFI 启动的问题,这可能非常令人希望(以防止在您想要以 UEFI 模式安装操作系统时以 BIOS/Legacy/CSM 模式安装操作系统),但这只有当您可以将分区方案设置为 GPT 时才能实现...而大多数 ISOHybrid 媒体设计为从 BIOS 或 UEFI 启动,因此使用 MBR。

哦,当然,您可以忘记添加任何额外内容(例如,专有 Wifi 固件二进制文件,您可能需要加载它才能让您的平台在安装过程中具有连接性)或使用可启动驱动器来存储 Windows 上的数据(如果它是在 DD 模式下编写的)。例如,不能简单地使用 DD 模式在 Raspberry Pi 上安装通用 Linux 发行版,而当同一发行版支持 ISO 模式时,只需使用原始 ISO,添加 Pi 启动所需的少量额外文件(当然这将是不可能的在 DD 模式下完成)并安装该操作系统就像在 PC 上一样

最后,当使用 GPT 作为分区方案时,使用 dd 写入 ISOhybrid 映像将立即导致驱动器“损坏”,因为除非您使用与映像大小完全相同的驱动器(但这种情况永远不会发生),否则备份 GPT 表将不会写入其应在的位置(驱动器的最后 33 个扇区中)。这意味着,如果 UEFI 固件过于迂腐(有些确实如此!),它很可能会选择不启动驱动器,因为 GPT 已损坏。DD 模式是万能药,这已经够糟糕的了!

对于尝试或过渡到 Linux 的 Windows 用户来说,上述情况通常会导致初次体验非常糟糕,而且非常不幸(但并不完全令人惊讶)的是,很多 Linux 维护者到目前为止一直对上述用户的困境置若罔闻,将这些问题视为不熟悉的用户应该“努力解决”的问题,因为他们将 ISOHybrids 视为一个简单的 DD 映像(这是 Manjaro 和 PopOS 维护者目前所做的),这让他们自己的生活变得轻松得多……

尽管如此,因为我们确实相信 Windows 用户在创建可启动驱动器时应该拥有最佳体验,而不会遇到非常意外的情况,这种情况至少会给他们带来不便,或者最坏的情况是,让他们认为他们的驱动器“坏了”,因此,在可能的情况下,Rufus 将继续推荐 ISO 模式而不是 DD 模式(同时显然仍然给予选择,对于希望这样做的用户,可以在 DD 模式下写入他们的 ISOHybrid)。

答案2

这里有很多东西需要解开。首先,Live Linux 到底是如何启动的?与常规的安装到磁盘的 Linux 不同,它不使用ext4(或类似)文件系统。相反,根文件系统(包含目录/bin,如/usr等)存储在压缩映像文件 (Squashfs) 中。Squashfs 支持 Linux 根文件系统所需的所有功能,如权限、ACL、硬链接等。在运行时,通过覆盖一个临时文件RAM 文件系统。

通过以图像格式存储根文件系统,它可以被放置在任何旧文件系统上 - 包括 FAT32、ISO 9660(CD)和 UDF(DVD)。

无论出于什么原因,Linux 发行版仍会为其所有安装介质创建 CD/DVD 映像。因此,它们使用 ISO 9660 文件系统(带有 Joliet 扩展,有时带有 Rock Ridge 扩展)。由于某些特殊性,只有某些文件系统在光学介质上才实用。

Live Linux 必须启动。可启动 CD/DVD 必须使用“El Torito”标准 — 它们以不同于常规大容量存储(如 USB 驱动器或内部 HDD/SSD)的方式启动。因此,Linux 映像必须遵循此标准。它已进行调整以支持 UEFI 启动。

但是,您也可以将dd映像写入 () USB 闪存驱动器,它也可以在那里工作。这是通过将引导代码和 MBR 或 GPT 分区表偷偷放入 ISO 9660 不使用的间隙来实现的。然后,通过添加 EFI 系统分区(位于映像末尾,ISO 9660 文件系统之后),这个庞然大物也可以进行 UEFI 引导。

所有这些问题是什么?闪存驱动器在擦除之前几乎无法使用。Rufus 可以(可选)通过将 EFI 系统分区的内容和 ISO 9660 文件系统的内容复制到单个 FAT32 文件系统来解决此问题,然后该文件系统既可用于 BIOS 和 UEFI 启动,也可用于 Windows。

相关内容