使用 dd 将可启动 iso 映像刻录到 USB 记忆棒:无法启动(尽管 USB 在启动顺序中排在第一位)

使用 dd 将可启动 iso 映像刻录到 USB 记忆棒:无法启动(尽管 USB 在启动顺序中排在第一位)

我已经在联想 Thinkpad R500 2732 上安装了 Ubuntu,并且必须更新 BIOS。

在联想网站上,我看到了以下内容:

适用于 Windows 7(32 位、64 位)、Vista(32 位、64 位)、XP 的 BIOS 更新可启动 CD - ThinkPad R500

我想我确实需要一张可以进行 BIOS 更新的可启动 CD。(不过仍然想知道为什么它会说“Windows”......如果它是可启动的,它不应该与操作系统无关吗?)

因为不想浪费 CD,所以我将图像复制到了我的 USB 记忆棒上:

sudo dd if=/home/nico/7yuj40uc.iso of=/dev/sdb1 bs=1M

确保 USB 位于启动顺序的第一位后,重新启动。

问题:无法启动。我是不是忘了一步?

详情iso 映像自述):

ls -lh 7yuj40uc.iso
25M
file 7yuj40uc.iso
/home/nico/7yuj40uc.iso: # ISO 9660 CD-ROM filesystem data '7YUJ40US                       ' (bootable)

(向右滚动:显示“可启动”)

  • UNetbootin 不起作用,因为它不是 Linux 映像。
  • 网上有些人建议复制 ISO 的内容并执行其他步骤。此 ISO 没有任何 ISO 内容,因此无法使用。如果我挂载 ISO,我可以看到它包含零个文件。

答案1

https://wiki.archlinux.org/index.php/ThinkPad_Edge有以下过程:

  1. 抓取并解开https://gna.org/projects/grub4dos/(维基百科有一个旧链接)
  2. 在 grub4dos 目录中,sudo ./bootlace.com /dev/sdb
  3. cp grldr /media/USBSTICK
  4. cp menu.lst /media/USBSTICK
  5. cp /path/to/7yuj40uc.iso /media/USBSTICK

最后,你必须将以下代码添加到你的 pendrive 上的 menu.lst 中,以使 USB-Stick 启动由 lenovo 制作的 PC DOS 程序:

title Thinkpad-BIOS-UPDATE
find --set-root /7yuj40uc.iso
map /7yuj40uc.iso (0xff) || map --mem /7yuj40uc.iso (0xff)
map --hook
chainloader (0xff)
boot

就是这样了。

答案2

当我尝试从 Lenovo 的可启动 CD 的 iso 制作可启动的 USB 盘来刷新 Thinkpad X1 Carbon 的 BIOS 时,chx 的答案不起作用。Unetbootin、multiusb 等也不起作用,正如问题中所述。有效的方法是获取脚本盖特托里托,提取所谓的可启动映像并将该映像 dd 到 USB 闪存盘。可能还有许多其他工具可以从 CD 中提取 bootabe 映像,例如,ubuntu 的 genisoimage 包含一个二进制 geteltorito。

./geteltorito.pl -o g.img gruj08us.iso
dd if=g.img of=/dev/sdX bs=1M
# use lsblk to get the device, e.g., sdb; Not the partition, e.g., sdb1
# bs=1M is not necessary, just for speed

要查看映像,请获取其中包含的文件系统的偏移量(例如,使用 fdisk),然后使用该偏移量挂载映像,

fdisk g.img
> p
# if the sector size is 512, the start of the filesystem at sector 32,
# 32 x 512 = 16384
mount -o loop,offset=16384 g.img /mount/point/

相关内容