为什么dd不是将可启动的.iso文件写入USB拇指驱动器的可靠命令?


19

此处的一个答案表明,.iso如果将Ubuntu 复制dd到USB拇指驱动器,则它不应启动。

为什么某些Linux发行版可以选择使用来直接将其可引导.iso文件写入拇指驱动器dd,而其他发行版(Ubuntu?)却没有呢?

在Ubuntu中,我认为它必须首先转换.img。这是真的?

是因为.isos的某些体系结构差异吗?还是由于dd自身的限制?

我不知道这里是否是题外话。如果社区有这样的想法或建议,我可以将它移到更合适的位置。一些解释将是有意义的。


1
以前,Ubuntu ISO就是这种情况,但是从11.10开始,它们可以兼容dd。
mikewhatever,2012年

@mikewhatever感谢您提供信息。不幸的是,我试图用11.04 iso
Samik 2012年

Answers:


32

使用Ubuntu 12.04,可以dd将.iso文件添加到磁盘以创建可引导磁盘。它仅适用于某些isos(包括Ubuntu 12.04,但不适用于早期的Ubuntu版本),因为在基于BIOS的系统上,从CD引导和从磁盘引导的处理方式有所不同。

其中,要使硬盘驱动器可引导,它必须在第一个扇区中包含引导代码;要使CD可引导,它必须包含“ 在CD的最后一个会话中的扇区11(十进制17位)处的引导代码” 根据在萨尔瓦多Torito规范。由于引导代码(至少是BIOS加载的初始部分)存储在CD和硬盘驱动器的不同位置,因此磁盘映像可以在两个位置都具有引导代码,以便在将映像作为硬启动时加载引导加载程序。驱动器或CD。

大多数iso文件仅设计为可作为CD引导,因此它们在映像的第一个扇区中不包含引导代码,因此包含此类映像的硬盘驱动器在其第一个扇区中将没有引导代码,并且可启动。


那就是我想要的解释。感谢您抽出宝贵的时间来解释这一点。看到一些链接会更好一些,但是问题得到了解答。那就是UNetbootin所做的,将引导加载程序代码从扇区17复制到拇指驱动器的第一个扇区,对吗?
Samik 2012年

3
不,这不像复制启动代码那么简单。即使有可能,也将需要擦除整个设备(就像使用dd一样),这对于大多数Unetbootin用户来说是不可接受的。相反,Unetbootin“将ISO文件下载并提取到您的USB驱动器中,生成一个适当的syslinux配置文件,并使您的USB驱动器可以使用syslinux启动。” unetbootin.sourceforge.net/#faq
Jordan Uggla

+1为El Torito规格。并感谢您的解释。:)
Samik 2012年

0

Ubuntu的当前的ISO dd -able和已经有一段时间。它们是“混合” ISO:它们具有MBR引导扇区。dd正确使用将创建完全可引导的USB驱动器。

被引用的文章btw,只有一个答案声称Ubuntu ISO是dd不可行的,而事实并非如此。

请在这里查看我的答案:如何将iso9660 ISO转换为USB ISO

此答案提供了一种方法来确定iso是否已混合(您可以针对Ubuntu ISO进行验证),如何将其混合(对于其他情况)以及如何正确地使用它dd来创建可引导驱动器。


-3

上面发布的接受的解决方案没有任何更改的注释。

这个问题被认为是可靠的,可引导的iso并使用dd。

在大多数情况下,Linux用户使用短语iso表示光盘的特殊映像。在这种情况下,可启动可能是bios或uefi理解并允许从光盘运行的几种方法之一。

通常认为dd是可靠的,但是它可能由于多种原因而失败,并且与源或输出无关。在大多数情况下,它似乎仅因不询问“您确定要清除它?”而失败。

现代计算机倾向于将USB视为真正的内部硬盘驱动器。

可以使用7z之类的工具将某些ISO复制到fat32闪存驱动器中。

所有这些都假设有一些现代硬件和现代USB闪存驱动器。

将来,在大多数情况下,我们将必须创建uefi可引导媒体。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.