如何制作KS文件

如何制作KS文件,第1张

制作前言

1

在工作中总会离不开使用kickstart文件来安装系统,自己公司会用到,其他运维公司也会提供过来让我们帮他们进行安装系统,但发现总有不足的地方。他们使用定制的总是ISO格式,就要帮他们下载并记录光盘安装信汪州才可以。

2

如果是光盘大批量重装系统的,不仅耗费人力与物力,关键也很慢。有的也使用U盘去定制一个 *** 作系统,分发到IDC 运维那里进行安装,这种方法也显得很不可取。现在网络这么好,可以完全使用网络安装,只需要给到ks的获取路径到运维的人员即可。

3

基于以上的种种情况,我的想法是:运维人员可以根据现有的可靠开源站点或者自己搭建好的站点作为安装源,使用ks文件进行网络安装,这样可以更加快速方便地安装及重装系统。此方法只需要在启动安装介质界面输入一个命令即可自动化装系统。(无须记录光盘,也无须用U盘,大量减少工作量),具体的步骤,我在下面简述下

END

制作KS文件方法及步骤

1

首先在Centos 6.5 x86_64位的系统上用system-config-kickstart命令打开制作kickstart的 *** 作界面(也可以在系统的菜单里找到),另外一种方法是根据自己已经有的kickstart文件进行修改也行。下面我是使用kickstart *** 作界面进行修改安装系统时产生的anaconda-ks.cfg (在系统的/root目录下面),根据自己的实际情况而定制合适的kickstart文件。【需要在图形界面 *** 作的】

Kickstart自动化攻略:[1]如何制作KS文件

Kickstart自动化攻略:[1]如何制作KS文件

2

打开软件的界面,我们调用anaconda-ks.cfg,然后再进行编辑

Kickstart自动化滑蔽攻略:[1]如何制作KS文件

3

里边包含了安装系统的每一个步骤以及安装系统之后的一些相关script *** 作。可以设置安装完之后自动重启以及创建搭建环境。从而实现自动化过程,还有自己的定制化要求。

Kickstart自动化攻略:[1]如何制作KS文件

4

想要从事这些工作的人群都离不开英文,所以这软件的界面英文还是看得懂的。我从事这方面也有几年的经验。下面我共享自己的一个ks.cfg文件大家参考下。

以下是一个我用于网络安装Centos 6.5的一个很简单的ks文件,陵键只负责重装好系统,并还没有更加定制化

# Kickstart file automatically install Centos 6.5 i386

# author

install

url --url=http://mirrors.163.com/centos/6.5/os/

skipx

lang en_US.UTF-8

keyboard us

network --onboot yes --device eth0 --mtu=1 --bootproto static --ip 192.168.1.147 --netmask 255.255.255.0 --gateway 192.168.1.1 --noipv6 --nameserver 114.114.114.114

rootpw --iscrypted $6$a4JU7fD1Bi5OkZyf$HudWM1bouOmCIBsrhgPikHS/hFRX7H4yAFcVViHLuuiX7DFjj15ALOqiOnZeUrKdzfmENi6zKpApXqt0NM2T31

firewall --enabled --ssh --port=43999:tcp

authconfig --enableshadow --enablemd5 --passalgo=sha512

selinux --disabled

timezone Asia/Shanghai

reboot

clearpart --drives=sda --all --initlabel

zerombr yes

bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"

part /boot --fstype=ext4 --size=128

part / --fstype=ext4 --size=20480

part swap --size=2048

part /data --fstype=ext4 --grow --size=200

%packages

@core

@server-policy

rsyslog

gcc

gcc-c++

gcc-objc

gcc-objc++

make

autoconf

automake

ntp

ntpdate

vim-minimal

%end

Kickstart自动化攻略:[1]如何制作KS文件

END

Kickstart文件使用方法

1

例如上面我给出的一个文件范例,我将它存在网络上面。以HTTP方式在安装的时候进行获取。在安装启动界面的时候输入相关的指令,即可自动化安装好系统重启并进入安装好的系统登陆界面。如下图

Kickstart自动化攻略:[1]如何制作KS文件

2

我在安装界面的时候,按TAB键编辑菜单,在后面添加内容 ks=后面是ks的网络路径(这里写不了链接)。因为在安装的时候IP 与DNS 都是本地自动分配的,所以不用指定也可以。因为路径是我放在百度云上面的,所以路径不方便透露。

Kickstart自动化攻略:[1]如何制作KS文件

3

这样使用ks定制安装 *** 作系统就非常方便了,无论在哪里都可以进行调用安装以及提供给运维人员帮自己重装系统,再也不用担心选择少组件或者每一次安装好系统都要安装环境,可以在ks里边定制好。非常方便的,最后还想说必须根据网络环境而定制化。

本文简要地介绍了使用 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

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

        本文主要针对CenOS6系统的启动流程作简介。

         Linux的系统启动分为几个阶段,由于运行中的系统分为用户空间层面和内核空间层面,所以一个完整的系统启动也是先启动内核文件,然后在启动用户层面的各种应用程序。Linux系统的设计属于单内核设计,但是各功能模块却支持动态的装载和卸载,极大的压缩了内核的体积,让内核的启动也更加快捷和迅速。

过程简述:

1.POST(加电自检) :主要负责检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)是否正常。

2.boot sequence(选择启动设备) :按次序查找各引导设备,第一个有引导程序的设备即为本次启动要用到的设备;

上述两个功能都由BIOS来完成,BIOS(Basic Input / Output System),又称基本输入输出系统,是一个固化在ROM中的软件,是 *** 作系统输入输出管理系统的一部分。

3.bootloader(引导加载器):

Linux下的引导加载器有grub leancy和grub2两种,Cenos6中使用的是前者。

MBR(主引导记录):

MBR的共由512字节组成,前446字节存放的即是bootloader。所以在选定启动设备后,收件是读取MBR中的bootloader,打开grub菜单。

grub:

功能:提供一个菜单,允许用户选择要启动的系统或不同的内核版本; 把用户选定的内核装载到RAM中的特定空间中,解压、展开,而后把系统控制权移交给内核;

gurb的实现共有3个阶段:

1st stage:位于MBR的BootLoader中,用来加载2nd stage到内存中。

1.5  stage:1和2的桥梁,用来驱动文件系统来使1阶段过渡到2阶段。

2nd stage:grub核心,/boot/grub,存放在磁盘分上,用于加载内核文件。

4.加载内核

分四个步骤:

探测可识别到的梁碰所有硬件设备;

加载硬件驱动程序;(有可能会借助于ramdisk加载驱动)

以只读方式挂载根文件系统;即rootfs

运行用户空间的第一个应用程序:/sbin/init。

内核文件:/boot//vmlinuz-VERSION-release,ramdisk文件/boot/initramfs-VERSION-release.img。

        在上述的内核启动后,后续的 *** 作都交给init程序来完成。/sbin/init程序是用户空间的第一个程序,主要完成系统初始化哗配,步骤如下:

设置默认运行级别:

         运行级别的配置文件为/etc/inittab,共0-6七个运行级别,可以在该文件中自主定义,下次启动默认进入指定的运行级别。

 运行系统初始化脚本:

        /etc/rc.d/rc.sysinit即为系统的初始化脚本,系统通过自动执行该脚本,从而完成对系统的设置和信息的初始化。

关闭对应级别下需要停止的服务,启动对应级别下需要开启的服务:

        这里主要是指通过chkconfig所配置的开机自动启动或者关闭的各类服务。

设置登录终端:

 启动图形终端:级别5需要启动

GRand Unified Bootloader,系统启动后会首先打开一个grub菜单,上图所示,可以自主选择内核、定制内核参数。grub由三个阶段组成,1st stage,1_5stage以及stage2,stage2和内核文件等通常放置于一个基本磁盘分区。

grub有自己的命令行接口:

配置文件说明:/boot/grub/grub.conf

kickstart是什么

        许多系统管理员愿意使用自动化的安装方法来安装linux系统。为了满足这乱渣指种需要,红帽公司建立了kickstart安装方法。使用kickstart自动化安装,系统管理员可以创建一个ks文件,该文件包含了在典型的安装过程中所遇到的问题的答案。

        Kickstart文件可以存放在一个固定的位置上,在安装过程中被独立的机器所读取。这个安装方法可以支持使用单一kickstart文件在多台机器上安装Linux系统,这对于网络和系统管理员来说是个理想的选择。

如何执行kickstart安装

        kickstart 安装可以使用本地光盘,本地硬盘驱动器,或通过 NFS、FTP、HTTP 来执行。

        要使用 kickstart,必须:

                1.创建一个正确的kickstart文件。

                2.创建有kickstart文件的引导介质或者让主机可以通过网络访问该文件。

                3.筹备安装过程。

                4.开始kickstart安装。

创建kickstart配置文件的方式:

   1.  文本编辑器编辑生成:vim

   2. 用图形化界面配置:system-config-kickstat(需要安装system-config-kickstart.noarch包)

步骤:

创建光盘根目录

复制光盘下的isolinux目录到根目录下

赋予isolinux里的所有文件和目录写权限(这样就可以自定义isolinux.cfg文件)

复制修改好的ks文件到myboot目录下(这里myboot目录相当于光盘的根目录)

建立镜像


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12119040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存