修复错误:只读 efi 分区

修复错误:只读 efi 分区

再次从一个问题跌跌撞撞地遇到另一个问题。我最近在 win10 上同时安装了 OpenSuse13.2。效果不错。然后我决定重新安装,但使用 Suse Leap,删除旧的 Suse 安装。安装结束时,计算机刚刚重新启动,没有显示 Leap 的启动选项。但 opensuse 仍然是选项。我在使用 Ubuntu 时遇到了类似的问题,直到我手动挂载了 Efi 分区并删除了 ubuntu 文件夹。现在我尝试了同样的方法,但我无法删除,因为即使我尝试,分区也始终以只读方式挂载 sudo mount -o remount,rw /media/efi。使用mount | grep /media显示它以 开始,rw但由于错误而重新挂载ro

我猜这个 ReadOnly 也是 Leap 安装失败的原因。这是文件系统错误吗?我读到有些人在 EFI 分区上使用 chkdsk,但没有解释如何使用。我该怎么做?或者更好的是,有没有办法从 linux liveCD 中做到这一点?

  • 笔记本电脑:MSI 16GF(仅带有恢复分区,没有安装介质)
  • 标准硬盘上的 EFI
  • Linux 位于附加 SSD 上

编辑

我已经厌倦了一些fsck选择-n,但还是不要让情况变得更糟。

sudo fsck -n /dev/sda2
fsck from util-linux 2.26.2
fsck.fat 3.0.28 (2015-05-16)
0x41 Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
 Automatically removing dirty bit.
FATs differ but appear to be intact. Using first FAT.
/EFI/opensuse/MokManager.efi
 Contains a free cluster (19138). Assuming EOF.
/EFI/opensuse/MokManager.efi
 File size is 1276328 bytes, cluster chain length is 0 bytes.
 Truncating file to 0 bytes.
/EFI/opensuse/grub.efi
 Contains a free cluster (19450). Assuming EOF.
/EFI/opensuse/grub.efi
 File size is 918392 bytes, cluster chain length is 0 bytes.
 Truncating file to 0 bytes.
Reclaimed 793 unused clusters (3248128 bytes)
Free cluster summary wrong (62265 vs, really 63058)
 Auto-correcting
Leaving filessystem unchanged.
/dev/sda2: 430 files, 12718/75776 clusters

所以,卸载时出了点问题。无论是我的问题还是 Leap 安装的问题,都无法改变出问题的事实。

我应该自动纠正这些错误吗?

答案1

问题的根本根源如下:

0x41 Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.

您的 Windows 安装可能设置为使用“快速启动”,这是 Windows 8 及更高版本的默认设置。(请注意,这是视窗功能。许多 EFI 都具有名称相似的功能,但完全不相关。)要禁用此功能,您必须同时禁用它和休眠功能。许多网页都涵盖了这些主题,但请参阅以下几个主题:

禁用此功能并重新启动几次后,ESP 应该就可以使用了。如果不行,我建议您备份它(它相当小),在其上创建一个新的 FAT 文件系统(mkdosfs例如在 Linux 中使用),然后恢复您的文件。不要但是,删除并重新创建整个分区;这将改变其 GUID 值,从而使指向引导加载程序的 NVRAM 条目无效。还请注意,重新创建文件系统只是严重损坏文件系统的一种解决方法。如果 Windows 设置不“生效”,问题将再次出现,而重新创建文件系统不会改变这一点。

作为背景知识,请了解快速启动会将关机操作转变为挂起到磁盘的操作。如果唯一使用的操作系统是 Windows,那么这没什么问题,但如果您使用双启动,则当您从 Windows 关机或重新启动时,任何共享分区(包括 ESP)都将处于危险的不一致状态。禁用此功能会减慢启动过程,但可以安全地从两个操作系统访问共享分区。

相关内容