我尝试在戴尔笔记本电脑上双启动 Ubuntu 和 Windows 10。出现 grub-install 错误。检查日志文件后,一位启动板专家建议我的 EFI 系统分区已损坏,我需要在 ESP 上运行 chkdsk。
关联:bugs.launchpad.net/ubuntu/+source/grub-installer/+bug/1703167
不幸的是,我找不到任何清晰的资源来解释这一点。请向我解释适当的程序。
答案1
造成这种情况的根本原因很可能是 Windows 快速启动和休眠功能。请参阅这里和这里有关如何在 Windows 中禁用这些功能的信息。作为背景,这些功能将关机操作转变为挂起到磁盘的操作。这具有减少后续启动时间的预期效果。不幸的是,不良后果是,在操作系统之间共享分区变得不安全,因为当非 Windows 操作系统启动时,它们将处于不一致的状态;然后当 Windows 启动时,它将不知道如何处理非 Windows 操作系统所做的任何更改。因此,可能会导致文件损坏。这可能会影响 EFI 系统分区 (ESP),Windows 和 Ubuntu 引导加载程序都存储在其中。对于您来说,我推测这些功能处于活动状态(默认情况下处于活动状态),这导致了 Ubuntu 认为的文件系统损坏。
如果我没记错的话,解决方案是禁用这些功能。您可能需要重新启动 Windows 才能使更改生效。此后,您应该能够安全地读取和写入 ESP。
如果禁用这些功能后分区仍然损坏,则可以使用 Linux 原生工具修复 FAT 文件系统。dosfsck
您可以使用它代替CHKDSK
Windows 中的,但您需要将-a
选项传递给它,如sudo dosfsck /dev/sda1
检查/dev/sda1
;或使用更高级的选项来批准单个更改。也就是说,如果您看到文件系统损坏,您可能需要先备份分区。使用文件级备份工具(例如cp
,tar
或zip
)应该足够了。如果文件系统修复操作使情况变得更糟,备份将为您提供后备方案。(当然,这假设所有文件都已成功读取和备份!)在这种情况下,您可以创建一个新的文件系统并恢复所有文件。
我从未尝试CHKDSK
在 Windows 中使用 ESP。我的怀疑可以按如下方式进行:
- 打开行政人员命令提示符窗口。
- 在该窗口中键入
mountvol E: /S
以安装 ESP 。(更改为您喜欢的任何内容。)E:
E:
- 键入
CHKDSK E:
以运行检查。
正如我所说,我还没有尝试过,所以我不能保证它会起作用。如果我对你的问题的原因的判断是正确的,那么即使文件系统损坏,仅此过程也是无用的;你仍然需要禁用快速启动和休眠,以使系统在多引导环境中安全使用。
答案2
在 Windows 上,我使用 DISKPART 为 EFI 系统分区分配一个字母。启动 DISKPART,然后键入LIST DISK
查找磁盘,然后键入SELECT DISK <N>
(驱动器号在哪里)。按照相同的步骤找到正确的分区(即LIST PARTITION
后跟SELECT PARTITION <N>
),然后只需键入ASSIGN LETTER = X
让 Windows 将分区安装到字母 X。
然后以管理员权限打开 CMD。运行CHKDSK X: /f /r
然后,我再次尝试安装 Ubuntu,并且安装成功!
答案3
我最近在安装 Ubuntu 18.04 和 Windows 10 时遇到了类似的问题。Linux 系统日志指示创建目录 /boot/efi/EFI/ubuntu 时出现问题。因此,我在 Windows 中运行了 chkdsk,发现 ESP 已损坏。它通过删除分区中的 Ubuntu 条目解决了该问题。然后我从实时磁盘重新安装了 Ubuntu,一切顺利。