如何让 Ubuntu 在启动时默认不挂载 efi 分区?

如何让 Ubuntu 在启动时默认不挂载 efi 分区?

我有一台预装了 Windows 8.1 的华硕笔记本电脑,我设法在它旁边安装了 Ubuntu,几天来它运行良好。今天,突然间,Ubuntu 突然黑屏,我回到 grub 菜单选择我的一个操作系统,当我尝试启动 Ubuntu 时,它只是说无法挂载“/boot/efi”,并且它不允许我选择任何选项(一个是按 S 绕过挂载过程,另一个是按 M 手动更正问题)。如果我进入恢复模式并尝试正常启动,它会让我绕过安装程序并像往常一样启动 Ubuntu。

如何在启动时停用安装过程?或者更好的是,我该如何解决这个问题?

答案1

The_Seppi 的回答回答了您的第一个问题,并且在这方面完全正确。

至于如何解决这个问题,很可能会发生以下两种情况之一:

  • 文件系统可能存在问题(文件系统损坏)。如果您使用 Windows 默认设置的“快速启动”功能,则可能会发生这种情况。您必须禁用此功能,如所述这里,以及其他许多地方。
  • 您的文件系统 ID 可能已更改。这是UUID=xxxx-xxxxthe_Seppi 的回复中的部分内容。您可以通过键入 来查找分区的所有 UUID 值sudo blkid。如果您的条目在 EFI 系统分区(Ubuntu 中的 ESP)的第一列中有其他内容/boot/efi,例如/dev/sda1,则该值可能已更改。如果您备份、创建了新文件系统并恢复;或者如果您重新分区了磁盘,则可能会发生此类更改。

的输出启动信息脚本boot-info-script如果这些技巧不能帮助您解决根本问题,(在包中)可能会有所帮助。

答案2

使用提升权限的文本编辑器打开该文件/etc/fstab。您应该能够立即识别 EFI 分区,因为它可能带有标签,例如:

# /boot/efi was on /dev/sda1 during installation
UUID=xxxx-xxxx  /boot/efi       vfat    defaults        0       1

为了防止自动挂载,将noauto标志附加到选项列(在我的示例中为“默认值”),用逗号分隔,因此它可能看起来像这样:

UUID=xxxx-xxxx  /boot/efi       vfat    defaults,noauto 0       1

这将防止以后自动挂载此分区。如果您需要访问该分区,可以通过运行 手动挂载它sudo mount /boot/efi。由于此目录存储在 fstab 条目中,mount 将自动知道要在那里挂载什么。


注意:在我的系统上,/boot/efi 条目已被注释掉。但是,它也被自动挂载。因此,如果您要更改 fstab 条目,请删除#该行前面的所有前缀UUID=... /boot/efi

相关内容