KickStart无人值守批量安装Linux文档格式.docx
《KickStart无人值守批量安装Linux文档格式.docx》由会员分享,可在线阅读,更多相关《KickStart无人值守批量安装Linux文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
(2)非标准的软驱和光驱:
虽然笔记本电脑都会配置光驱。
但是并不一定都是标准的IDE设备,有些通过USB接口或1394接口(例如Samsung的Q10)连接。
在Linux安装时所引导的Linux内核一般都不会带这些接口的驱动,所以也无法通过本地安装。
(3)在一些场合,如机房中有大量的计算机需要同时安装Linux。
如果通过光驱的方式逐台安装,不仅效率低,也不利于维护。
(4)光驱或安装光盘故障。
二、原理和概念
2.1什么是PXE
2.1.1PXE技术的基本原理
PXE技术与RPL技术不同之处为RPL是静态路由,PXE是动态路由。
RPL是根据网卡上的ID号加上其他记录组成的一个Frame(帧)向服务器发出请求。
而服务器中已有这个ID数据,匹配成功则进行远程启动。
PXE则是根据服务器端收到的工件站MAC地址,使用DHCP服务为这个MAC地址指定个IP地址。
每次启动可能同一台工作站有与上次启动有不同的IP,即动态分配地址。
下以客户端引导过程说明PXE的原理。
(1)客户端开机后,PXEBootROM(自启动芯片)获得控制权之前执行自我测试,然后以广播形式发出一个请求FIND帧。
(2)如果服务器收到客户端所送出的要求,就会送回DHCP回应,包括用户端的IP地址、预设通信通道,以及开机映像文件;
否则服务器会忽略这个要求。
(3)客户端收到服务器发回的响应后则会回应一个帧,以请求传送启动所需文件,并把自己的MAC地址写到服务器端的Netnames.db文件中。
(4)将有更多的消息在客户端与服务器之间应答,用于决定启动参数。
BootROM由TFTP通信协议从服务器下载开机映像文档。
客户端使用TFTP协议接收启动文件后,将控制权转交启动块以引导操作系统,完成远程启动。
2.1.2PXE安装流程
PXE协议的成功运行需要解决以下的两个问题
(1)既然是通过网络传输,那么计算机在启动时其IP地址如何配置?
(2)通过何种下载Linux内核和根文件系统?
第一个问题可以通过DHCPServer解决,由DHCPServer来为PXEClient分配一个IP地址,DHCPServer是用来为DHCPClient动态分配IP地址的协议。
不过由于这里是为PXEClient分配IP地址,所以在配置DHCPServer时需要增加相应的PXE特有配置;
至于第2个问题,在PXEClient所在的ROM中,已经存在了TFTPClient。
PXEClient使用TFTPClient,通过TFTP协议到TFTPServer上下载所需的文件。
这样,PXE协议运行的条件就具备了,PXE的安装流程如图所示。
在图中,PXEClient是需要安装Linux的计算机,TFTPServer和DHCPServer运行在另外一台LinuxServer上,Bootstrap文件、配置文件、Linux内核,以及Linux根文件系统都放置在LinuxServer上TFTP服务器的根目录下。
除了配置文件,这3个二进制文件是PXEClient在工件过程中所必需的文件,即bootstrap、Linux内核和Linux根文件系统。
Bootstrap文件是可执行程序,它为用户提供简单的控制界面,并根据用户的选择下载合适的Linux内核以及Linux根文件系统。
图1PXE的基本原理
2.2什么是KickStart
KickStart是一种无人职守安装方式。
KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;
在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。
等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
2.3网络结构
如图为网络安装环境的一个原理示意,安装环境由一个局域网和连接到该局域网的启动服务器、安装服务器和待安装客户端,其中启动服务器和安装服务器可以部署在同一台物理机上。
图2网络结构
下表列出了对这些机器的软硬件要求及其负载的服务与数据。
系统名称
安装和启动服务器
待安装计算机
操作系统
RedHatEnterpriseLinux5
无
硬件
普通X86体系
普通X86体系,网卡必须带有PXE
支持
网络
同一子网
服务类型
DHCP、TFTP及NFS
数据
PXELinux启动镜像,kickstart配置文件、RedHatEnterprise
Linux5安装介质和RedHatEnterpriseLinux5安装程序启动
镜像
表1基本的软硬件要求
三、安装的前提条件
3.1PXE+KickStart安装的条件
执行PXE+KickStart安装需要的设备为:
DHCP服务器;
TFTP服务器;
KickStart所生成的ks.cfg配置文件
一台存放系统安装文件的服务器,如NFS、HTTP或FTP服务器。
带有一个PXE支持网卡的将安装的主机;
3.2安装过程中所需要的rpm包及获取
3.2.1需要的rpm软件包
vsftp
xinetd-*
tftp-server-*
dhcp-*
system-config-kickstart-*
syslinux
3.2.2软件包的获取
1、搭建本地yum源
Redhat系列的操作系统,如果直接用rpm进行软件安装时rpm包的依赖性让人头疼,利用yum可以很好解决,儿redhat服务器版本未注册时无法使用yum,而搭建本地yum源可以很好解决这个问题。
首先将cdrom或者iso文件mount到/mnt目录,例如:
mount/dev/cdrom/mnt;
或者
mount-oloop/root/Redhat6.0.iso/mnt
并在/etc/yum.repos.d/目录建立一个新文件rhel6.repo,写上以下内容:
[Server]
name=Server
baseurl=file:
///mnt/Server
enabled=1
gpgchedk=0
我们只用到了Server里面的内容,所以只用这一个就可以了
修改vim/etc/yum.conf把gpgcheck=1这个改成0,即可完成
yumlist成功执行后可进行相关软件安装,并很好的解决依赖性关系。
有一个13台机器的机房,要求需要批量安装RedHat6.0Linux操作系统,服务器地址为192.168.0.213,子网掩码为255.255.255.0,使待安装的机器做的操作仅仅是开机就可以自动安装操作系统。
4.1配置服务器IP地址
(1)在终端里输入system-config-network-tui,打开IP配置图形界面。
配置服务器ip地址。
(2)重启网卡,使新配置的IP生效。
servicenetworkrestart
4.2安装rpm包
配置该服务器需要安装:
dhcpd,
tftp-server,
system-config-kickstart(可选),安装过程中有相关依赖包请首先安装。
首先需要检查本机上是否已经安装了这些包,输入rpm–qa|grep+包名。
如果没有安装这些包则需要通过rpm–ivh+包名一安装。
Mount-tiso9600/root/Redhat6.iso/mnt-oloop
首先需要用mount–tiso9660/dev/cdrom/mnt/cdrom(/mnt/cdrom必需存在)来将系统光盘挂载到/mnt/cdrom目录下。
然后安装需要的rpm包。
Yuminstallvsftpdhcpdtftpserver。
4.3配置dhcp服务
使用vim编辑器编辑/etc/dhcp.conf文件。
ddns-update-styleinterim;
ignoreclient-updates;
subnet192.168.0.0netmask255.255.255.0{
#---defaultgateway
optionrouters192.168.0.1;
//路由器IP,可以写网关IP
optionsubnet-mask255.255.255.0;
filename"
pxelinux.0"
;
//PXE得到IP以后的引导文件
next-server192.168.0.213;
//服务器IP地址。
#optionnis-domain"
domain.org"
//注销
#optiondomain-name"
#optiondomain-name-servers192.168.1.1
optiontime-offset-18000;
#EasternStandardTime
#optionnetbios-node-type2;
rangedynamic-bootp192.168.0.214192.168.0.225;
//IP地址池范围。
default-lease-time21600;
}
我们需要对它进行修改,我这里把它修改的尽量简单了。
红色部分都是要特别注意的地方,出错了就会导致服务器配置失败。
需要注意的是字段range是给待安装的机器分配的的IP地址池,filename字段是引导文件pxelinux.0的位置,next-server是tftp服务器的位置。
4.4配置tftp服务
tftp是为了给待安装的机器发送文件的简单的文件传输服务。
tftp服务有xinetd管理,只需修改配置文件并重启xinetd服务即可。
使用vim编辑器打开/etc/xinetd.d/tftp文件
将里面的disable字段值改为no,保存退出重启xinetd服务就可以了。
注意:
tftp在rehat6.0下在/var/tftproot,5.*版本的在/tftproot目录下,建议用find搜索tftp文件夹确定位置。
4.5配置vsftp服务
vsftp服务是作为安装过程所需要的一些文件提供安装源,这个也是比较简单的。
并且登陆方式采取匿名登录,只用安装好ftp服务器,不需要额外的配置即可进行,如需增加安装的安全性,可以进行账户配置。
安装:
#mount/dev/cdrom/mnt
#cd/mnt/Server
#rpm-ivhvsftp-*
启动:
/etc/init.d/vsftpdstart
通过浏览器登录测试:
ftp:
//192.168.0.213;
vsftp主目录为:
/var/ftp/pub
4.6配置ks.cfg文件
ks.cfg是待安装机器的所有的配置文件,每台机器在安装过linux系统以后都会自动生成一个ks.cfg文件里面记录了在安装系统的时候所做的所有操作,文件的位置位于/root目录下的anaconda-ks.cfg。
建议用这个文件,通过system-config-kickstart的图形界面来编辑生成的ks.cfg文件不支持LVM给后期的管理带来困难。
下面是笔者结合system-config-kickstart和anaconda-ks.cfg文件修改出来的的ks.cfg配置内容。
#platform=x86,AMD64,orIntelEM64T
#Systemauthorizationinformation
auth--useshadow--enablemd5
#Systembootloaderconfiguration
bootloader--location=mbr
#CleartheMasterBootRecord
zerombr
#Partitionclearinginformation
clearpart--all--initlabel
#Usegraphicalinstall
graphical
#Firewallconfiguration
firewall--disabled
#RuntheSetupAgentonfirstboot
firstboot--disable
#Systemkeyboard
keyboardus
#Systemlanguage
langen_US
#Installationlogginglevel
logging--level=info
#Usenetworkinstallation
url--url=ftp:
//192.168.20.100/pub/linux
#Networkinformation
network--bootproto=dhcp--device=eth0--onboot=on
#Rebootafterinstallation
reboot
#Rootpassword
rootpw--iscrypted$1$NfGe7UHc$hUjii7S8J2jsBkVRCjh1d1
#SELinuxconfiguration
selinux--disabled
#Systemtimezone
timezoneAsia/Shanghai
#InstallOSinsteadofupgrade
install
#XWindowSystemconfigurationinformation
xconfig--defaultdesktop=GNOME--depth=8--resolution=640x480
#Diskpartitioninginformation
clearpart--linux--drives=sda
part/boot--fstypeext3--size=100--ondisk=sda
partpv.2--size=0--grow--ondisk=sda
volgroupVolGroup00--pesize=32768pv.2
logvol/--fstypeext3--name=LogVol00--vgname=VolGroup00--size=1024--grow
logvolswap--fstypeswap--name=LogVol01--vgname=VolGroup00--size=1024--grow--maxsize=2048
%packages
@admin-tools
@base
@chinese-support
@core
@development-libs
@development-tools
@editors
@gnome-desktop
@text-internet
@base-x
kexec-tools
fipscheck
device-mapper-multipath
sgpio
imake
emacs
xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
其中,%packages表示需要安装的包。
红色部分一定要注意,指定系统是通过vsftp来安装的,安装路径是/pub/linux,配置好以后保存为ks.cfg,放在var/ftp/pub目录下。
4.7配置支持PXE启动
这步需要将linux内核复制到tftpboot文件夹内。
mount–tiso9660/dev/cdrom/mnt/cdrom
#挂载光盘到/mnt/cdrom
cd/tftpboot/
#tfp-server指定的根目录位置(若该文件夹已经存在则不用建立,通常重启tftp服务后会自动建立)
cp/usr/lib/syslinux/pxelinux.0/tftpboot
#pxelinux.0是pxe方式的bootloader,如果你发现没有这个目录,不要紧张。
找到syslinux这个软件包就OK了
cp/mnt/cdrom/images/pxeboot/vmlinuz/tftpboot/
#把Linux第一张安装光盘上/image/pxeboot/initrd.img和vmlinux复制到/tftpboot/中
cp/mnt/cdrom/images/pxeboot/initrd.img/tftpboot/
mkdir/tftpboot/pxelinux.cfg
#在tftpboot中新建一个pxelinux.cfg目录
由于启动镜像pxelinux.0文件在执行过程中,会读取配置文件以确定它应该载入什么Linux内核文件来运行。
所有的配置文件都放在启动服务器的/tftpboot/pxelinux.cfg/目录下。
pxelinux.0根据一定的规则来搜索合适的配置文件名。
比如说C0A88A1E>
C0A88A1>
…>
C0>
C>
default就是说,如果C0A88A1E文件存在,它就是pxelinux.0将载入的配置文件。
否则,继续往下找。
如果C0A88A1文件存在,它就是pxelinux.0将载入的配置文件。
如果前面的以C开头的文件都不存在,那么pxelinux.0将试图从文件default中读取配置。
对于一台需要支持很多安装机器的安装服务器来说,将配置写在与IP地址对应的文件里很不灵活。
把所有配置都集中在default文件中是个不错的主意,可以减轻配置文件维护负担。
这里也是为什么要建立pxelinux.cfg文件夹。
所以接下来就要在pxelinux.cfg里建立default文件,系统盘里也有这个文件,位于系统盘的isolinux下的isolinux.cfg但是我这里不借用它的default文件,所以这是我们使用vim编辑器在pxelinux.cfg中直接建立一个default文件。
cp/mnt/cdrom/isolinux/isolinux.cfg/tftpboot/pxelinux.cfg/default
2、修改/tftpboot/pxelinux.cfg/default文件
----------------------------------------------
[root@rhce~]#chmoduw/tftpboot/pxelinux.cfg/default//文件默认只读
[root@rhce~]#vi/tftpboot/pxelinux.cfg/default
defaultlinux
prompt1
timeout6//超时时间,默认600,可以不改。
displayboot.msg
F1boot.msg
F2options.msg
F3general.msg
F4param.msg
F5rescue.msg
labellinux
kernelvmlinuz
appendinitrd=initrd.imgks=ftp:
//192.168.0.213/pub/ks.cfg//ks.cfg是kickstart安装配置文件,系统就是按照ks.cfg来安装的。
接下来是要在/var/ftp/pub/linux文件夹中放入系统盘内的文件,你在挂载光盘后可以直接使用cp–r/mnt/cdrom/linuxinstall将文件复制到/linuxinstall中,不过这样做还是比较麻烦的,我直接使用mount–tiso9660/dev/cdrom/var/ftp/pub/linux把系统光盘给挂载到//var/ftp/pub/linux中。
4.8启动服务器
到这里我们的服务器可以说是配置的差不多了,剩下的就只要将这些服务给启动起来就可以了。
servicedhcpdstart
#启动dhcpd服务
chkconfigdhcpdon
#dhcpd服务开机自动启动
servicevsftpdrestart
#重启vsftpd服务
chkconfigvsftpdon
#vsftpd服务开机自动启动
servicexinetdstart
#启动xinetd服务
chkconfigxinetdon
#xinetd服务开机自动启动
4.9测试
将待安装机器启动起来,进入bios界面,将启动方式改为从网络启动,保存退出重启即可,有的机器则不用进入bios就可以直接进入安装界面。
主要过程如下:
正在获取IP地址
图29获取IP地址
获取到IP地址后,从tftp服务器上读取内核及default配置文件并执行安装
图30获取内核文件
图31执行安装
安装完成,并重新启动计算机
图35安装完成并重启
重新启动后,系统已经安装成功。
五、常见故障排除
5.1无法分配到IP地址
如果安装开始的时候无法分配到IP地址,则说明你服务器的dhcp.conf配置的有问题,有可能你的语法有问题,比如说少了个分号(;
),又或者单词写的有问题,这些语法错误会导致dhcp服务启动失败。
5.2tftp无法连接
图36tftp无法连接