安装失败,出现了Grub(只读EFI分区?)的问题。

我有一台全新的戴尔Inspiron 5000笔记本电脑,搭载Windows 10操作系统。我已经缩小了Windows分区,并尝试安装Ubuntu 16.04 LTS以实现双系统启动。 安装过程(将sda8用于/,将sda9用于/home)进行得很顺利,直到安装grub时出现了一个“关键错误”,导致我无法启动Ubuntu。
尝试使用boot-repair修复grub时,我遇到了同样的错误。 我还尝试安装Ubuntu 14.04 LTS,结果也是一样。 经过一番调查,我发现如果我尝试挂载sda1,这个分区总是只读的。这正常吗?你们有什么办法可以帮我完成双系统启动吗? 这是来自boot-repair的paste bin链接:

http://paste2.org/gCPyJFvg

顺便说一下,我已经在Windows 10中关闭了快速启动功能。

简而言之,cl-netbox告诉你把GRUB(Ubuntu的引导程序)放在Windows引导程序“前面”(也就是放在内部硬盘的根目录),这样GRUB就能识别Ubuntu和Windows,并为你提供启动任意一个操作系统的选择。他显然是对的!你需要这样做是因为Windows引导程序不会(可能永远都不会)识别除Windows以外的其他操作系统。 - ipse lute
我们已经看到了损坏的ESP - efi系统分区。你可以尝试在Windows上运行chkdsk命令,或者在Ubuntu上运行sudo dosfsck -t -a -w /dev/sda1命令。在某些情况下,需要以只读模式挂载(ro),备份所有数据,删除分区,重新创建FAT32格式的分区,并设置引导标志使其成为ESP,然后恢复数据。备份ESP始终是一个好主意,因为它通常不包含在大多数备份中。 - oldfred
1个回答

首先确保已禁用休眠 - 因此启动到Windows,以管理员身份打开命令提示符并执行:powercfg /h off。完全关闭计算机 - 不要重新启动。
然后在EFI模式下将GRUB引导加载程序安装到您的Ubuntu安装中。 从Ubuntu安装介质启动,打开终端并执行:
sudo mount /dev/sda8 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sda
update-grub  

注意: sda = 磁盘 | sda1 = efi 分区 | sda8 = 系统分区 | (从 'paste2' 输出中获取)
进入 BIOS - 在 UEFI 设置中更改启动顺序 - 选择 Ubuntu 作为默认系统。

嗨 @cl-netbox,按照你的指示解决了。谢谢!只有两个问题。1- 实际问题是什么?(为了更好地进行未来的搜索,我需要改变问题的主题吗?)2- 在左侧启动栏上有一个名为“安装发布版”的图标。那是什么?我有一个“调试”版本吗?它只是正常的安装程序吗? - pblanco
@pblanco:不客气...很高兴你的问题解决了。主要问题是Windows处于休眠模式,所以efi分区正在使用中,Ubuntu安装程序无法将引导文件写入其中。由于我不知道你选择了哪个Ubuntu版本,所以无法告诉你安装了什么,但是并不存在任何"调试版本",也从未见过"安装发布版"这样的图标...如果你指的是"安装Ubuntu"...也许你不小心再次从安装介质启动了... :) - cl-netbox
我安装了Ubuntu 16.04。真是太奇怪了。不管怎样,我会忽略这个图标(它看起来像正常的安装程序)。再次感谢。 - pblanco