8. 升级内核

在计划于安装有 Promise FastTrack RAID 的 Linux 机器上升级内核之前,请仔细阅读本节。除非您完全不以任何方式使用 Promise FastTrack,否则您需要了解这些信息以避免问题。

在内核升级之前,始终备份您的数据。同时备份/etc/fstab, /etc/lilo.conf, /boot/vmlinuz-currentversion/boot/initrd.img(如果您使用 initrd)。当您升级内核时,请勿删除旧内核或其在/boot中的依赖文件,并且不要删除/etc/lilo.conf中与其对应的行。如果您将内核升级到例如 2.4.19,只需在/etc/lilo.conf中创建另一个内核段。例如,将以下行添加到/etc/lilo.conf:

# Begin Code for booting my brand new kernel: 2.4.19

image=/boot/vmlinuz-2.4.19
	label=linux-new
	read-only
	root=/dev/ataraid/d0p12

# End Code for booting my brand new kernel: 2.4.19

同时,不要更改default=linux行在/etc/lilo.conf中,除非您通过键入linux-newboot提示符下(或在使用curses菜单模式下的 LILO 时高亮显示linux-new在菜单中)成功启动到新内核。

现在让我们讨论以下四种情况下升级内核的实际过程

  1. Promise Technology (ft) 驱动程序,操作系统在 RAID 镜像上

  2. Promise Technology (ft) 驱动程序,非操作系统数据在 RAID 镜像上

  3. Linux 原生 (ataraid) 驱动程序,操作系统在 RAID 镜像上

  4. Linux 原生 (ataraid) 驱动程序,非操作系统数据在 RAID 镜像上

操作系统 (OS) 在这里代表 “Operating System” 或更具体地说是 Red Hat Linux 操作系统。当您将 Linux 安装在镜像分区上,例如/dev/ataraid/d0p1(或/dev/sda1,当使用 Promise Technology 专有驱动程序时),您就被认为操作系统在 RAID 镜像上。如果您的 Linux 机器只有主分区例如//boot在 RAID 上,这也被称为(一种情况)操作系统在 RAID 上。

用户创建的分区,用于利用可用的空闲分区,例如/mydata1, /imp, /scratch不属于 Linux 操作系统的一部分,因为当您安装 Linux 或升级任何标准 Linux 软件包时,Linux 默认不会在其中安装任何文件。此类用户分区中的任何数据都成为用户数据,或者称为非操作系统数据。对于操作系统分区,最好只使用 ext3 和 swap 文件系统。对于非操作系统分区,您可以使用其他文件系统,例如 ext2 和 dos(如果您在同一台 Linux 计算机上还有另一个操作系统(如 Windows),或者如果您只是非常喜欢 dos)。但是,如果您不必使用 ext2 并且可以选择更好的 ext3 用于操作系统或非操作系统分区,那么您为什么要使用 ext2 呢?

8.1. Promise Technology (ft) 驱动程序,操作系统在 RAID 镜像上

目前,Promise Technology 仅支持 Red Hat 7.2 及更早版本。Red Hat 7.2 默认使用内核 2.4.7-10。另请注意,当您使用 Promise 提供的驱动程序安装 Linux 时,您必须在/etc/lilo.conf中使用 initrd.img (Initial RAM disk image)。在安装时,Promise 驱动程序脚本应该自动生成 initrd 文件并配置/etc/lilo.conf为您。不幸的是,这并不能正常工作,您可能需要手动创建 initrd.img 并配置/etc/lilo.conf

您被默认内核 2.4.7-10 卡住了,您不能也不应该通过编译或自动更新程序(如 up2daterpm 实用程序)升级内核。如果您真的非常想升级内核,请这样做,但不要使用 raid。您可以按照第 7.2 节中的说明将Append Line添加到/etc/lilo.conf中,并且不要加载 ataraid 模块(或不要编译内置 ataraid 功能的新内核)。通过这样做,您是将内核升级到新版本,并牺牲了 RAID 功能,因为您将 Promise Technology 卡用作简单的 IDE 扩展卡。

如果 Promise Technology 在未来发布其ft驱动程序的新版本以支持 2.4.19,您可以先将内核升级到 2.4.19(使用 up2daterpm 但不是手动编译),并将他们的新版本ft.o文件放在/lib/modules/kernel-2.4.19中。您还需要将initrd-2.4.19放在/boot中,并将initrd=行追加到/etc/lilo.conf中的新内核段。如果您的 Linux 机器使用 Promise Technology 驱动程序,您的操作系统在 RAID 镜像上,并且 Promise Technology 没有为新的内核版本发布任何新版本,请不要乱动您当前的内核。如果您乱动,请记住,您可能会严重损坏您的计算机,并且无法启动或检索您的数据。

8.2. Promise Technology (ft) 驱动程序,非操作系统数据在 RAID 镜像上

前一种情况(Promise Technology (ft) 驱动程序,操作系统在 RAID 镜像上)中的几乎所有解释也适用于这种情况,当然,现在您冒的是非操作系统数据而不是操作系统的风险。这意味着,如果您的升级失败,您将能够启动,但无法看到 RAID 分区中的数据。此外,您可以灵活地加载和卸载 Promise 专有驱动程序 (ft.o)。但是,这不能保证顺利工作,因为 Promise Technology 驱动程序有很多问题。

除非 Promise Technology 发布适用于新内核版本的驱动程序,否则请勿尝试以任何方法升级内核。您被 2.4.7-10 内核卡住了。在某些情况下,您可能需要添加第 7.2 节中讨论的Append Line来启动您的计算机。

8.3. Linux 原生 (ataraid) 驱动程序,操作系统在 RAID 镜像上

您可以通过重新编译内核来升级内核到任何高于 2.4.18 的版本,而不是通过任何自动升级方法,例如 up2daterpm 实用程序。您需要先前内核源代码目录中的 .config 文件 (/usr/src/linux-2.4.18/.config)。您保存了您的 2.4.18 .config 文件,对吗?

复制.config/usr/src/linux-2.4.19目录后,您可以通过键入 make menuconfig 进行更改,但通常您不需要进行更改,因为您仅升级到 2.4.19 并且您的机器硬件没有更改。但是,如果您确实通过键入 make menuconfig 进行更改,请记住保存并备份您修改后的 .config 文件。将 .config 文件安全地保存在 /root 或软盘上。以下是步骤

8.4. Linux 原生 (ataraid) 驱动程序,非操作系统数据在 RAID 镜像上

在这种情况下升级内核,请按照上一节(Linux 原生 (ataraid) 驱动程序,操作系统在 RAID 镜像上)中解释的相同步骤操作。如果您遇到问题,您可能需要将额外的行,Append Line,添加到您的 /etc/lilo.conf 中。要了解您的 Append Line 是什么,请参阅第 7.2 节

与前一种情况类似,不要尝试通过任何自动方法(up2daterpm 实用程序)升级内核。手动编译并安装您的新内核,如上一节所述。