使用’dd’命令创建可启动的USB记忆棒

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

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

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

当我尝试使用Ubuntu GNOME时,无论我使用哪一个USB记忆棒,它都不会像以前的例子那样以相同的错误启动。

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

如果你运行Startup Disk Creator,你会发现它有三(4)件事:

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

它不是dd的GUI( dd有GUI,但SDC不是其中之一)。 您可以将其视为与Arch Linux或Gentoo的手动方法等效。 您应该能够使用目前大多数(相当受欢迎的)发行版安装ISO来创建可启动USB。 三四年前,当我看着Arch时,情况并非如此。 仅在2010年,所有Arch ISO都获得了此function(您可以直接将其写入USB驱动器) – 从2008年到2010年,他们拥有特殊的USB映像。

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


1通常,大多数实时映像使用SquashFS文件作为根分区。 SquashFS是只读的,因此对于持久性,在/casper创建一个casper-rw文件。 我不确定casper的起源。 根据我的理解,当使用boot=casper选项boot=casper ,内核会在squashfs之上覆盖casper文件(如果不存在则创建一个),以便获得写入function。 casper不必是一个文件,它也可以是一个分区 。

首先尝试:

 su -c 'mkfs.vfat /dev/sdc -I' 

要使用dd命令从iso文件制作可引导的USB磁盘,磁盘不能有/ dev / sdc1这样的分区(磁盘/ dev / sdc的四个主要分区中的一个)。 你不能将iso文件的块克隆到主分区,因为dvd或cd光盘也没有。 这就是为什么你必须在磁盘/ dev / sdc上创建一个文件系统,而不是在主分区中。

此外,您输入dd命令时犯了一些错误。

试试这个:

 su -c 'dd if=/home/user/debian.iso of=/dev/sdc bs=4M;sync;eject /dev/sdc' 

没有mkfs.vfat,你的命令不会更正。 如果您也安装了bootloader并使分区处于活动状态。 其他usb驱动器不起作用也许因为你的usb端口可以与另一个你的usb端口共享,或者你没有能力工作的现场usb操作系统,可能工作硬盘驱动器和其他USB磁盘需要比平时更多的电源。 比这类设备的平均功耗(如外部情况下的硬盘磁盘,来自SATA适配器的usb)