从 13.04 升级到 13.10;“挂载 /boot/efi 时发生错误”

从 13.04 升级到 13.10;“挂载 /boot/efi 时发生错误”

我今天早上升级到了 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、重新挂载它并恢复它)。文件级备份(通过cptar或类似方法)应该足够了;但您可能需要调整文件,/etc/fstab因为序列号(UUID=/etc/fstab)几乎肯定会改变。当然,您需要成功挂载 ESP 才能备份它。
  • 您的内核可能构建不正确;或者更可能是您的初始 RAM 磁盘 (initrd) 构建不正确。这种问题对于大多数用户来说很难克服,尽管 Ubuntu 的update-initramfs工具可以帮助后者。

相关内容