我正在尝试使用 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 映像路径上的部分:/boot
set 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