升级 Linux 内核
随着 Linux 1.2.x 的发布,新闻组中出现了许多关于如何将稳定的 1.0.x 系统升级到稳定的 1.2.x 系统的问题。幸运的是,这相对容易且无痛。
您应该注意的一件事是,您应该升级到 1.2.1 内核,特别是如果您正在使用防火墙软件。1.2.0 版本在这方面有些问题。
您应该意识到的第一件事是 1.2.x 内核需要一个新的程序,bdflush。该程序在 1.1.x 系列早期出现,并取代了 update,实现了一种比旧样式更高效的磁盘缓存样式。没有这个程序,您的磁盘缓存将无法正常工作,并且您会收到警告:“Warning - bdflush not running”。
网络工具也应该升级。新版本已经升级以支持内核网络代码的改进。请注意,正常的网络程序不需要升级;只有少数特殊程序,包含在一个工具包中,会受到更改的影响。
我构建了一个包含所有这些程序的软件包。它被称为 “The Linux Upgrade 1.2”,在一个名为 linuxupgr-1.2.tar.gz 的文件中。它可以在 sunsite.unc.edu 及其镜像站点的 /pub/Linux/system/ 中找到,也可以在 tsx-11.mit.edu 及其镜像站点的 /pub/linux/binaries/sbin/ 中找到。下载此软件包以及 1.2.1 版本的内核,它应该在附近的文件 linux-1.2.1.tar.gz 中可用。Sunsite 及其镜像站点在 /pub/Linux/kernel/v1.2/ 中有内核,而 tsx-11 及其镜像站点在 /pub/linux/sources/system/v1.2/ 中有内核。
备份所有内容!备份您的系统,以防沿途出现任何问题。万一出现任何问题,您始终可以返回到稳定的系统。至少备份您的数据文件。
记录关于您的系统的笔记。您拥有的文件系统类型、额外的卡、声卡信息等等。
从现在开始,您应该是 root 用户,并且只有少数用户登录。
将 linux 内核 tar 文件移动到 /usr/src 目录。mv linux-1.2.1.tar.gz /usr/src
通过将其目录树移动到另一个名称的目录来备份旧内核。例如,如果旧内核是 1.0.9 内核,您可以(在 /usr/src 目录中)执行 mv linux linux-1.0.9。这样,您仍然可以使用旧的 1.0.9 内核的源代码。
通过运行 tar xzvf linux-1.2.1.tar.gz 解压缩和解包内核文件。您应该看到屏幕上发送的文件列表。它们都应该以 “linux/” 开头。
更改到 linux 目录并运行 make config。您将看到一些选项,您将需要从步骤 2 中收集的信息。在许多情况下,您可以采用默认设置,除非您有专门的系统。《Linux Journal》第 7 期有一篇文章 “Linux Performance Tuning for the Faint of Heart”,其中专门介绍了如何编译新内核。
该文章中未涵盖的一个具体项目是 Linux 1.2 中的新 IDE 驱动程序。在 Linux 内核源代码中,有一个文件 drivers/block/README.ide,如果您有大型 IDE 驱动器、多个 IDE 控制器或 ATAPI IDE CD-ROM 驱动器,您应该阅读该文件。几乎每个人都会希望用 yes 回答 “Use new IDE driver for primary/secondary [interface]”。不这样做的唯一原因是如果您使用 MFM 或 RLL 驱动器,因为新的 IDE 驱动程序仅支持 IDE 驱动器。
配置准备就绪后,创建 gcc 正确构建内核所需的依赖项。运行 make dep。
此时,如果您正在使用 lilo,您可以运行 make zlilo,makefile 将自动开始构建内核并将新内核安装到 LILO 中。如果您从软盘驱动器启动,您可以只运行 make zdisk,并将空白格式化的 1.4(或 1.2)MB 磁盘放入驱动器,makefile 将构建内核并将其安装到您的软盘上。
注意:我的首选是首先安装到软盘,然后从软盘启动。如果没有问题,那么我再回去运行 make zlilo。另一种选择是将当前的 Linux 内核复制到另一个文件名(例如 vmlinuz1.0.9),并为该文件创建一个新的 LILO 条目。如果您使用第一个内核重新启动并遇到问题,您可以再次重新启动,进入 LILO,然后启动旧内核。如果您对使用 LILO 感到舒适,这可能对您来说更容易。
您还需要告诉内核文件以只读方式挂载根设备,以便它可以在必要时运行 fsck。如果您正在使用软盘,请运行 rdev -R /dev/fd0 1。如果您正在使用 LILO,请运行 rdev -R /vmlinuz 1。这里使用大写 R 很重要。如果您正在使用 LILO,另一种选择是为引导镜像使用 read-only 选项。这在优秀的 LILO 文档中有所介绍。
内核构建完成后,安装 Linux 升级包。从 /usr/src 运行 tar xzvf linuxupgr-1.2.tar.gz。这将创建一个名为 upgrade 的目录,其中包含 bdflush 和其他各种文件。阅读 README 文件以获取有关安装升级文件的说明。
重新启动机器。如果您正确地完成了所有操作,您应该会成功运行 1.2.1 内核。如果您确实遇到问题并且您正在使用软盘,您可以从驱动器中弹出软盘并使用旧内核重新启动。
此时您可能还想升级其他一些软件包。其中包括 gcc、库和 X Window 系统。但是,旧版本将与较新的内核一起工作,并且升级对于运行 Linux 1.2.1 不是必需的。
如果您对此文章有任何评论或对未来文章的建议,请发送电子邮件至 komarimf@craft.camp.clarkson.edu
Mark Komarinski 毕业于克拉克森大学(位于非常寒冷的纽约州波茨坦),获得计算机科学和技术传播学位。他现在住在纽约州特洛伊市,将大部分空闲时间花在为退伍军人事务部担任程序员。