双启动 UEFI 安装中的 Grub 问题 - 在 grub 控制台上启动,启动修复无济于事

双启动 UEFI 安装中的 Grub 问题 - 在 grub 控制台上启动,启动修复无济于事

[问题出现之前]

最近,我在工作电脑上安装了 Kubuntu 20.04,并安装了 Windows 双启动。该计算机有一个SSD,和一个HDD。SSD 一开始包含一个 EFI 分区,然后是 Windows 系统分区,然后是我的 Linux 根分区。HDD 包含一个 Windows“数据”分区和我的 Linux /home。

安装过程很复杂,因为计算机使用 UEFI 启动。无论我怎么尝试,都无法访问 grub 菜单;但我发现当我激活 UEFI 时,我在 Windows 上启动; 和当我停用 UEFI 并激活传统启动模式时,我在 Linux 上启动(但没有任何进入 grub 菜单的通道)。

[问题]

今天早上,由于前一天没有对 Kubuntu 或启动进行任何更改,我启动时屏幕一片漆黑,没有任何鼠标指针。心烦意乱,我尝试使用实时 Kubuntu USB 密钥进行启动修复。它不起作用,甚至更糟:现在,当使用 UEFI 启动时,我进入 grub 控制台(“支持最少的类似 BASH 的行编辑...”);而在传统系统上启动时,我最终出现启动错误(未找到文件 /boot/grub/i386-pc/normal.mod)。

用尽一切办法修复引导程序都不起作用;无论是重新安装内核,还是使用引导程序修复中的任何高级选项,都没有效果。什么都没有改变。

我能够使用以下链接越过 grub 控制台;但是我却进入了 Busy Box 控制台,在这里什么也去不了。

现在,我已经束手无策了,我真的很感激任何可以改善这种情况的建议,至少可以访问 Windows 或 Kubuntu。

答案1

我终于把它修好了。这是一段漫长的旅程。

我认为(虽然我不确定)这是由于几个问题造成的:

  • 同时安装为 UEFI 和 Legacy 启动的 Grub
  • 损坏的 Grub 无法完全卸载,并且每次更新时都会生成错误的配置文件
  • 尝试修复导致 EFI 分区损坏
  • /boot 文件夹中的内核头文件损坏

以下是我为修复所有问题所做的事情:

首先:确保计算机以 UEFI 模式(BIOS 设置)启动!

  1. 使用 Live Kubuntu 安装 USB 密钥进入实时 Kubuntu 会话
  2. 通过 Live Kubuntu Install USB 上的 Gparted 删除了现有的 EFI 分区
  3. 我在另一台计算机上安装的 Windows 10 上创建了 Windows 恢复驱动器
  4. 重新启动计算机并启动恢复驱动器并进入命令提示符
  5. 按照说明进行操作此链接创建一个新的 EFI 分区,并利用 C: 上的 windows 文件恢复它。之后即可恢复对 windows 的访问。
  6. 回到 Kubuntu 直播会议
  7. 在实时环境的控制台中使用以下命令来挂载和访问我的 Kubuntu 安装所在的分区
sudo mount /dev/nvme0n1p4 /mnt # nvme0n1p4 is the partition with my linux install
sudo mount /dev/nvme0n1p5 /mnt/boot/efi # nvme0n1p5 is the newly created EFI partition
sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc
sudo mount --bind /run /mnt/run
sudo chroot /mnt
  1. 重命名阻止 grub 彻底清除的脚本
sudo mv /etc/kernel/postrm.d/zz-update-grub /etc/kernel/postrm.d/zz-update-grub.bad
  1. 彻底清除并重新安装 grub
sudo apt-get purge grub grub-pc grub-common grub-efi
sudo mv /boot/grub /boot/grub_backup
sudo mkdir /boot/grub
sudo apt-get install grub grub-pc grub-common grub-efi
sudo grub-install /dev/nvme0n1p5 #nvme0n1p5 is the newly created EFI
sudo update-grub 
  1. 使用命令确定在 /boot 文件夹中安装了文件的软件包
dpkg -S /boot
  1. 使用以下方法重新安装所有软件包
sudo apt-get install --reinstall <packages names separated with spaces>
  1. 运行更新-grub

  2. 完成!一切都应该正常工作。如果没有,最后一次清除并重新安装 grub启动修复

感谢@oldfred 的耐心和明智的建议!

相关内容