如何处理损坏的 /boot/uefi

如何处理损坏的 /boot/uefi

新款 HP Pavillion 15 的背景

  1. 通常程序:

    a. 删除 windows 分区,只保留 /boot/uefi 分区

    b. 创建几个 ext4 分区,其中两个用于操作系统

    c. 在第一个操作系统分区上安装 Linux

    c. 已完成此手术 10 年

    d. 笔记本电脑自交付以来一直运行良好

  2. 使用突触更新后,重启挂起,尝试了几次,滚动看起来符合预期 - 守护进程启动等 - 直到它挂起

  3. 在第二个操作系统分区上从 DVD 安装了 16.04,安装过程中未报告任何问题

  4. 新安装后启动,出现蓝屏错误code 0xc0000225

  5. 蓝屏所指向的所有诊断都通过了 CPU、内存、磁盘等

  6. 网络搜索表明/boot/uefi分区已损坏

问:我可以重新格式化该/boot/uefi分区或者以某种方式挽救它吗?

答案1

您看到的错误消息的屏幕截图可能会有所帮助。我在 Google 上搜索了一下,找到了几个页面,例如这个,显示的屏幕截图显示,这可能是 Windows 错误。如果是这样,那么听起来你的安装方法留下了一些 Windows 文件,这些文件不知何故被激活,现在正试图控制计算机。(附注:如果你从基于 EFI 的计算机中完全删除操作系统,请确保删除其在EFI 系统分区 (ESP)以防止出现这种“僵尸操作系统”综合症!对于您来说,完全删除 ESP 并允许 Ubuntu 安装程序创建一个新的 ESP 是合适的。)如果我的怀疑是正确的,那么从 ESP 中删除这些 Windows 文件应该可以解决这个问题。

如果 ESP(安装在/boot/efiUbuntu 中)损坏,或者 Windows 启动管理器以僵尸模式返回,则应该可以使用我的rEFInd 启动管理器在 USB 闪存驱动器或 CD-R 上。但请注意,您可能需要禁用安全启动如果它已启用。计算机启动后,您应该能够进一步调查,例如:

  • 用于dosfsck检查 ESP 上的文件系统是否损坏。(请务必先将其卸载。)
  • 查找 ESP 上剩余的 Windows 文件。(它们通常位于 中/boot/efi/EFI/Windows,就像从 Ubuntu 中看到的那样。)
  • 使用 检查启动顺序sudo efibootmgr -v。注意行BootOrder;那里的第一项表示计算机首先尝试启动的引导加载程序。如果Boot####第一行对应的行BootOrder是 Windows,则说明存在问题。删除 Windows 文件应该可以解决问题;或者您可以使用选项调整启动顺序-oefibootmgr在极端情况下,您可能需要为 Ubuntu 添加新的启动项。(有时它们会丢失,要么是因为 EFI 错误,要么是因为使用 等工具时发生意外efibootmgr。)

在极端情况下,如果 ESP 严重损坏,我建议:

  1. 备份 ESP 中可以备份的内容。文件级备份(使用、、cp或类似工具)即可。tarzip
  2. 尝试dosfsck在 ESP 上使用。
  3. 如果dosfsck问题没有解决,请通过卸载并使用 ESP 来创建一个新的 FAT 文件系统mkdosfs
  4. 创建一个新的文件系统后,恢复原始文件并调整文件/etc/fstab以使用其新序列号(UUID=中的项目/etc/fstab;使用了解新的序列号blkid)进行挂载。
  5. 如果你仍然无法启动,您必须(重新)安装引导加载程序。
    • 引导修复可以以某种自动化的方式完全重新安装 GRUB。
    • 或者,如果您通过 rEFInd 或其他临时工具成功启动,您可以运行,sudo grub-install然后运行sudo update-grub​​。这比 Boot Repair 稍微不彻底一些,但可能已经足够;并且不太可能因过度使用而产生新问题。
    • 另一个选择是通过 Debian 软件包、PPA 或refindUbuntu 中的软件包(如果您使用的是 Ubuntu 17.04)安装 rEFInd。这将绕过 GRUB。您需要克服一些额外的困难使其与安全启动一起工作。

相关内容