我正在尝试为 CentOS 5.6 编译并安装内核 3.2.9。我编译了新内核并安装了内核模块:
make && make modules_install
我还创建了新的 initrd 映像:
mkinitrd initrd-3.2.9 3.2.9
我将 kernel-3.2.9、initrd-3.2.9 和 System.map-3.2.9 复制到 /boot 目录并编辑 grub.conf 文件:
title kernel-3.2.9
root (hd0,0)
kernel /kernel-3.2.9 ro root=LABEL=/ rhgb quiet
initrd /initrd-3.2.9
在启动过程中,我遇到内核恐慌并出现以下错误:
could not find filesystem /dev/root
我做错什么了?
答案1
我自己发现了这个问题:我CONFIG_SYSFS_DEPRECATED_V2=y
按照这里描述的方式添加到了.config文件中https://www.centos.org/modules/newbb/viewtopic.php?topic_id=23627&forum=37&post_id=97305#forumpost97305
并解决了这个问题
答案2
安装新内核的更好方法是使用:
$ make install
这将复制所需的文件并编辑你的 grub 配置以便能够启动新内核。
另外,你可能在内核配置过程中犯了一些错误make menuconfig
。你可以查看 下的现有内核配置文件/boot/config-<kernel-version>
。对于简单的解决方案,你可以从与当前配置类似的配置开始,然后进行必要的更改(如果有)。