[问题出现之前]
最近,我在工作电脑上安装了 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 设置)启动!
- 使用 Live Kubuntu 安装 USB 密钥进入实时 Kubuntu 会话
- 通过 Live Kubuntu Install USB 上的 Gparted 删除了现有的 EFI 分区
- 我在另一台计算机上安装的 Windows 10 上创建了 Windows 恢复驱动器
- 重新启动计算机并启动恢复驱动器并进入命令提示符
- 按照说明进行操作此链接创建一个新的 EFI 分区,并利用 C: 上的 windows 文件恢复它。之后即可恢复对 windows 的访问。
- 回到 Kubuntu 直播会议
- 在实时环境的控制台中使用以下命令来挂载和访问我的 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
- 重命名阻止 grub 彻底清除的脚本
sudo mv /etc/kernel/postrm.d/zz-update-grub /etc/kernel/postrm.d/zz-update-grub.bad
- 彻底清除并重新安装 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
- 使用命令确定在 /boot 文件夹中安装了文件的软件包
dpkg -S /boot
- 使用以下方法重新安装所有软件包
sudo apt-get install --reinstall <packages names separated with spaces>
运行更新-grub
完成!一切都应该正常工作。如果没有,最后一次清除并重新安装 grub启动修复。
感谢@oldfred 的耐心和明智的建议!