我需要 btrfs 文件系统支持。我按照 wiki 文章重建了内核,添加了 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
/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
我缺少什么?
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
}
答案1
好的,根据 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
我仍然很困惑为什么 genkernel 与 --menuconfig 似乎不像广告中那样工作。但我怀疑我是否会再次尝试。手动方式并不难。