用 uuid 引导 macOS
之前在 grub.cfg 写入引导 macOS 的配置文件为:
1 | menuentry 'Mac OS X (on /dev/sda3)' --class osx --class darwin --class os $menuentry_id_option 'osporber-xnu-64-6834a4ed4dccef17' { |
设置 root 路径为 /dev/sda3 设备,由于电脑偶尔会插入优盘,导致设备的盘符发生变化 hd1 变成 hd0,macOS 无法正确引导。
想到 grub 可以通过设备的 uuid 进行引导,于是我在 Arch 查看 /dev/sda3 的 uuid。
1 | ls -l /dev/disk/by-uuid |
于是将 grub.cfg 改为:
1 | menuentry 'Mac OS X (on /dev/sda3)' --class osx --class darwin --class os $menuentry_id_option 'osporber-xnu-64-6834a4ed4dccef17' { |
再次引导的时候还是会出现 unknown device,最后发现在 Arch 下直接查找的 uuid 并不对,所以 grub 找不到设备,macOS 无法启动。
正确的 uuid 应该使用 grub-prob 进行计算,生成方式为:
1 | sudo grub-prob -t fs_uuid -D /dev/sda3 |
再次写入 grub.cfg 引导就正常了,开机时插拔优盘进行测试也是正常的。