使用有缺陷的可启动USB本身进行永久修复
简短版本
如果你知道自己在做什么,可以跳过以下内容:
在出现上述错误后的boot:
提示符中,输入live
并按下Enter
,以启动Live USB会话。
打开终端(例如使用Ctrl+Alt+t
快捷键),逐行输入以下每个命令:
sudo -i
apt-get update
apt-get install syslinux
mount | grep cdrom
上面的最后一个命令显示了您的可启动USB连接到哪个设备。
重要提示!请在终端中使用下面的命令,将命令中的/dev/sdb1替换为上面最后一个命令的输出中的设备。
syslinux /dev/sdb1
重新启动并享受吧!
长版本:
这个错误发生是因为您使用了一个早期版本的syslinux软件包创建了可引导的USB分发(感谢Amir Ali Akbari提供的错误链接),而您期望的是一个更新的版本。
如果您使用的是Ubuntu 14.04来制作一个用于Ubuntu 15.04及以上版本的可引导的USB设备,也会出现这个错误。
Filip Sohajek在
Lucio的
答案中提到的解决方法当然是有效的,但考虑到我上面提供的Utopic版本说明以及那里提到的使用与引导映像相同的Ubuntu版本来创建引导映像的解决方法,应该可以从Live CD本身永久修复此问题:
引导可启动的USB设备,直到您看到错误消息为止:
Unknown keyword in configuration file: gfxboot.c32: not a COM32R image
boot:
在 boot:
提示符下,输入 live
并按回车键(无需按TAB键,因为它只是用来显示可用选项,包括 live
)。
一旦进入 live Ubuntu 会话,配置以便您可以访问互联网(例如通过 连接到WiFi网络)。
打开一个终端窗口(例如按下 Ctrl+Alt+T
)。然后逐个输入以下命令序列(对于任何确认提示,都回答“是”):
sudo -i
apt-get update
apt-get install syslinux
第一个命令给你root访问权限,后面两个命令安装了你需要修复可启动USB所需的更新版syslinux软件包。现在你需要弄清楚你要修复的是什么,也就是你的可启动USB连接的设备名称。
在上面的终端窗口中输入以下内容:
mount | grep cdrom
你应该看到一个类似的输出
/dev/sdb1 on /cdrom type vfat (... lots of irrelevant mount flags ...)
最重要的部分是上面的第一个“word”。通常它会是
/dev/sdb1
,但如果您连接了更多的磁盘到您的机器上,它可能是其他内容。
或者,您可以从用户界面启动
gparted
命令,并查看磁盘以确定哪个设备连接到
/cdrom
。
现在在终端窗口中输入下面的命令,非常小心地将
/dev/sdb1
替换为您从前一个命令中获得的设备:
syslinux /dev/sdb1
上述最后一条命令将在可引导的USB设备分区的引导扇区中覆盖早期版本的syslinux,以正确的版本与发行版本身相匹配。
就是这样!现在重新启动,您应该能够按照Live USB的正常图形用户界面流程进行操作。
当然,如果您有一个没有评估选项的可引导Ubuntu媒体,比如Ubuntu服务器安装媒体,您无法使用它来修复自身,但您可以使用桌面版本根据上述说明修复服务器版本。只需在桌面版本已经启动后将服务器版本媒体插入USB,并将其用于上述/dev/sdb1位置的服务器版本设备。