修复 archlinux 的引导

By: Jeff Hu
Posted: January 26, 2021

这段时间开始 on-call 以来,被强迫使用企业微信。之前在公司的时候,我桌面主机性能强劲,带 win10 虚拟机非常轻松,于是并不觉得有什么难受之处。

然而自从开始 remote 之后,我发现在我的小笔记本上在虚拟机中跑企业微信简直是作死。于是难过了一整天之后决定切换到 win10 来 oncall。不过我之前的 win10 上无法安装 windows terminal,这让我没法忍,于是在上周末乘机重装了 win10。

然而通过 windows terminal 远程开发还是无法应对复杂的 oncall……在一天手忙脚乱之后,我意识到我还是得用 linux。

然而安装完 win10 后,我的 linux 引导就被覆盖掉了。

修复其实也不困难。

搞一个 u 盘重新写入 archlinux 镜像。在 win10 上推荐 rufus。

启动进入 u 盘,fdisk -l 查看分区情况,把 linux 的分区挂载到 /mnt 并把 EFI 分区挂载到 /mnt/boot

然后切换到原来的系统:arch-chroot /mnt

随后召唤 grub 重写引导,grub-install —target=x86_64-efi —efi-directory=/boot

然后重新生成 linux 引导:pacman -S linuxgrub-mkconfig -o /boot/grub/grub.cfg

检查一下生成的 grub.cfg 文件的内容,主要看 entry 项和对应的分区。

大概率没问题就可以重启了。

然后就可以见到可爱的 grub 引导界面。

An image from Notion

选择 arch 进入后可能会遇到错误。

An image from Notion

这是因为重装 win10 后 boot 分区的 UUID 可能会变,blkid 看一眼,然后修改 /etc/fstab 中对应的 /boot 的 UUID 即可。

参考资料