我今天早上升级到了 13.10,但无法启动 Ubuntu。具体来说,我收到以下消息:“安装 /boot/efi 时发生错误(按 S 跳过安装或按 M 进行手动恢复)”
我运行了 Boot Recovery 但没有成功——报告的输出如下:http://paste.ubuntu.com/6693898/
我注意到的一个可能相关的事情是以下错误:“FAT-fs(sda1):未找到IO字符集iso8859-1”,这似乎与这个错误类似(https://bugs.launchpad.net/linuxmint/+bug/1221330) 但我完全不够聪明,无法理解这是否是事实,也不知道如果是事实该怎么办。
任何帮助都将不胜感激:(
答案1
@RodSmith——感谢您的帮助!
更新:确实如此这个错误。我最终重新创建了 /boot/efi 分区(在 Boot Recovery 上使用 GParted)。然后我再次重新安装了 Ubuntu 13.10。这样做的缺点是丢失了我的一大堆应用程序,但无论如何我还是需要进行一次大扫除。
我认为,如果我想挽救更多文件,Rod 建议的复制 /boot/efi 文件然后再复制回来将是最好的做法。
不幸的是,我不知道自己是怎么陷入这种境地的。我不得不花 10 个小时来解决这个问题,这真是太糟糕了,但没关系。
答案2
如果你使用 Windows 8 或 8.1 双启动,则必须禁用 Windows 中的快速启动功能,如下所述这里,以及许多其他地方。此功能将关机变成挂起到磁盘(休眠),从而使文件系统处于不一致状态。这可能导致无法从 Linux 安装有问题的文件系统,尽管我不记得“IO charset iso8859-1”错误消息是否是 Linux 中的可能症状。(我怀疑不是,虽然我不确定。)请注意,Windows 快速启动功能是不是与许多 EFI 中具有相同或类似名称的功能相同,因此在固件中禁用此类功能不是足以(甚至是必要的)解决这个问题。
短期内(对于单次启动而言),安装在 的 EFI 系统分区 (ESP)/boot/efi
对于大多数日常活动来说都不需要安装。因此,按跳过S
安装它应该可以让 Ubuntu 启动。这应该可以启用更多诊断和修复尝试。我建议:
- 启动后,尝试手动挂载文件系统,如
sudo mount /dev/sda1 /boot/efi
。这可能会产生更具信息性的错误消息;或者您可以dmesg | tail
在挂载尝试后键入以查找可能记录到内核环缓冲区的任何内容。请注意,如果您做获取要挂载的分区后,sudo umount /boot/efi
如果您想再试一次,可以使用它卸载它(例如,尝试各种选项来找出哪些有效,哪些无效)。 - 该
/etc/fstab
文件包含描述在何处安装什么以及如何安装每个文件系统的条目。尝试找到该条目/boot/efi
并进行 Web 搜索以了解有关此文件的更多信息。这本身不会对您有所帮助,但您可能会发现可以解决问题的安装选项,在这种情况下,/etc/fstab
可能需要编辑该文件。 - 在最坏的情况下,可能需要备份 ESP、卸载它、在其上创建一个新的文件系统(通过
sudo mkdosfs -F 32 -n ESP /dev/sda1
、重新挂载它并恢复它)。文件级备份(通过cp
、tar
或类似方法)应该足够了;但您可能需要调整文件,/etc/fstab
因为序列号(UUID=
在/etc/fstab
)几乎肯定会改变。当然,您需要成功挂载 ESP 才能备份它。 - 您的内核可能构建不正确;或者更可能是您的初始 RAM 磁盘 (initrd) 构建不正确。这种问题对于大多数用户来说很难克服,尽管 Ubuntu 的
update-initramfs
工具可以帮助后者。