运用RedHat的Kickstart升级Linux系统方法

本文简要地介绍了使用 Red Hat Linux的 Kickstart 及网络安装功能方便快捷地升级己有 Linux 系统,文中的例子是从 Red Hat 7.2 远程升级到 Red Hat 9.0。

自从 5.2 版开始, Red Hat Linux 便 增加了一个称为 Kickstart 的功能,其主要是为了减少安装过程中需要jiao互式 (interactive)的系统参数输入,提高安装效率。将其运用于自动安装 Linux,特别是需要在短时间迅速安装至成百台 Linux 工作站这种特殊场合尤为适用,Stanford University 的 Menlo Park 已经有精彩的文章介绍。

1.升级前系统检查

在开始升级系统之前,有一些容易忽视的问题容易中断 Kickstart 过程,这些问题一般是系统配置达不到安装最低要求,所以最好能在自动升级之前有实验条件先进行充分的测试再实施。 Red Hat Linux 系统发展至今,已经不是低得386都可以跑得很流畅的了(Red Hat 9 已经不能在 586 以下的机器上运行),所以在升级之前有必要对系统进行充分的检查,主要包括以下方面:

存储空间是否足够。Red Hat 9 最少需要32MB的内存和472MB的硬盘,内存一般是不会成问题的,但是我未能在一个500MB硬盘上装好系统,当然现在大家的硬盘一般还是比较大,都可以进行完全安装了。Linux 的系统文件主要集中于 /usr 下,/ 下面也有一部分,一般不安装 X 系统和大型软件的情况下,/usr 使用1GB空间、/ 使用500MB空间都可以工作得很好了。我的系统从 7.2 升级到 9.0 系统,/usr 和 / 的使用情况大约较升级前增加了30% 的样子,所以如果大家的 /usr 和/使用率不是太高的话,磁盘空间 的限制一般是不会有什么问题的。

jiao换分区空间是否足够。Red Hat 9 与 7.2 的一个不易发现的区别便在此,7.2 系统是可以使用少于两倍物理内存容量的jiao换分区,两倍或者多于两倍物理内存的jiao换分区只是建议大小;而 Red Hat 9 则必须使用两倍或者多于两倍物理内存大小的jiao换分区,所以如果你的Linux系统只有少于两倍的jiao换分区,那就只有再划分一个jiao换分区或者增加一个jiao换文件,或者拨下你的内存让系统jiao换分区大于两倍物理内存,我建议使用加一个jiao换分区的办法,增加jiao换文件还无法在 Kickstart 中实现,至于拨下内存,远程升级就根本没有办法拨下内存了。

其他杂项,系统在自动升级过程中会检测一系列的硬件,如果选择图形界面安装,但是没有鼠标,系统则会提示使用文本方式安装;或者只有 32MB内存则系统也不能进行图形界面安装,这些都可以在自动安装配置文件里进行修改以避免其发生,但是记下系统的所有硬件配置制成一个清单会对制作自动配置文件有较大的帮助。

2.如何启动安装程序

首先从 Red Hat Linux 的启动安装程序开始。从 Red Hat Linux 的官方安装装手册上我们可以看到主要的几种启动方式:CDROM、软驱及从 dos 环境运行光碟上的 dosutilsautoboot.bat 文件三种方式,对于我们来说这还是不够的,我们的 Linux 工作站是没有软驱和光驱的,当然更加不会有 dos。通过分析各发行版第一张光盘的 /images目录下的 boot*.img 文件我们发现,这些启动镜像文件其实只有两个主要的文件:vmlinuz 内核和 initrd.img,initrd.img是一个压缩的最小文件系统。将这两个文件提取到己有的 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.msgrescue.msgsplash.lsssysLinux.png

general.msgldLinux.sysparam.msgsnake.msgsysLinux.cfgvmlinuz

[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 主板的显卡及比较少见的adaptec ANA-6911TX 网卡(starfire.o),所以强烈推荐使用 boot.iso 自动升级,可以省却驱动的麻烦。值得一提的是 Red Hat 9 现在已经不在 boot.img 中自带网卡驱动了,而 Red Hat 8 在 bootnet.img 中带了一些常见网卡的驱动的(intel 55X系列、tulip、8139等),解压一下 bootnet.img 中的 initrd.img 文件就可以在lib目录中看到这些驱动模块文件了。

3.从哪里安装

升级系统当然需要新系统的发行版源文件,发行版形式可以多样化,即可以是光碟,也可以是光碟镜像文件(ISO格式),同时也可以是光碟文件的拷贝集。在 Red Hat 9 中,可供选择的安装模式有本地 CDROM、本地硬盘、NFS 镜像、FTP、HTTP。从光碟安装具有最好的兼容性和易操作性,适合个人安装,大批量和远程升级则不适用;本地硬盘是一种比较好的'方式,速度快,而且也不需要频繁更换光碟,但是也不适合大批量安装,每台工作站均保存一份发行版镜像拷贝实在是很浪费存储空间,而且要命的是我的那台机器已经没有空间可以放下这么巨大的文件了;NFS 则是一种比较成熟的方式,通过 NFS 方式安装系统只需要将 ISO 格式的光碟镜像文件共享即可,不像 FTP 和 HTTP 方式需要考虑目录树结构,而且 NFS 方式可以选择图形界面安装(FTP 和 HTTP 方式仅能使用文本界面),速度相对 FTP 和 HTTP 方式更快,所以网络安装建议使用 NFS 方式。建立 NFS安装镜像服务器的办法很简单,仅需通过 NFS 将发行版光碟镜像文件共享即可。

[root@server root]$ cat /etc/exports /data/shrike 192.168.0.42/31(ro)

[root@server shrike]# ls

ks.cfgshrike-i386-disc1.isoshrike-i386-disc2.isoshrike-i386-disc3.iso

4.制作 Kickstart

接下来自然就是制作 Kickstart 文件了,Kickstart 技术从最早推出至今已经更新了许多次,配置的语法也是不尽相同,后来的版本也没有做到完全兼容旧有版本语法,不能说这也是一个遗憾,在此我强烈建议使用 Red Hat 9 官方文档来进行 Kickstart 的配置,这样才能做到万无一失。配置文件主要内容如下:

1)ks.cfg 文件位置。很明显安装程序需要读取到 ks 配置文件才能进行自动安装,ks 配置文件可以有以下几种方式读入:启动软盘、启动光盘、硬盘、网络。

软盘读取 ks 配置文件相对较简单,将 ks.cfg 置于软盘根目录下即可,启动后输入 Linux ks=floppy 即可开始 ks 安装。

光盘读取 ks 配置文件需要在制作启动光盘时加入 ks.cfg 配置文件至根目录下,启动后输入 Linux ks=cdrom:/ks.cfg 即可开始 ks 安装。

硬盘读取 ks 配置文件一般是从光驱引导后,再读硬盘中的 ks 配置文件(此时可能没有软驱和网络支持),启动后输入 Linux ks=hd:fd0:/ks.cfg,限制条件是该硬盘分区必须是 VFAT 或者 EXT2。

网络读取 ks 配置文件则用得非常多了,通常用到的是 NFS 方式和 HTTP 方式,格式分别是 ks=nfs:server:/path 和 ks=http://< server> /< path> 。需要注意的是网络方式读取 ks.cfg 文件时,局域网能自动分配 IP,因为在内核未取得 ks.cfg 配置文件之前,系统是不知道如何配置 IP 地址的,这时就要先通过 DHCP 获得一个 IP 地址,通过网络读取 ks.cfg 配置文件。在具备网络条件的环境下,我强烈推荐使用网络方式提供 ks.cfg 配置文件,使用 DHCP 配合 ks 的参数置空功能可以为大量的工作站配置不同的 Kickstart 配置文件,自动安装功能各异的系统。我是使用 NFS 方式读取 ks.cfg 文件。

[root@server shrike]# ls

ks.cfgshrike-i386-disc1.isoshrike-i386-disc2.isoshrike-i386-disc3.iso

在待升级系统 GRUB 配置文件中加入 ks 配置语句:

kernel /boot/vmlinuz9 ro ks=nfs:192.168.0.19:/data/shrike/ks.cfg

2)经过测试,升级系统所需要的 ks 配置参数相对较少,具体配置参数就不再累述了, UNIX 的风格就是 KISS。以我的配置为例:

reboot

upgrade

lang en_US

keyboard us

mouse none

text

skipx

network --device=eth0 --bootproto=static --ip=192.168.0.42

--netmask=255.255.255.0--gateway=192.168.0.253

--nameserver=192.168.0.4 --hostname=huter.xtu.edu.cn

nfs --server=192.168.0.19 --dir=/data/shrike

zerombr yes

bootloader --location=mbr

%post

chkconfig --level 345 sshd on

检查一切配置无误就可以开始远程升级系统了!

【运用RedHat的Kickstart升级Linux系统方法】相关文章:

linux远程升级运行程序,运用RedHat的Kickstart升级Linux系统方法相关推荐

  1. linux下软件编译终止,[2018年最新整理]linux下编译运行程序命令大全.ppt

    [2018年最新整理]linux下编译运行程序命令大全 1. 项目课题引入 2. Vi编辑器的使用方法 3. Linux中C语言程序的编辑 4. Linux中C语言程序的运行 5. 现场演示案例 课题 ...

  2. linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间

    1 linux上根据运行程序的进程号,查看程序所在的绝对路径 1.如下,我想查看python 25_run_train_tripletloss_sknet_8w_offline_c_plus.py 这 ...

  3. 在Red Hat Linux中自动运行程序

    在Red Hat Linux中自动运行程序 1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常 ...

  4. 6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级STM32程序,基于Wi-Fi,同时支持升级Wi-Fi,APP控制版)...

    https://www.cnblogs.com/yangfengwu/p/10456306.html 视频教程 https://www.bilibili.com/video/av54942955/ 请 ...

  5. Linux 下后台运行程序,查看和关闭后台运行程序(转载)

    1.运行.sh文件 直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令. (1)&命令 功能:加在一个命令的最后,可以把这 ...

  6. Linux命令--定时运行程序(脚本)--方法/实例

    原文网址:Linux命令--定时运行程序(脚本)--方法/实例_IT利刃出鞘的博客-CSDN博客 简介 说明         本文介绍Linux如何定时运行程序. 概述 at命令是一次性定时计划任务, ...

  7. Xrdp - 通过Windows的RDP连接Linux远程桌面(Ubuntu/CentOS/Redhat 7)(转载)

    您多久访问一次Linux桌面? 您使用什么工具来访问远程桌面? Xrdp是一个开源工具,允许用户通过Windows RDP访问Linux远程桌面. 除了Windows RDP之外,xrdp工具还接受来 ...

  8. 如何在Linux实现自动运行程序

    1.开机启动时 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init. init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /etc/rc. ...

  9. linux 带ifdef运行程序_如何让linux的一段程序代码进入内核态运行

    展开全部 Linux内核的最初部分代码是用汇编语言写的(文件是boot/bootsect.s).(我的汇编水平有限,暂且不看),636f707962616964757a686964616f313333 ...

最新文章

  1. 修改RHEL7/centos7网卡为eth0
  2. 【Groovy】编译时元编程 ( 方法拦截时用到的 AST 语法树节点 MethodNode 节点 | MethodNode 节点分析 | MethodNode 节点中的BlockStatement)
  3. 3.STM32中对EXTI_PE5_Config()函数的理解(自定义)之中断控制按键LED
  4. C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白
  5. 笔记本安装linux系统_Win10怎么安装linux双系统?win10安装linux双系统教程
  6. JVM从入门到精通(一):JVM入门级class文件格式
  7. SAP C4C的URL Mashup无法添加到embedded component里去
  8. 以独占方式锁定此配置文件失败.另一个正在运行_JVM深入解析:运行时数据区+HotSpot+JMM+堆+GC+JVM优化+类加载
  9. php curl跨域cookie_PHP curl模拟文件上传(接口请求实现跨域文件中转)
  10. Struts2教程7:上传任意多个文件
  11. WCF 入门调用实例教程
  12. Java加载Class文件的原理机制
  13. 苹果AppStore审核,技术支持网址不通过被拒绝
  14. Filecoin(FIL) 通过PHP生成 f1 开头的地址
  15. easy connect显示‘网络请求异常请稍后重试’
  16. matlab颜色图 热力图 等高线图 色卡 色阶 颜色映像 colormap
  17. OA的部门管理和员工管理模块的实现总结
  18. 优酷鸿蒙开发实践|多屏互动开发实践
  19. 关于原创文章特此说明
  20. ComponentOne C1ReportDesigner 设计报表

热门文章

  1. WebSocket客户端断开连接后,服务器端的处理机制
  2. SAP CRM business partner determination原理介绍
  3. SAP ABAP SE16 and SE17
  4. Table accessed during One order advanced search
  5. SAP UI5 应用启动(bootstrap)过程单步调试
  6. Kubernetes stateful set讲解以及一个基于postgreSQL的具体例子
  7. mysql5.1修改登陆密码_mysql 5.1版本修改密码及远程登录mysql数据库的方法
  8. linux 文件备份定时任务脚本,linux服务器每天执行备份数据库定时任务脚本demo
  9. mysql级联_MySQL 级联复制(A-B-C)
  10. 使用回溯法解决编辑距离问题(C语言)