您的当前位置:首页Linux内核升级方法

Linux内核升级方法

2020-11-01 来源:乌哈旅游
http://www.opsers.org/linux-home/base/linux-kernel-upgrade-steps-and-problem-solving-methods.html

Linux内核升级步骤及问题解决方法

发表于224 天前 ⁄ Linux基础 ⁄ 评论数 4 ⁄ 被围观 1,985 views+

Linux的内核是系统的核心,所以升级内核是Linux系统管理员的一项基本技能,所以我就分享了系统运维实务上的一篇文章,当然我对源文件稍做了一些内容的增加,就是把遇到的问题及解决方案也加上了,希望对各位Linux系统管理员有所帮助!

1.下载内核

cd /usr/src wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.gz tar zxvf linux-2.6.38.tar.gz cd linux-2.6.38 2.下载热点内核标准配置文件

wget http://vbets.googlecode.com/files/config mv config .config 3.编译内核

make menuconfig 选中Load an Alternate Configuration File ,然后选择刚下载的.config

另外,要特别选中:

1)、通过make menuconfig选中以下对应的选项

General setup –> [*] enable deprecated sysfs features to support old userspace tools 2)、修改.config文件

修改.config文件中CONFIG_SYSFS_DEPRECATED_V2,将原本被注释掉的

CONFIG_SYSFS_DEPRECATED_V2 改成CONFIG_SYSFS_DEPRECATED_V2=y

注 : 修改这项是因为旧版的mkinitrd及其nash在内核没有

CONFIG_SYSFS_DEPRECATED_V2参数时默认使用旧版sysfs路径格式,从而在新内核下无法正确访问/sys内的硬盘信息节点。

主要是解决“mount:could not find filesystem ‘/dev/root’”这样的错误

make bzImage make modules make modules_install make install 4.解压修改内核

cp /boot/initrd-2.6.38.img /tmp cd /tmp/ mkdir newinitrd cd newinitrd/ zcat ../initrd-2.6.38.img |cpio -i rm -rf /tmp/initrd-2.6.38.img vi init 找到这2行一样的,去掉1行

echo “Loading dm-region-hash.ko module” insmod /lib/dm-region-hash.ko echo “Loading dm-region-hash.ko module” insmod /lib/dm-region-hash.ko 这主要是解决:“insmod: error inserting ’/lib/dm-region-hash.ko’ : -1 File exists”这样的错误

5.从新打包内核

find .|cpio -c -o > ../initrd cd ../ gzip -9 < initrd > initrd-2.6.38img rm -rf /boot/initrd-2.6.38.img cp initrd-2.6.38.img /boot rm -rf /cd /usr/src/linux-2.6.38.tar.gz rm -rf /cd /usr/src/linux-2.6.38 6.设置从新内核启动

vi /boot/grub/grub.conf 把default=1改为default=0

7.重新启动系统

reboot

因篇幅问题不能全部显示,请点此查看更多更全内容