7.10. 安装新的内核

  1. 复制文件/usr/src/linux/arch/i386/boot/bzImage从内核源代码树到/boot目录,并为其指定适当的新名称。
                 [root@deep ] /linux#cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-kernel.version.number
                 
    一个适当或推荐的新名称类似于 vmlinuz-2.2.14。如果您想使用 `mkbootdisk` 程序制作新的救援软盘或紧急启动软盘,这一点非常重要。该程序有特定需求,例如需要 `vmlinuz-2.2.14` 而不是 `vmlinuz-2.2.14.a`。

  2. 复制文件/usr/src/linux/System.map从内核源代码树到/boot目录,并为其指定适当的新名称。
                 [root@deep ] /linux#cp /usr/src/linux/System.map /boot/System.map-kernel.version.number
                 

  3. 移动到/boot目录并重建链接到vmlinuzSystem.map使用以下命令
                 [root@deep ] /linux#cd /boot
                 [root@deep ] /boot#ln -fs vmlinuz-kernel.version.number vmlinuz
                 [root@deep ] /boot#ln -fs System.map-kernel.version.number System.map
                 
    我们必须重建vmlinuzSystem.map的链接,以使其指向新安装的内核版本。如果没有新的链接,LILO 程序将默认查找旧版本的 Linux 内核。

  4. 删除/boot目录下的过时和不必要的文件以腾出空间
                 [root@deep ] /boot#rm -f  module-info
                 [root@deep ] /boot#rm -f  initrd-2.2.xx.img
                 
    指向module-info链接指向原始内核的旧模块目录。由于我们已经安装了一个全新的内核,因此我们不需要保留这个断开的链接。initrd-2.2.xx是一个文件,其中包含一个初始 RAM 磁盘映像,在磁盘可用之前充当系统。仅当您的系统存在 SCSI 适配器时,此文件才可用并从 Linux 安装程序安装。如果我们使用并拥有 SCSI 系统,驱动程序现在将被合并到我们的新 Linux 内核中,因为我们已经构建了一个单内核,因此我们可以安全地删除此文件initrd-2.2.xx.img

  5. 创建一个新的 Linux 内核目录,该目录将处理与 Linux 内核相关的所有头文件,以供将来在您的系统上编译其他程序。回想一下,我们在/usr/include 目录/usr/include下创建了两个符号链接,指向 Linux 内核,以便能够编译它而不会收到错误,并且还能够编译未来的程序。
                  [root@deep] /#mkdir -p  /usr/src/linux-2.2.14/include
                  [root@deep] /#cp -r  /usr/src/linux/include/asm-generic /usr/src/linux-2.2.14/include
                  [root@deep] /#cp -r  /usr/src/linux/include/asm-i386 /usr/src/linux-2.2.14/include
                  [root@deep] /#cp -r  /usr/src/linux/include/linux /usr/src/linux-2.2.14/include
                  [root@deep] /#cp -r  /usr/src/linux/include/net /usr/src/linux-2.2.14/include
                  [root@deep] /#cp -r  /usr/src/linux/include/video /usr/src/linux-2.2.14/include
                  [root@deep] /#cp -r  /usr/src/linux/include/scsi /usr/src/linux-2.2.14/include
                  [root@deep] /#rm -rf  /usr/src/linux
                  [root@deep] /#cd /usr/src
                  [root@deep ] /src#ln -s  /usr/src/linux-2.2.14 linux             
                 
    目录是 Linux 系统的所有头文件所在的位置,供您在编译和安装新程序时参考和依赖。asm 和 linux 链接在程序需要知道一些特定于系统上安装的内核的编译时函数时使用。程序在需要知道系统的特定信息、依赖关系、linux-2.2.14的新目录,基于我们已安装的内核版本,以便于解释。然后,我们将目录 asm-generic、asm-i386、linux、net、video 和 scsi 从/usr/linux/include复制到我们的新位置/usr/src/linux-2.2.14/include之后,我们删除编译新内核的整个源代码目录,创建一个名为linux/usr/linux/include的新符号链接,该链接位于

    /usr/src

  6. 下,指向我们的新目录。通过这些步骤,将来编译的程序将知道在哪里查找与服务器上内核相关的头文件。Note: 此步骤将使我们能够节省硬盘驱动器上的空间,并降低安全风险。Linux 内核源代码目录处理大量文件,解压缩后大约为 75 MB。通过上述过程,我们的 Linux 内核目录开始时大小约为 3 MB,因此我们为相同的功能节省了 72 MB。

    1. 最后,您需要编辑/etc/lilo.conf文件,使您的新内核成为启动时选项之一目录。通过这些步骤,将来编译的程序将知道在哪里查找与服务器上内核相关的头文件。编辑lilo.conf.
                   [root@deep] /#vi /etc/lilo.conf
                   


                     文件 - vi
                   

      并在读取的行上进行适当的更改image=/boot/boot=/dev/sda map=/boot/map install=/boot/boot.b prompt timeout=00 restricted password=somepasswd image=/boot/vmlinuz-kernel.version.number #在此处添加您的新内核名称文件。 label=linux root=/dev/sda6 read-only/etc/lilo.confImportant: 不要忘记删除读取的行

    2. initrd=/boot/initrd-2.2.12-20.img/etc/lilo.conf/etc/lilo.conf文件中,因为现在单内核不需要 initrd 文件,所以此行不是必需的。
                   [root@deep] /#/sbin/lilo -v
                   


                     一旦新内核版本的名称放入
                   

      文件中,如上所示,我们更新我们的文件,以使更改生效,使用以下命令LILO 版本 21,[版权所有 1992-1998 Werner Almesberger 从 /dev/sda 读取引导扇区 与 /boot/boot.b 合并 引导映像:/boot/vmlinuz-2.2.14 添加 linux * /boot/boot.0800 退出,未制作备份副本。正在写入引导扇区。Important: 如果您在内核配置期间对配置选项 Unix98 PTY 支持CONFIG_UNIX98_PTYS
                   none		/dev/pts		devpts		gid=5,mode=620	0 0