使用 grub 双启动 Gentoo 和 ArchLinux

使用 grub 双启动 Gentoo 和 ArchLinux

我正在尝试使用 Gentoo,因此我调整了 ArchLinux 分区的大小以释放一些空间。

我在以下分区方案上安装了 Gentoo:

Model: ATA ST3500411SV (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system     Name                 Flags
 1      1049kB  3146kB  2097kB                  BIOS boot partition  bios_grub
 2      3146kB  16.1GB  16.1GB  linux-swap(v1)  Linux swap
 3      16.1GB  453GB   437GB   btrfs           Linux filesystem
 4      453GB   453GB   134MB   ext2            gentoo-boot
 5      453GB   500GB   47.3GB  ext4            gentoo-root

BIOS 启动分区(#1)由来自 ArchLinux 的 grub 填充。

对于 Gentoo 的安装,我遵循了官方手册中的说明,但我跳过了配置引导加载程序的部分,认为 ArchLinux 的 grub 安装应该能够处理 Gentoo 和 Arch 的启动。

也许这是我的错误。

我在 Arch-Linux 中的 grub-config 中添加了以下内容:

更新后的版本:

menuentry "Gentoo" {
        insmod ext2
        set root=(hd0,gpt5)
        linux /boot/kernel-genkernel-x86_64-4.12.12-gentoo
        initrd /boot/initramfs-genkernel-x86_64-4.12.12-gentoo
}

这不是我添加的原始版本,我更改了一些设置试图缩小问题范围。

当我启动时,Gentoo 条目出现在 grub 列表中,但是当我尝试使用它时,我收到错误消息,提示找不到内核文件。

我的主要问题是了解如何告诉 grub Gentoo 根目录位于 gpt5 中,而 /boot 文件夹位于 gpt4 中。

我也尝试使用 os-prober 自动生成条目,但结果相同,找不到内核文件。grub 配置使用 gpt5 作为 root,而 /boot 文件夹中没有提及 gpt4。

有人有遇到过此类问题的经验吗?

答案1

boot并且root位于不同的分区上。此时boot未安装在第 5 个分区上的目录中。您应该更改根设置并删除内核和 initramfs 映像路径上的部分:/bootset root=(hd0,gpt4)/boot

set root=(hd0,gpt4)
linux /kernel-genkernel-x86_64-4.12.12-gentoo
initrd /initramfs-genkernel-x86_64-4.12.12-gentoo

相关内容