欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

详解对Linux内核进行升级的步骤

程序员文章站 2022-03-29 10:14:38
这篇文章主要介绍了详解对Linux内核进行升级的步骤,命令行中的操作方法被简要地列出,需要的朋友可以参考下... 15-07-03...

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

1.下载内核


复制代码
代码如下:
cd /usr/src</p> <p>wget linux/kernel/v2.6/linux-2.6.38.tar.gz">http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.gz</p> <p>tar zxvf linux-2.6.38.tar.gz</p> <p>cd linux-2.6.38

2.下载热点内核标准配置文件


复制代码
代码如下:
wget http://vbets.googlecode.com/files/config</p> <p>mv config .config

3.编译内核


复制代码
代码如下:
make menuconfig

选中load an alternate configuration file ,然后选择刚下载的。config

另外,要特别选中:

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


复制代码
代码如下:
general setup –></p> <p>[*] 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</p> <p>make modules</p> <p>make modules_install</p> <p>make install

4.解压修改内核


复制代码
代码如下:
cp /boot/initrd-2.6.38.img /tmp</p> <p>cd /tmp/</p> <p>mkdir newinitrd</p> <p>cd newinitrd/

zcat /initrd-2.6.38.img |cpio -i

rm -rf /tmp/initrd-2.6.38.img

vi init[/code]

找到这2行一样的,去掉1行


复制代码
代码如下:
echo "loading dm-region-hash.ko module"</p> <p>insmod /lib/dm-region-hash.ko</p> <p>echo "loading dm-region-hash.ko module"</p> <p>insmod /lib/dm-region-hash.ko

这主要是解决:"insmod: error inserting '/lib/dm-region-hash.ko': -1 file exists"这样的错误

5.从新打包内核


复制代码
代码如下:
find .|cpio -c -o > /initrd</p> <p>cd /</p> <p>gzip -9 < initrd > initrd-2.6.38img</p> <p>rm -rf /boot/initrd-2.6.38.img</p> <p>cp initrd-2.6.38.img /boot</p> <p>rm -rf /cd /usr/src/linux-2.6.38.tar.gz</p> <p>rm -rf /cd /usr/src/linux-2.6.38

6.设置从新内核启动


复制代码
代码如下:
vi /boot/grub/grub.conf

把default=1改为default=0

7.重新启动系统


复制代码
代码如下:
reboot