Arch Linux grub 安装错误“airootfs”

李智修*_*李智修 23 boot arch-linux boot-loader grub2

我正在关注官方安装教程。一切都很顺利,直到引导加载程序部分。

我遇到了错误

/usr/bin/grub-probe: error: failed to get canonical path of 'airootfs'.
Run Code Online (Sandbox Code Playgroud)

执行命令时与此问题相同:

grub-mkconfig -o /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)

我正在 VirtualBox 上安装 arch,并一步一步地遵循官方的 wiki 教程GRUB部分。

我可以成功启动到 grub,但我只能看到一个 grub shell。作为推论,我认为自从生成 grub 配置文件的步骤以来它已经出轨了。希望我的信息有帮助。


BTW 其实我在上一步中也遇到过这个错误——安装grub

grub-install --target=i386-pc /dev/sda
Run Code Online (Sandbox Code Playgroud)

我添加了根目录参数,它继续运行而没有出现错误。

grub-install --root-directory=/mnt /dev/sda
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我在 /mnt 上安装了我的主要 Linux 分区 /dev/sda3 但没有任何根或引导目录参数供我在 grub-mkconfig 中使用。

这是 fdisk 实用程序显示的我的分区表: 我的分区表

多谢。问候。

Joh*_*ard 25

似乎你应该grub2-mkconfig chroot 中做而不是在外面做。grub2-mkconfig用于grub-probe检测与挂载点关联的真实设备,而airootfs(archiso's rootfs) 已加载到 ram 中并且没有规范路径。

因此,在安装 grub 和生成配置之前,请先执行以下操作:

arch-chroot /mnt /bin/bash
Run Code Online (Sandbox Code Playgroud)

  • @flarn2006`pacman -S grub` (7认同)
  • 但是 GRUB 安装命令在 chroot 中不可用... (5认同)
  • @flarn2006 您需要在 chroot 中安装 grub 包。 (2认同)