本文简要地介绍了使用 Red Hat LINUX 的 kickstart 及网络安装功能方便快捷地升级己有 LINUX 系统,文中的例子是从 Red Hat 7.2 远程升级到 Red Hat 9.0。
自从 5.2 版开始, Red Hat LINUX 便 增加了一个称为 kickstart 的功能,其主要是为了减少安装过程中需要交互式 (interactive)的系统参数输入,提高安装效率。将其运用于自动安装 LINUX,特别是需要在短时间迅速安装至成百台 LINUX 工作站这种特殊场合尤为适用,Stanford University 的 Menlo Park 已经有精彩的文章介绍,在此不再累述[1]。
1.升级前系统检查
在开始升级系统之前,有一些容易忽视的问题容易中断 kickstart 过程,这些问题一般是系统配置达不到安装最低要求,所以最好能在自动升级之前有实验条件先进行充分的测试再实施。 Red Hat LINUX 系统发展至今,已经不是低得 386 都可以跑得很流畅的了(Red Hat 9 已经不能在 586 以下的机器上运行),所以在升级之前有必要对系统进行充分的检查,主要包括以下方面:
存储空间是否足够。Red Hat 9 最少需要 32M 的内存和 472M 的硬盘,内存一般是不会成问题的,但是我未能在一个 500M 硬盘上装好系统,当然现在大家的硬盘一般还是比较大,都可以进行完全安装了。LINUX 的系统文件主要集中于 /usr 下,/ 下面也有一部分,一般不安装 X 系统和大型软件的情况下,/usr 使用 1G 空间、/ 使用 500M 空间都可以工作得很好了。我的系统从 7.2 升级到 9.0 系统,/usr 和 / 的使用情况大约较升级前增加了 30% 的样子,所以如果大家的 /usr 和/使用率不是太高的话,磁盘空间 的限制一般是不会有什么问题的。
交换分区空间是否足够。Red Hat 9 与 7.2 的一个不易发现的区别便在此,7.2 系统是可以使用少于两倍物理内存容量的交换分区,两倍或者多于两倍物理内存的交换分区只是建议大小;而 Red Hat 9 则必须使用两倍或者多于两倍物理内存大小的交换分区,所以如果你的LINUX系统只有少于两倍的交换分区,那就只有再划分一个交换分区或者增加一个交换文件,或者拨下你的内存让系统交换分区大于两倍物理内存,我建议使用加一个交换分区的办法,增加交换文件还无法在 kickstart 中实现,至于拨下内存,远程升级就根本没有办法拨下内存了。
其他杂项。系统在自动升级过程中会检测一系列的硬件,如果选择图形界面安装,但是没有鼠标,系统则会提示使用文本方式安装;或者只有 32M 内存则系统也不能进行图形界面安装,这些都可以在自动安装配置文件里进行修改以避免其发生,但是记下系统的所有硬件配置制成一个清单会对制作自动配置文件有较大的帮助。
2.如何启动安装程序
首先从 Red Hat LINUX 的启动安装程序开始。从 Red Hat LINUX 的官方安装装手册上我们可以看到主要的几种启动方式:CDROM、软驱及从 dos 环境运行光碟上的 dosutils\\autoboot.bat 文件三种方式,对于我们来说这还是不够的,我们的 LINUX 工作站是没有软驱和光驱的,当然更加不会有 dos。通过分析各发行版第一张光盘的 /images目录下的 boot*.img 文件我们发现,这些启动镜像文件其实只有两个主要的文件:vmlinuz 内核和 initrd.img,initrd.img是一个压缩的最小文件系统[2]。将这两个文件提取到己有的 LINUX 系统 /boot 目录下,在系统的 bootloader(一般是 LILO 或者 GRUB)配置文件中加入相应的配置行即可启动安装程序。以 Red Hat 7.2 和 GRUB 为例(使用 Red Hat 8.0 的网络启动镜像文件):
[root@client mnt]# mount -o loop -o ro /mnt/nfs/psyche/cd1/images/bootnet.img bootnet
[root@client mnt]# cd bootnet/
[root@client bootnet]# ls
boot.msg initrd.img options.msg rescue.msg splash.lss syslinux.png
general.msg ldlinux.sys param.msg snake.msg syslinux.cfg vmlinuz
[root@client bootnet]# cp vmlinuz /boot/vmlinuz8
[root@client bootnet]# cp initrd.img /boot/initrd8
[root@client bootnet]# vi /boot/grub/menu.lst
添加如下三行:
title Upgrade to Psyche via NFS
kernel /boot/vmlinuz8 ro
initrd /boot/initrd8
注意:以上是没有 /boot 分区的配置,有 /boot 分区则不需要前面的 /boot,见 GRUB 配置文件中 NOTICE 部分。
重新启动后即可选择网络升级,和用 bootnet 软盘引导系统的效果是一样的。在这里我们将使用 Red Hat 9 的另外一个启动文件,这也是最近才在 Red Hat 发行版中出现的 boot.iso。将 Red Hat 9 发行版第一张光盘的 ISO 镜像文件装载后,我们发现其下的 images 目录中较 7 系列发行版多了一个 boot.iso 文件(8.0 第一张光碟根目录下也有类似目录),将其装载后发现其中包含一个比较大的内核和 initrd 文件,该initrd 包含了安装系统时常见硬件的驱动,我使用该文件启动时能自动识别出 PM133 主板的显1及比较少见的adaptec ANA-6911TX 网卡(starfire.o),所以强烈e鍪褂?boot.iso 自动升级,可以省却驱动的麻烦。值得一提的是 Red Hat 9 现在已经不在 boot.img 中自带网卡驱动了,而 Red Hat 8 在 bootnet.img 中带了一些常见网卡的驱动的(intel 55X系列、tulip、8139等),大家有兴趣可以参考[2]中提到的方法解压一下 bootnet.img 中的 initrd.img 文件就可以在lib目录中看到这些驱动模块文件了。
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!