通过 grub 引导 Arch Windows 双系统

由于新入手了台 m1 的 mac 所以给我的 surface 装一个 windows 以备不时之需。

windows 默认通过自己的 windows boot manager 引导启动,而我使用的 arch 则使用 grub,为了方便起见,我选择直接使用 grub 来引导两个系统的启动。

过程

grub-mkconfig 只识别当前系统的 efi,想要让 grub-mkconfig 自动将其他已经安装的系统的 efi 添加到启动菜单中,我们可以通过软件包 os-prober 来识别其它系统的磁盘分区。

1
2
3
4
5
6
7
8
9
10
sudo pacman -Syu
sudo pacman -S os-prober
# 找到windows系统的efi分区
lsblk
# 将此分区挂在到本地
sudo mount /dev/nvme0n1p5 /boot/windows/
# 允许os-prober扫描其他系统的引导分区需要将GRUB_DISABLE_OS_PROBER=false添加到/etc/default/grub
vim /etc/default/grub
# 生成新镜像
sudo grub-mkconfig -o /boot/grub/grub.cfg

意外

新引导正常来说是没有问题的,但是我在进入 arch 的时候进入了紧急模式。通过journalctl -xb查看日志发现了了问题failed to start the file system check on /dev/uuid/****,于是我使用 fsck 对文件进行修复。修复完成后重启一切正常。产生原因暂时未知。

参考内容:

https://wiki.archlinux.org/title/GRUB#MS_Windows

https://arcolinuxforum.com/viewtopic.php?t=2668