用于创建可启动 .iso 的 dd 命令无法启动

用于创建可启动 .iso 的 dd 命令无法启动

我是 Linux 新手。我不确定我做错了什么,但是当我使用命令dd尝试制作可启动/可安装的 USB 驱动器时,它无法从任何计算机启动。如果我使用相同的 .iso 文件并在 Windows 上使用 rufus,它将在任何计算机上启动。除了一台计算机外,所有计算机都有 BIOS,另一台有 UEFI。而且我没有在任何一台计算机上进行双启动。我尝试了以下 8 种不同的方法来实现这一点dd

  • dd if=~/Desktop/xubuntu16.04 of=/dev/sdb

  • dd if=~/Desktop/xubuntu16.04 of=/dev/sdb1

  • dd if=~/Desktop/xubuntu16.04 of=/dev/sdb bs=4M

  • dd if=~/Desktop/xubuntu16.04 of=/dev/sdb1 bs=4M

  • dd if=/dev/cdrom of=/dev/sdb

  • dd if=/dev/cdrom of=/dev/sdb1

  • dd if=/dev/cdrom of=/dev/sdb bs=4M

  • dd if=/dev/cdrom of=/dev/sdb1 bs=4m

答案1

将 iso 文件克隆到 USB 驱动器

使用dd您描述的方法进行克隆,这是一种简单可靠的方法,可与所有当前的 Ubuntu 系列 iso 文件一起使用以创建 USB 启动驱动器,并且 64 位系统可在 BIOS 和 UEFI 模式下工作。

您需要提升权限,您可以通过运行 来做到这一点sudo。我认为以下命令可以满足您的要求

sudo dd if=~/Desktop/xubuntu16.04 of=/dev/sdx bs=4096

在哪里X是目标驱动器的设备号。获取目标驱动器的正确号非常重要,否则您可能会覆盖存储家庭照片和其他一些非常重要的文件的驱动器。dd是一种非常强大但也非常危险的工具,因为它会毫无疑问地按照您的指令执行,而一个小小的打字错误就足以毁掉您的家庭照片。

不应有分区号,所以/dev/sdx(不是/dev/sdx1)因为您想从 iso 文件克隆到整个驱动器并指向驱动器的头端(而不是分区)。根据我的经验,在许多计算机上使用块大小 4096 字节进行写入速度很快。

更安全的克隆工具

我建议您使用一个工具来帮助您识别和选择目标驱动器,并使用最终检查点来确保您将写入正确的驱动器。

  • “mkusb” 就是这样一个工具,适用于所有当前的 Ubuntu 版本。它为 系上了安全带dd。请参阅此链接

    help.ubuntu.com/community/mkusb

  • Ubuntu 16.04 LTS 及更新版本中的 Ubuntu“启动盘创建器”也是一个可靠的克隆工具,可用于使用 Ubuntu 创建 USB 启动驱动器。(Ubuntu“启动盘创建器”的早期版本存在缺陷。)

  • 另一种选择是“磁盘”别名gnome-disks

答案2

因此,ISO 映像可能有效,但有些可能无效。光盘和 USB 驱动器具有不同的启动特性。它们的启动方式不同,并且引导加载程序位于相同的位置。

Rufus 和其他 ISO 编写者都意识到了这一点并进行了弥补。正如您从测试案例中看到的那样,仅仅将精确的字节逐个写入介质并不总是有效,因为低级原始写入不会进行必要的调整,这在光盘驱动器和 USB 驱动器(在本例中)上都不一样。

相关内容