redhat9内核升级

1.下载内核文件
先到http://www.kernel.org/下载个内核文件,我下载的版本是2.4.27
将内核源码包linux-2.4.27.tar.bz2 copy至/usr/src目录下:
#cp linux-2.4.27.tar.bz2 /usr/src
#cd /usr/src

2.删除旧文件
删除链接和文件目录:
# rm -f /usr/src/linux-2.4
# rm -rf /usr/src/linux-2.4.20-8

3.用以下命令解开压缩包
# bzip2 -d linux-2.4.27.tar.bz2
# tar -xvf linux-2.4.27.tar

在/usr/src目录中建立快捷方式:
#ln -s linux-2.4.27 linux

4.删除/usr/include下的asm、linux、scsi目录(如果有的话)。
# cd /usr/include/
# rm -rf asm linux scsi

在/usr/include下建立指向真正的asm、linux、scsi目录
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi

5.进入到以后编译时用的工作目录下:
#cd /usr/src/linux-2.4.27

#make mrproper
该命令保证源代码目录下没有不正确的.o文件(即object文件,编译c语言时生成的,目的是下一步编译成可执行码时link之用)以及文件的相互
倚赖关系.第一次编译刚下载的源码包不用此命令,但如果多次使用这些源码编译内核,那么一定要先运行本命令.

6.配置内核
一般使用命令#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
选择相应的配置时,有三种选择,它们分别代表的含义如下:
  Y--将该功能编译进内核
  N--不将该功能编译进内核
  M--将该功能编译成可以在需要时动态插入到内核中的模块

配置时有几个选项强烈推荐选择在内:
(1) Loadable module support这个其实也是默认选中的
(2)和SCSI support  ---> SCSI low-level drivers ---> <*> BusLogic SCSI support,如果不选的话可能会出现错误。
这个步骤完成之后,系统会提醒您,next step you should run "make dep"

7.建立编译时所需的从属文件,生成依赖关系,确保关键文件在正确的位置
# make dep
读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要。
2.5.*-2.6.0都不需要了。其实2.4.*某些内核也不需要了。

8.确保所有有关文件都处于最新版本状态
# make clean
清除所有已存在的目标文件,如果忘记做这一步,生成的内核将会非常庞大,如果不删除,在以后的编译过程中也很容易出错。

9.真正的编译内核
# make bzImage

10.编译选择的模块
# make modules
部署模块
# make modules_install

11.更新bzImage
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.27
更新System.map
# cp /usr/src/linux/System.map /boot/System.map-2.4.27

12.建立新链接
进入启动目录下,将目录下的链接文件vmlinuz及System.map指向新的内核:
# cd /boot
#rm -f System.map vmlinuz
#ln -s vmlinuz-2.4.27 vmlinuz
#ln -s System.map-2.4.27 System.map

13.生成新的启动目录:
在/boot下生成 initrd img文件:
# cd /boot
# mkinitrd initrd-2.4.27.img 2.4.27
注意这里可能会出现一个叫做“No module BusLogic found”的错误,解决方法是在如上操作之前执行:
# cp /usr/src/linux-2.4.27/drivers/scsi/BusLogic.o /lib/modules/2.4.27/kernel/drivers/scsi
这里如果没有scsi文件夹就手动建立

14.GRUB的配置
打开/etc/grub.conf,加入以下内容:
title Red Hat Linux (2.4.27)
 root (hd0,0)
 kernel /vmlinuz-2.4.27 ro root=/dev/sda2
 initrd /inintrd-2.4.27.img
title指示开机时grub中显示的选项,root指代根文件系统所在设备,可以使用命令df查看,这里是/dev/sda2 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 内核升级可以通过不同的方式进行。一种方法是从 kernel.org 下载并编译安装官方内核,这是获取官方支持的内核版本的一种方式。然而,大多数 Linux 发行版提供了自己维护的内核,可以通过包管理系统(如 yum 或 rpm)进行升级。这些发行版提供的内核可能与官方内核版本有所不同,并且升级过程可能更加简单可靠,但可选择的内核版本相对较少。 在使用 Docker 时,通常要求使用的 Linux 内核版本至少是 3.10,因此在 CentOS 7.2 版本上可以满足这个要求。然而,有一些功能可能在这个版本上无法实现,因此您可能需要升级内核到更高的版本。目前 Linux 内核的最新版本是 4.X,您可以在 Linux 内核官网上查看当前版本并选择使用最新版本内核。为了使用最新版本内核,您可以在安装 CentOS 7 后对内核进行升级。 需要注意的是,Linux 只表示内核,而各大 Linux 发行版(如 RedHat、Ubuntu、CentOS 等)会在内核基础上集成其他一系列软件,并按照各自的版本规则发布。例如,在 CentOS 7.2 中,通过运行 uname -r 命令可以查看到内核版本为 3.10.0-514.26.2.el7.x86_64,表示对应的 Linux 内核版本是 3.10。 如果您想要区分您正在使用的是官方内核还是 Linux 发行版提供的内核,可以使用 uname -r 命令来检查。如果横线后面有任何东西,那么表示这不是官方内核。例如,运行 uname -r 命令返回的结果是 3.10.0-514.26.2.el7.x86_64,这意味着您使用的是 Linux 发行版提供的内核。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值