使用 'dd' 命令创建可启动 U 盘

11 live-usb boot usb system-installation

为什么某些版本的 Ubuntu 的 ISO 映像可以通过dd命令放入 U 盘并成功启动,而其他版本的则不能?此外,它看起来也依赖于特定的 USB 记忆棒。我尝试使用标准的 Ubuntu:

$ sudo dd if=./ubuntu.iso of=/dev/sdd bs=8129

它的作用就像魅力一样,我的意思是:启动并安装或运行实时 Ubuntu。但是当我使用另一个以相同方式准备的 USB 记忆棒时,它无法启动,并显示操作系统未找到BIOS 错误。

当我尝试使用 Ubuntu GNOME 时,无论我使用的是哪个 U 盘,它都不会以与前一个示例相同的错误启动。

我知道,Ubuntu中有Startup Disk Creator应用程序,但我确信它只是简单dd命令的 GUI 外观,我始终可以使用dd创建可启动的 USB 记忆棒,至少对于 Linux。我错了吗?

mur*_*uru 5

如果您运行 Startup Disk Creator,您会注意到它做了三(四)件事:

  1. 格式化驱动器
  2. 将数据从 ISO 复制到驱动器
  3. (添加一个额外的 casper 1文件用于持久性,如果选择。dd不会给你持久性。)
  4. 安装引导加载程序

它不是用于的 GUI dd(有用于 的 GUI dd,但 SDC 不是其中之一)。您可以将其视为等同于Arch LinuxGentoo 的手动方法。目前,您应该能够使用大多数(相当流行的)发行版的安装 ISO 来创建可启动 USB。大约三四年前,当我看着 Arch 时,情况并非如此。直到 2010 年,所有 Arch ISO 才获得此功能(您可以直接将其写入 USB 驱动器)——从 2008 年到 2010 年,它们拥有特殊的 USB 映像。

此外,如果您dd直接使用驱动器,则该驱动器实际上是只读的,直到您对其进行格式化或以某种方式使用剩余空间。SCD 创建的磁盘仍可用作 USB 驱动器,即使无法从实时环境轻松访问内容。因此,如果您dd将 1GB ISO 转换为 8 或 16 GB USB 驱动器,除非采取额外步骤,否则您实际上是在放弃剩余空间。


1通常,大多数实时映像使用SquashFS文件作为分区。SquashFS 是只读的,因此为了持久性,casper-rw/casper. 我不确定casper. 据我了解,当使用该boot=casper选项启动时,内核会在 squashfs 之上覆盖 casper 文件(如果不存在则创建一个),从而获得写入能力。casper不一定是文件,也可以是分区