Grub 找不到内核

Grub 找不到内核

Ctrl昨天我安装了更新,想用+ Shift+复制一些东西,结果意外地用+C终止了内核更新。然后我再次开始更新过程,但自从重新启动后,系统无法启动,并且我从 Grub 收到此错误消息:CtrlC

error: file `/boot/vmlinuz-5.10-x86_64' not found.
error: you need to load the kernel first.
Press any key to continue...
Failed to load both default and fallback entries.
Press any key to continue...

然后我就进入了 Grub 菜单。 “Manjaro Linux 的高级选项”菜单包含条目“ Manjaro Linux (Kernel: 5.10.70-1-MANJARO x64)”和“ Manjaro Linux (Kernel: 5.10.70-1-MANJARO x64 - fallback initramfs)”。两者都会导致相同的错误。

如果我ls (hd1,gpt2)/boot在 Grub 命令行中运行(系统分区),唯一相关的条目是:

linux510-x86_64.kver

使用ls (hd1,gpt1)/boot(启动分区),输出看起来好多了,相关条目是:

linux510-x86_64.kver
vmlinuz-5.10-x86_64
initramfs-5.10-x86_64.img
initramfs-5.10-x86_64-fallback.img
linux515-x86_64.kver
vmlinuz-5.15-x86_64
initramfs-5.15-x86_64.img
initramfs-5.15-x86_64-fallback.img

5.15 内核是我使用实时启动 USB 和 来安装的chroot,所以一定有什么东西在那里工作......但它仍然无法启动。

我不再知道我所做的所有尝试,主要是因为今天每次重新启动都会重置我的浏览器历史记录,但其中一些是:

  • 重新安装所有linux510*软件包
  • 安装另一个内核版本mhwd-kernel
  • grub-mkconfig运行、mkinitcpiogrub-installupdate-grubinside的各种组合manjaro-chroot(在最后几轮中,它们的输出看起来都很成功。)

我没有尝试回滚更新,因为上次我尝试过,它只会让混乱变得更大。

我使用的是 Manjaro 的常规(非测试版)版本,之前没有过多使用过 Grub。我什至没有使用任何双启动设置,这显然与大多数有类似问题的人不同。如果有帮助的话,我可以列出一些软件包更新,但现在我不会,因为其中有超过 1400 个。已安装软件包的一些版本号:

  • manjaro-release 21.2pre-1
  • grub 2.06-1
  • linux510 5.10.79-1

live USB 也是 Manjaro,但版本较旧,仅安装了必要的更新。

为什么 Grub 找不到明显存在的文件?当然:我该如何解决这个问题?

答案1

我的系统现已修复,但我不知道我采取的哪些步骤实际上是必要的。最重要的部分可能是完全卸载活动内核并重新安装它,而不是“仅仅”重新安装到位。mhwd-kernel -r linux510如果当前正在使用 5.10 内核,则此命令不起作用,但可以使用以下命令:

yay -Rdd linux510 linux510-acpi_call linux510-bbswitch linux510-broadcom-wl linux510-headers linux510-nvidia linux510-r8168 linux510-rtl8723bu linux510-tp_smapi linux510-vhba-module linux510-virtualbox-host-modules

dd部分使其忽略所有依赖性问题。

我还再次卸载了故障排除过程中安装的 5.15 内核。然后我重新安装了 5.10 内核,内容与此类似:

yay -S linux510 linux510-extramodules

此后,该目录包含以前不存在的/boot文件initramfs-5.10-x86_64-fallback.imginitramfs-5.10-x86_64.img、 。intel-ucode.imgvmlinuz-5.10-x86_64


我也使用了这个命令:

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

在那里,我做了不是使用 EFI 目录/boot/EFI,即使它确实存在。我不知道这个命令是否必要。

我还使用了这些命令:

grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -P
update-grub

我不知道其中哪一个(如果有的话)是必要的。之后我重新启动,在Bios中选择以“UEFI”开头的条目,系统又正常启动了。

相关内容