Kickstart 无人值守安装RHEL 5系统
我们知道RH中的Kickstart可以实现RedHat光盘启动后的自动安装,如果把ks.cfg及 RPM安装文件考到一台HTTP或NFS服务器上,就可以实现网络自动安装,但还是需要RedHat的启动盘来启动机器,但加上DHCP、TFTP和 PXELinux及支持PXE的网卡,噢,那就可以实现远程启动了。也就是说,有了上面的条件,你只要给一台支持PXE的客户机上电,然后再打入一个设置好的命令就可以安装好一RedHat台机器了。
实现上面安装的过程是这样的:PXE网卡启动àDHCP服务器à获得IPà从TFTP上下载 pxelinux.0、vmlinuz、initrdà启动系统à通过PEXlinux去HTTP/NFS下载ks.cfg文件à跟据ks.cfg去HTTP/NFS下载RPM包及安装系统------完成安装
1).为了方便先做一个yum 升级源
[root@oracle ~]# vi /etc/yum.repos.d/rhel-debuginfo.repo
[rhel]
name=Red Hat Enterprise
baseurl= file://mnt/Server
file:///mnt/Cluster
file://mnt/ClusterServer
file://mnt/VT
enabled=1
gpgcheck=0
[root@oracle ~]#mount /dev/cdrom /mnt
|
2).安装dhcp
[root@oracle ~]#yum –y install dhcp*
|
安装完成之后,把dhcp.conf.sample文件拷贝到/etc下面
cp /usr/share/doc/dhcp- 3.0.5 /dhcp.conf-sample /etc/dhcpd.conf
vi /etc/dhcpd.conf。
|
找到:
ignore client-updates;
|
在后面添加上:
next-server 192.168.1.1;
filename "pxelinux.0";
|
找到并注释:
#option nis-domain "domain.org";
#option domain-name "domain.org";
#option domain-name-server 192.168.1.1;
|
3).配置网卡
将
IP改
为192.168.1.
1
vi /etc/sysconfig/network-scripts/ifcfg-eth0
找到:
BOOTPROTO=dhcp
改
为
:
BOOTPROTO=static
注意IP地址的配置:
IPADDR=192.168.1.1
NETMASK=255.255.255.0
|
重启网络并启动dhcp
/etc/init.d/network restart
/etc/ini.d/dhcpd start
|
4).安装tftpd服务:
yum install -y xinetd tftp-server
|
配置tftp-server
vi /etc/xinetd.d/tftp
找到
:
disable = yes
改为
disable = no
|
重启动tftp-server
/etc/init.d/xinetd restart
|
pxelinux.0
pxelinux.0,我们在配置dhcp的时候,就已经用到了,其实,就是上面提到的bootstrap。在Linux中,它是由syslinux来生成的。我们只要安装了syslinux,就会生成一个pxelinux.0,我们只需要将其拷贝到/tftpboot下面即可。
yum install -y syslinux
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
|
4).启动文件
拷贝内核文件vmlinuz以及根文件系统initrd.img到/tftpboot
cp /mnt/p_w_picpaths/pxeboot/vmlinuz /mnt/p_w_picpaths/pxeboot/initrd.img /tftpboot
|
创建/tftpboot/pxelinux.cfg目录
mkdir /tftpboot/pxelinux.cfg
|
创建/tftpboot/pxelinux.cfg/default文件
touch /tftpboot/pxelinux.cfg/default
|
文件内容如下:
default linux
prompt 0
label linux
kernel vmlinuz
append ks=nfs:192.168.0.1:/netinstall/ks.cfg initrd=initrd.img
|
5.1).配置nfs网络安装
拷贝整个安装光盘到/netinstall
mkdir /netinstall
cp -r /mnt/* /netinstall
|
安装nfs
服务,并将/netinstall发布出去
yum install -y nfs-utils
/etc/init.d/portmap start
/etc/init.d/nfs start
vi /etc/export
最后结果如下:
exportfs *:/netinstall
|
5.2).配置http网络安装
vi /etc/httpd/conf/httpd.conf
#
加入如下行
配下载点
(
别名
)
Alias /download "/var/www/download"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
#
拷
贝整个安装光盘
mkdir –p /var/www/download
cp -r /mnt/* /var/www/download/
#
重启
httpd
Service httpd restart
|
6).ks.cfg文件
拷贝服务器上的ks文件到/netinstall并重命名为ks.cfg
cp /root/anaconda-ks.cfg /netinstall/ks.cfg
chmod a+r /netinstall/ks.cfg
找到第一行的
install
,
将其改为
text
找到
第二行的
cdrom
,改
为
nfs --server=192.168.0.1 --dir=/netinstall/
找到
,
clearpart --linux --drives=sda
改
为:
clearpart --all --drives=sda --initlabel
并
在上面添加一行
:
autopart
|
注意:关闭服务器端防火墙和SELINUX
7).最终结果为
#TFTP
目录
内容
/tftpboot
--initrd.img
--pxelinux.0
--vmlinuz
--pxelinux.cfg
--default
#NFS
发布的目录
/netinstall
--ks.cfg
--redhat
安装盘的内容
#
如果是
HTTP
发布
/var/www/download
--ks.cfg
--redhat
安装盘的内容
|
8).常见安装问题
1.服务器上cp的ks.cfg不能用
redhat默认安装了一个专门生成KickStart专用ks.cfg配置文件的图形工具,可以通过命令ksconfig启动
2.安装时要求再一次输入hostname 和域
查看是否有别的DHCP,如果是虚拟机做实验查看vmware 的dhcp是否关闭
通过服务器端日志可查出tail -f
3.安装又一次要求选语言
可以看到ks.cfg第一项就是语言,如果要求选语言,说明没有读取ks.cfg文件
可能在tftp的default 文件没有指定ks.cfg 或写错文件名把ks.cfg写成ks.conf等
4. 再次输入NFS的IP
挂不上nfs 说明服务器上有关服务没有启动,或服务有错误,日志中的现像为有挂载请求但挂不起来..:
5.如果日志中有NFS ,rpc.svcgssd启不了,属正常.