Linux中怎么实现内核升级操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
1.下载内核
cd /usr/src 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 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
看完上述内容,你们掌握Linux中怎么实现内核升级操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。