Sakitami的集装箱 - Windows 11
type: channel
link: https://blog.skihome.xyz/tag/Windows-11/
items: 恢复被Windows更新破坏的Arch引导

恢复被Windows更新破坏的Arch引导
type: item
date: 2022-12-05T03:33:00+08:00
description: 前言由于Windows10/11每年都会有一次大版本更新，而这种更新一般都会莫名其妙地破坏掉Linux的引导。在这里记录一下我修复Linux引导的过程。Ventoy我想先说一下Ventoy。多亏了它，我的U盘不至于一遍一遍地格式化烧写成引导盘。Ventoy是新一代多系统启动U盘解决方案。简单来说，Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘，你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动了，无需其他操作。 ——Ventoy.net只需要在官网下载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 # 重启