我有一个古老的 Ubuntu 14.04,我想将我的整个系统重新安装到 20.04。为了做到这一点,我将闪存驱动器格式化为 FAT32,然后使用 Unetbooting 应用程序从 iso 映像文件创建 Live-USB。
一切似乎都很好,Unetbooting 没有引发任何异常,我可以从 Ubuntu 中正常访问 USB 棒。但是,当我关闭电源并重新启动时,grub2 不会给我从 Live-USB 棒启动的选项。即使我进入其命令行并输入“ls”,它也只显示一个设备 hd0,即我的硬盘。
我发现的每一个解决从 Live-USB 启动问题的解决方案都需要 grub2 来识别设备,而由于这并没有发生,所以我停留在第 0 步。我想可能是 USB 端口出了问题,但我可以正常安装和访问该设备,所以我想这应该被排除在外了?
有谁能提示一下可能发生了什么事情以及我该怎么做才能解决这个问题并完成这项早就该进行的重新安装?
编辑
我尝试按照@CSCameron 的建议在 grub loadorder 菜单中手动输入以下内容:
menuentry "Boot Ubuntu USB" {
search --set=root --fs-uuid xxxx-xx-xx-xx-xx-xx-xx
set gfxpayload=keep
linux ($root)/casper/vmlinuz file=/cdrom/preseed/ubuntu.seed maybe-ubiquity quiet splash ---
initrd ($root)/casper/initrd
}
为了找到 U 盘的 UUID,我打了电话# blkid
,得到了以下 USB 的 UUID:
/dev/sdc1: LABEL="Ubuntu 20.04.1 LTS amd64" TYPE="iso9660"
/dev/sdc2: SEC_TYPE="msdos" UUID="C26E-047E" TYPE="vfat"
在我的 gnome-disks 应用程序中,标记为的分区sdc1
被识别为可启动分区,如下图所示
但是表格中没有显示任何 UUID,只有 desdc2
未被标记为可启动。所以我卡住了。
编辑2
当我sdc2
在菜单项中使用 UUID 时,Grub 说其列表中没有该 UUID 的内容,并说:
error: failure reading sector 0xfc from 'hd0'.
error: failure reading sector 0xe0 from 'hd0'.
error: failure reading sector 0x0 from 'hd0'
并且无法找到 vmlinuz,因为该文件不存在。我认为这是由于没有找到菜单项所请求的单元造成的。
答案1
使用内部 GRUB 启动 USB 驱动器
有时计算机不想使用 USB 的引导加载程序来启动 USB。
可启动 USB 通常可以使用 Linux 计算机的 GRUB 启动。
添加以下菜单项/etc/grub.d/40_custom
然后运行sudo update-grub
menuentry "Boot Ubuntu USB" {
search --set=root --fs-uuid 2020-07-31-16-51-12-00
set gfxpayload=keep
linux ($root)/casper/vmlinuz file=/cdrom/preseed/ubuntu.seed maybe-ubiquity quiet splash ---
initrd ($root)/casper/initrd
}
其中 2020-07-31-16-51-12-00 是 Live USB 的 UUID。
此方法适用于任何启动 ISO9660 文件的活动 USB 或持久 USB,但可能因 USB 上的 Linux 版本而异。