科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道Linux内核升级&补丁安装手册

Linux内核升级&补丁安装手册

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

关于内核的升级和补丁过程我这两周来就总结这点经验,对于一个老手来说或许是很简单的一件事情,但是对于初学者应该会提供一些帮助吧,当然这里的补丁不一定是squashfs了,也可以是iptables等等。

作者:巧巧读书 来源:巧巧读书 2008年6月26日

关键字: Linux 补丁 补丁管理 漏洞 漏洞管理

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

  第一步:Linux2.4.18升级到2.4.31

  首先说明下我的环境:

  三台装有RedHat8(2.4.18-14)的主机。初步的任务就是升级内核到2.4.31然后再安装补丁Squashfs。

  下载升级需要的源代码linux-2.4.31.tar.gz拷贝到/usr/src下

  CODE:

  #cd /usr/src/

  #tar -zxvf linux-2.4.31.tar.gz

  如果你安装了2.4.18-14的源代码的话,/usr/src下可能有个链接指向2.4.18的源码.在2.4中这个链接名叫linux2.4,首先将它删除,重新建立一个链接指向2.4.31的源码,取名为linux2.4或者linux都行,我选择后者。

  CODE:

  #ln -s linux-2.4.31 linux

  #cd linux

  由于是对内核编译是新手,所以如果直接去选择内核配置一定会是件很头疼的事情,当然对于老手来说可能是一种乐趣。 我还是参考一下系统现成的配置为好,然后再从中修改。

  CODE:

  cp /boot/config-2.4.18-14 ./.config

  make menuconfig

  在这里我们对原来的配置不做太多改动,只是根据自己的需要进行一些修改。(我这里的选择都是根据上面要求选择的)

  首先,处理器选项,选择P4(Y不是M)

  而且是SMP的(Y不是M)

  还需要把loopback块设备编译进内核(因为squashfs要用到的),在“Block devices --->”中选择“ <*> Loopback device support ”(Y)。

  对了,一定要记住为你的网卡选择驱动,以我的机子为例,在“Network device support ---> ”中选择“Ethernet (1000 Mbit) ---> ”子菜单进入后,选择“ <*> Intel(R) PRO/1000 Gigabit Ethernet support ”这一项(Y)

  好了,下来就可以退出了,一路exit最后可以看到一个启动项已经生成了选择保存配置文件的修改。
  建立依赖关系

  CODE:

  #make dep

  #make clean

  #make bzImage[大概花费了5分钟时间]

  完成时提示

  CODE:

  Root device is (22, 2)

  Boot sector 512 bytes.

  Setup is 4784 bytes.

  System is 1010 kB

  warning: kernel is too big for standalone boot from floppy

  make[1]: Leaving directory `/usr/src/linux-2.4.31/arch/i386/boot'

  我想这可能是没有对内核进行裁剪的结果吧,引起内核太大,不过不必理会这个警告,我又不用软盘去启动^_^

  接着编译模块

  CODE:

  #make modules

  安装模块

  CODE:

  #make modules_install

  报错

  CODE:

  depmod: *** Unresolved symbols in /lib/modules/2.4.31/kernel/crypto/autoload.o

  depmod: crypto_alg_lookup

  depmod: *** Unresolved symbols in /lib/modules/2.4.31/kernel/crypto/proc.o

  depmod: crypto_alg_sem

  depmod: crypto_alg_list

  将这些忽略掉,因为这些不会影响到内核的升级。如果你要去除这些错误,就从make menuconfig再来一次吧,重新进行内核配置。

  下来,更新sytem.map文件和vmlinuz文件

  CODE:

  [root@localhost linux]# cp System.map /boot/System.map-2.4.31

  [root@localhost linux]# cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.31

  重新建立文件链接

  CODE:

  [root@localhost linux]# cd /boot/

  [root@localhost boot]# rm -fr System.map

  [root@localhost boot]# rm -fr vmlinuz

  [root@localhost boot]# ln -s System.map-2.4.31 System.map

  [root@localhost boot]# ln -s vmlinuz-2.4.31 vmlinuz

  看一下链接是否正确:

  CODE:

  [root@localhost boot]# ll

  我们看到输出中包含两行:

  CODE:

  System.map -> System.map-2.4.31

  vmlinuz -> vmlinuz-2.4.31

  接着安装内核:

  CODE:

  [root@localhost boot]# cd /usr/src/linux

  [root@localhost linux]# new-kernel-pkg --install --depmod --mkinitrd 2.4.31

  由于添加了install选项和depmod选项,所以会出现跟make modules_install时出现一样的错误:

  CODE:

  depmod: *** Unresolved symbols in /lib/modules/2.4.31/kernel/crypto/autoload.o

  depmod: crypto_alg_lookup

  depmod: *** Unresolved symbols in /lib/modules/2.4.31/kernel/crypto/proc.o

  depmod: crypto_alg_sem

  depmod: crypto_alg_list

  依旧忽略。

  最后去/boot下检查下,并修改一下启动时的分区设置。

  CODE:

  [root@localhost linux]# cd /boot/

  [root@localhost boot]# vi grub/grub.conf

  可以看到一个启动项已经生成了

  修改
  root = LABEL=/
  为
  root = /dev/hdc2
  也就是根目录/所在的分区

要获知根目录所在分区,通过命令

  df –h 查看

  CODE:

  df -h

  Filesystem Size Used Avail Use% Mounted on

  /dev/hdc2 19G 2.4G 15G 13% /

  /dev/hdc1 99M 13M 81M 14% /boot

  /dev/hdc5 49G 33M 46G 1% /data

  none 247M 0 247M 0% /dev/shm

  我们得知是/dev/hdc2.

  对了,如果要默认启动新的内核或者你是远程操作的话,需要将新的内核设置为默认启动项,将

  /boot/grub/grub.conf

  中的

  CODE:

  default=1

  改为

  CODE:

  default=0

  确认没有其它问题时,我们就可以reboot试试了。

  机器启动正常後,进行查看,看是否符合我们的要求:

  CODE:

  #uname -a

  Linux localhost.localdomain 2.4.31 #1 SMP Tue Jul 10 09:26:01 CST 2007 i686 i686 i386 GNU/Linux

  看到内核版本信息已经改变了,而且是SMP的。

  查看LOOPBACK是否已经被编译进内核,我们知道loopback是一个块设备,所以去/proc下找找看。

  CODE:

  [root@localhost root]# cat /proc/devices

  Character devices:

  1 mem

  2 pty

  ...................

  Block devices:

  1 ramdisk

  7 loop

  9 md

  22 ide1

  找到了loop了, 继续下一步工作。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章