无法挂载/ boot / efi

我刚刚从官方网站(当然是amd64)下载了最新版本的Ubuntu13.04,而我的电脑是华硕A45V笔记本电脑。我使用通用USB安装程序来创建一个启动usb磁盘来安装ubuntu。首先我试图使用第一个默认选项来安装它(这意味着我让ubuntu自己做所有事情,我在我的硬盘上安装了Win7),所有的东西似乎运行得很好。但是,当我重新启动并尝试启动ubuntu.It告诉我“Faild to mount / boot / efi,键入S跳过它,或键入M以手动修复它”然后我检查/ boot / efi文件夹,发现它中没有任何内容! 然后我尝试手动安装它,但得到了相同的结果。 有什么问题? 我怎么能修复它?还有更多,Boot-Repair只能将我的Win7加载程序带回Grub列表,但Win7的正式efi加载程序已被Ubuntu覆盖到Grub中。 我该如何恢复它?

首先,它是Boot Repair,而不是Ubuntu的安装程序,它用另一个GRUB副本替换了Windows引导加载程序。 引导修复是这样做的,因为它是一些可用的解决方法,用于启动Windows引导加载程序而不是Linux引导加载程序的一些错误的BIOS。 但恕我直言,启动修复太快,不能诉诸这个解决方案,这是一个不优雅(虽然偶尔必要)黑客。 IIRC,Boot Repair中有一个选项可以撤消此更改。 如果找不到,可以通过重命名文件手动执行相同的操作。 Microsoft引导加载程序应该是ESP上的EFI/Microsoft/Boot/bootmgfw.efi (在Linux中安装在/boot/efi中;请参见下文)。 在您的情况下,该文件将包含GRUB的副本,并且真正的Microsoft引导加载程序将使用另一个扩展名或一些新的主要字符重命名 – Boot Repair开发人员似乎已更改了他们至少使用过的名称一次。 请注意,如果您正确地重命名引导程序,可以想象您的计算机将在打开电源时直接启动Windows,从而无法启动Linux。 如果发生这种情况,您可以在固件自带的启动管理器中找到Linux(通常在启动时按function键启动); 并且您可以通过在Linux中使用efibootmgr程序将GRUB恢复为默认值。 有关详细信息,请参阅EFI引导加载程序安装的Web页面 。

/boot/efi目录为空,因为它是ESP的挂载点,正如您所报告的那样,系统无法挂载它。 这很可能是因为文件系统损坏,尽管可能是/boot/efi /etc/fstab条目有错误。 试试这个:

  1. 输入sudo parted /dev/sda print 。 这应该会在磁盘上生成一个分区列表。 ESP通常是FAT分区,其中“引导标志”设置为parted的命名法。 识别此分区并记下其编号。 如果你找不到FAT分区,那可能是因为对ESP造成非常严重的损坏 – 但这似乎不太可能,因为你可以启动。
  2. 键入sudo mount /dev/sda1 /boot/efi ,将1更改为您在第一步中标识的任何数字。 如果有错误消息,请记下它; 它可能是一个关于什么是错的线索。
  3. 如果您无法安装ESP,请键入sudo dosfsck /dev/sda1 ,再次将1更改为正确的分区号。 这将在分区上运行Linux的FAT文件系统检查实用程序,运气好的话可以解决问题。 然后,您可以尝试再次手动安装分区。
  4. 如果您能够在不运行dosfsck情况下安装ESP,请在/etc/fstab查找其条目并修复它的任何问题。 我知道这个描述含糊不清,但是如果没有看到这个条目就很难知道会出现什么问题。 如果您需要进一步的建议,请在此处发布

您提到了Windows 7,但请注意,Windows 8默认情况下不使用正常关机。 相反,它使用“快速启动”function,更像是暂停到磁盘操作。 这样做的一个后果是文件系统处于不一致状态。 我听说过这个function会导致ESP在某些计算机上出现问题,这就是我提到它的原因。 使用Windows 8进行双启动时,应禁用“快速启动”function, 如此处所述。 即使在Windows 7中,如果您使用了挂起到磁盘function或者没有干净地关闭,您可能会看到类似的东西。