Gentoo 似乎没有启动新内核

Tim*_*Tim 5 gentoo

我需要 btrfs 文件系统支持。我按照维基文章重建了内核,将 btrfs 添加为内置内核对象。当我启动新内核并尝试手动挂载 btrfs 文件系统时,我得到“挂载:未知文件系统类型‘btrfs’”。我已经仔细检查了配置,正如 wiki 所指示的那样,btrfs 肯定是用“*”选择的。

但是,我的问题与新内核本身有关。/boot 中只有一个内核文件,是我在 3 月 25 日创建的。但是,如果我运行“uname -a”,它会报告内核是在 3 月 20 日构建的,这可能是我最初安装 Gentoo 的那一天。似乎原始内核是正在使用的内核,即使它显然不再存在。

以下是 grub2 配置的引导行:

linux /boot/kernel-genkernel-x86_64-3.12.13-gentoo root=/dev/sdb13
initrd /boot/initramfs-genkernel-x86_64-3.12.13-gentoo
Run Code Online (Sandbox Code Playgroud)

/boot 不在单独的分区上。这是 ls -l 的请求输出:

lrwxrwxrwx 1 root root      42 Mar 25 14:57 System.map -> System.map-genkernel-x86_64-3.12.13-gentoo
-rw-r--r-- 1 root root 2101526 Mar 25 18:44 System.map-genkernel-x86_64-3.12.13-gentoo
lrwxrwxrwx 1 root root      41 Mar 25 14:58 initramfs -> initramfs-genkernel-x86_64-3.12.13-gentoo
-rw-r--r-- 1 root root 3481260 Mar 25 18:45 initramfs-genkernel-x86_64-3.12.13-gentoo
lrwxrwxrwx 1 root root      38 Mar 25 14:57 kernel -> kernel-genkernel-x86_64-3.12.13-gentoo
-rw-r--r-- 1 root root 3600976 Mar 25 18:44 kernel-genkernel-x86_64-3.12.13-gentoo
Run Code Online (Sandbox Code Playgroud)

我错过了什么?


Grub 菜单项:

menuentry 'Gentoo Base System release 2.2 (on /dev/sdb13)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-1e68823f-eec6-45b9-9563-a673ec07f4e3' {
        insmod part_gpt
        insmod ext2
        set root='hd1,gpt13'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt13 --hint-efi=hd1,gpt13 --hint-baremetal=ahci1,gpt13  1e68823f-eec6-45b9-9563-a673ec07f4e3
        else
          search --no-floppy --fs-uuid --set=root 1e68823f-eec6-45b9-9563-a673ec07f4e3
        fi
        linux /boot/kernel-genkernel-x86_64-3.12.13-gentoo root=/dev/sdb13
        initrd /boot/initramfs-genkernel-x86_64-3.12.13-gentoo
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*Tim 5

好的,问题已根据 Gentoo 论坛中给出的建议解决。该建议是手动制作内核而不是使用 genkernel。这是第一次完美运行。

cd /usr/src/linux
make menuconfig
make && make modules_install
cp arch/x86_64/boot/bzImage /boot
mv /boot/bzImage /boot/whatever_kernel_filename
genkernel --install initramfs
Run Code Online (Sandbox Code Playgroud)

我仍然很困惑为什么带有 --menuconfig 的 genkernel 似乎不像宣传的那样工作。但我怀疑我会再试一次。手动方式并不难。