前言

由于Windows10/11每年都会有一次大版本更新,而这种更新一般都会莫名其妙地破坏掉Linux的引导。在这里记录一下我修复Linux引导的过程。


Ventoy

我想先说一下Ventoy。多亏了它,我的U盘不至于一遍一遍地格式化烧写成引导盘。

Ventoy是新一代多系统启动U盘解决方案。简单来说,Ventoy是一个制作可启动U盘的开源工具。
有了Ventoy你就无需反复地格式化U盘,你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动了,无需其他操作。 ——Ventoy.net

Ventoy截图

只需要在官网下载Windows安装包,解压就可以使用了。但注意初次将Ventoy安装到U盘上时,是需要格式化U盘的,记得将U盘中的数据备份一下。

安装好后,就可以在U盘的“Ventoy”目录里放一个Archlinux的iso了。在日后无法启动Arch的时候,就可以用它来启动到Arch安装环境了。

修复Grub引导

进入Chroot环境

这一步主要就是使用Arch安装环境种的arch-chroot来进入原来的系统。首先,我们需要先挂载原来的分区到正确的位置。

首先,查看一下分区情况。

lsblk

确定好需要挂载的分区,然后挂载到相应位置。

在这里,由于我使用的是Btrfs文件系统,因此挂载的部分我也想记录一下,以免后期遇到同样的情况却忘记了怎么挂载。

mount /dev/nvme0n1p1 /mnt -o subvol=@  # 挂载根目录到/mnt
mount /dev/nvme0n1p3 /mnt/boot/efi     # 挂载EFI分区到/mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/home -o subvol=@home #挂载home目录到/mnt/home(可选)

正常挂载好后,即可进入系统。我们默认使用root用户进行操作。

arch-chroot /mnt

重写引导

接下来就是使用grub重写一遍引导。

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

然后再更新一下grub.cfg文件。

grub-mkconfig -o /boot/grub/grub.cfg

至此,如果没有什么问题的话,修复引导部分就结束了。

退出chroot环境:

exit  # 退出chroot
umount -R /mnt # 卸载分区
reboot # 重启
最后修改:2023 年 10 月 09 日
赞助一杯冰阔落