CentOS新内核编译

我试图为CentOS 5.6编译和安装内核3.2.9。 我编译了新的内核并安装了内核模块:

make && make modules_install 

我也创build了新的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 

我做错了什么?

我自己发现了这个问题:我将CONFIG_SYSFS_DEPRECATED_V2=y添加到.config文件,如https://www.centos.org/modules/newbb/viewtopic.php?topic_id=23627&forum=37&post_id=97305#forumpost97305所述 ,它解决了问题

安装新内核的更好方法是使用:

 $ make install 

这将复制所需的文件,并编辑你的grubconfiguration,以启动新的内核。

另外,你可能在内核configurationmake menuconfig犯了一些错误。 您可以查看/boot/config-<kernel-version>下的现有内核configuration文件。 对于简单的解决scheme,您可以从类似于当前configuration的configuration开始,然后进行必要的更改(如果有的话)。