iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何轻松升级CentOS内核
  • 538
分享到

如何轻松升级CentOS内核

2023-06-16 20:06:43 538人浏览 八月长安
摘要

如何轻松升级Centos内核,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。因要测试一些软件,需要2.6.30以上的内核,安装好CentOS  5.5,内核是2.6.1

如何轻松升级Centos内核,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

因要测试一些软件,需要2.6.30以上的内核,安装好CentOS  5.5,内核是2.6.18-194.el5.这次的升级还算比较顺利,具体的过程如下:

[root@localhost ~]# uname -r2.6.18-194.el5

1.下载linux-2.6.30内核包到/usr/src目录

cd /usr/srcwget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.gztar -xzvf linux-2.6.30.tar.bz2 -C /usr/srccd linux-2.6.30make mrproper 清除环境变量,即清除配置文件make menuconfig 在菜单模式下选择需要编译的内核模块:

networking support—>networking options—>network packet filtering  framework(netfilter)

(1).core netfilter configuration

A 勾中”Netfilter connection tracking support” -m state相关模块是依赖它的,不选则没有。

B 将netbiOS name service protocal support(new) 编译成模块,不然后面升级iptables后启动时会出错

C 勾中“Netfilter Xtables support (required for ip_tables)”

(2).IP: Netfilter Configuration

A 将 “IPv4 connection tracking support (require for NAT)” 编译成模块。

B 勾中IP tables support (required for filtering/masq/NAT) 。

C 将 “Full NAT” 下的 “MASQUERADE target support” 和 “REDIRECT target support”  编译成模块

(3).其它模块可以根据自己的需要进行选择,若不懂可以参考内核配置手册.

make clean 确保所有东西均保持***状态.

make bzImage 生成内核文件

make modules 编译模块

make modules_install 安装模块

make install 安装

mkinitrd /boot/initrd_2.6.30.img 2.6.30 根据内核版本和指定参数生成映像文件

cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.30

cp /usr/src/linux-2.6.30/System.map /boot/System.map-2.6.30

2.在/etc/grub.conf添加如下2.6.30的信息,并把default=1改为default=0

[root@localhost ~]# cat /etc/grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00# initrd /initrd-version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (2.6.18-194.el5)root (hd0,0)kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quietinitrd /initrd-2.6.18-194.el5.imgtitle CentOS (2.6.30)root (hd0,0)kernel /vmlinuz-2.6.30 ro root=/dev/VolGroup00/LogVol00 rhgb quietinitrd /initrd-2.6.30.img

3.此步若没有操作,重启会报错”insmod: error inserting ‘/lib/dm-region-hash.ko’: –1 File  exits”,原因是重复了,根据网上查到的资料,2.6.x自编译内核会有这个小bug,我测试过不修改直接重启,虽然有报错,但仍然可以进入系统的.

[root@localhost]cp /boot/initrd-2.6.30.img /tmp[root@localhost]cd /tmp/[root@localhost tmp]mkdir newinitrd[root@localhost tmp]cd newinitrd/[root@localhost newinitrd]zcat ../initrd-2.6.30.img |cpio -i[root@localhost newinitrd]vi init 删掉重复的如下两行:echo “Loading dm-region-hash.ko module”insmod /lib/dm-region-hash.ko[root@localhost newinitrd]# find .|cpio -c -o > ../initrd14765 blocks[root@localhost newinitrd]# cd ..[root@localhost tmp]# gzip -9 < initrd > initrd-2.6.30.img[root@localhost tmp]# lsGConfd-root initrd initrd-2.6.30.img mapping-root newinitrd scim-panel-Socket:0-root[root@localhost tmp]# mv /boot/initrd-2.6.30.img /home/[root@localhost tmp]# cp initrd-2.6.30.img /boot/[root@localhost tmp]#reboot

4.重启成功后,再看看内核,是2.6.30,ok了。

[root@localhost ~]# uname -r2.6.30

看完上述内容,你们掌握如何轻松升级CentOS内核的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 如何轻松升级CentOS内核

本文链接: https://www.lsjlt.com/news/285029.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++ 生态系统中流行库和框架的贡献指南
    作为 c++++ 开发人员,通过遵循以下步骤即可为流行库和框架做出贡献:选择一个项目并熟悉其代码库。在 issue 跟踪器中寻找适合初学者的问题。创建一个新分支,实现修复并添加测试。提交...
    99+
    2024-05-15
    框架 c++ 流行库 git
  • C++ 生态系统中流行库和框架的社区支持情况
    c++++生态系统中流行库和框架的社区支持情况:boost:活跃的社区提供广泛的文档、教程和讨论区,确保持续的维护和更新。qt:庞大的社区提供丰富的文档、示例和论坛,积极参与开发和维护。...
    99+
    2024-05-15
    生态系统 社区支持 c++ overflow 标准库
  • c++中if elseif使用规则
    c++ 中 if-else if 语句的使用规则为:语法:if (条件1) { // 执行代码块 1} else if (条件 2) { // 执行代码块 2}// ...else ...
    99+
    2024-05-15
    c++
  • c++中的继承怎么写
    继承是一种允许类从现有类派生并访问其成员的强大机制。在 c++ 中,继承类型包括:单继承:一个子类从一个基类继承。多继承:一个子类从多个基类继承。层次继承:多个子类从同一个基类继承。多层...
    99+
    2024-05-15
    c++
  • c++中如何使用类和对象掌握目标
    在 c++ 中创建类和对象:使用 class 关键字定义类,包含数据成员和方法。使用对象名称和类名称创建对象。访问权限包括:公有、受保护和私有。数据成员是类的变量,每个对象拥有自己的副本...
    99+
    2024-05-15
    c++
  • c++中优先级是什么意思
    c++ 中的优先级规则:优先级高的操作符先执行,相同优先级的从左到右执行,括号可改变执行顺序。操作符优先级表包含从最高到最低的优先级列表,其中赋值运算符具有最低优先级。通过了解优先级,可...
    99+
    2024-05-15
    c++
  • c++中a+是什么意思
    c++ 中的 a+ 运算符表示自增运算符,用于将变量递增 1 并将结果存储在同一变量中。语法为 a++,用法包括循环和计数器。它可与后置递增运算符 ++a 交换使用,后者在表达式求值后递...
    99+
    2024-05-15
    c++
  • c++中a.b什么意思
    c++kquote>“a.b”表示对象“a”的成员“b”,用于访问对象成员,可用“对象名.成员名”的语法。它还可以用于访问嵌套成员,如“对象名.嵌套成员名.成员名”的语法。 c++...
    99+
    2024-05-15
    c++
  • C++ 并发编程库的优缺点
    c++++ 提供了多种并发编程库,满足不同场景下的需求。线程库 (std::thread) 易于使用但开销大;异步库 (std::async) 可异步执行任务,但 api 复杂;协程库 ...
    99+
    2024-05-15
    c++ 并发编程
  • 如何在 Golang 中备份数据库?
    在 golang 中备份数据库对于保护数据至关重要。可以使用标准库中的 database/sql 包,或第三方包如 github.com/go-sql-driver/mysql。具体步骤...
    99+
    2024-05-15
    golang 数据库备份 mysql git 标准库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作