为什么某些版本的 Ubuntu ISO 镜像可以通过日命令并成功启动,而其他版本却不行?此外,它似乎也依赖于特定的 USB 棒。我尝试使用标准 Ubuntu:
$ sudo dd if=./ubuntu.iso of=/dev/sdd bs=8129
它运行起来很棒,我的意思是:启动并安装或运行实时 Ubuntu。但当我使用另一个以同样方式准备的 USB 棒时,它无法启动找不到运作系统BIOS 错误。
当我尝试 Ubuntu GNOME 时,无论我使用哪个 USB 记忆棒,它都无法启动,并出现与前面示例相同的错误。
我知道,启动盘创建器Ubuntu 中的应用程序,但我一直确信,它只是一个简单的 GUI 外观日命令,我总是可以使用日创建可启动的 USB 棒,至少对于 Linux 来说是这样。我错了吗?
答案1
如果你跑启动盘创建器(SDC),你会注意到它做了三(四)件事:
- 格式化驱动器
- 将数据从 ISO 复制到驱动器
- (如果选择,请添加额外的 casper 1
dd
文件以实现持久性。但这并不能为您提供持久性。) - 安装引导加载程序
它不是 GUI dd
(有 GUI dd
,但 SDC 不是其中之一)。你可以认为它相当于Arch Linux 的或者Gentoo 的手动方法。您应该能够使用目前大多数(相当流行的)发行版的安装 ISO 创建可启动 USB。三四年前,当我查看 Arch 时,情况并非如此。直到 2010 年,所有 Arch ISO 才获得此功能(您可以将其直接写入 USB 驱动器)——从 2008 年到 2010 年,他们有特殊的 USB 映像。
此外,如果您dd
直接使用驱动器,该驱动器实际上是只读的,直到您将其格式化或以某种方式使用剩余空间。SDC 创建的磁盘仍然可以用作 USB 驱动器,即使内容无法从实时环境中轻松访问。因此,如果您将dd
1GB ISO 复制到 8 或 16 GB 的 USB 驱动器,除非采取额外步骤,否则您实际上是在放弃剩余空间。
1通常,大多数实时图像使用壁球文件根分区。SquashFS 是只读的,因此为了持久化,casper-rw
会在 中创建一个文件/casper
。我不确定 的来源casper
。据我所知,当使用该boot=casper
选项启动时,内核会将 casper 文件(如果不存在则创建一个)覆盖在 squashfs 之上,以便它获得写入能力。casper
不必是文件,也可以是分割。
答案2
首先尝试:
su -c 'mkfs.vfat /dev/sdc -I'
使用 iso 文件制作可启动 usb 磁盘日命令,磁盘不能有如下分区/dev/sdc1(磁盘四个可能的主分区中的一个/dev/sdc)。您无法将 iso 文件块克隆到主分区,因为 dvd 或 cd 光盘也没有。这就是为什么您必须在磁盘上创建一个文件系统/dev/sdc,不在分区主中。
此外,你打字时犯了一些错误日命令。
尝试这个:
su -c 'dd if=/home/user/debian.iso of=/dev/sdc bs=4M;sync;eject /dev/sdc'
如果没有先使用 mkfs.vfat,您的命令将不正确。如果您也安装了引导程序并使分区处于活动状态,则可能会出现这种情况。其他 USB 驱动器无法工作,可能是因为您的 USB 端口可以与另一个 USB 端口共享,或者您没有电源来运行实时 USB 操作系统,可能是正在工作的硬盘驱动器和其他 USB 磁盘需要比平时更多的电量。比此类设备的平均功耗(例如外部机箱中的硬盘驱动器,带有来自 SATA 适配器的 USB)
答案3
您甚至可以创建一个可启动的 USB 驱动器(对我来说,这比GUIcp
更简单):dd
sudo cp path/to/ISO /dev/sdX
请记住,/dev/sdX
应该将其替换为您的块设备的名称(例如/dev/sdb
)/dev/sdc
。