实现kickstart的前提:
综述:
本文档是基于DELLOptiPlex 990(12GB内存、2网卡)上的Windows2012 Hyper-V系统上完成的。
本次实验使用的WEB/DHCP/TFTP服务器均配置在同一台机器(虚拟机),操作系统是运行在Hyper-V虚拟机上的RedHatLinux 5.5。
建议安装系统时选择安装httpd、dhcp、tftp、syslinux相应软件包;实验环境的网络是独立的网络,因此可以避免DHCP服务器影响公司的生产网络。
所有步骤均在测试环境下经过验证。
以下将详细描述上述各个前提的实施步骤:
一、务器的安装配置
如果安装系统未安装httpd,则需要另外安装,参考如下命令:
[root@localhostServer]# rpm-ivh httpd-2.2.3-43.el5.x86_64.rpm
[root@localhostServer]# rpm-ivh syslinux-3.11-4.x86_64.rpm
如果你的系统可以使用yum安装软件,则执行如下命令即可:
[root@localhostServer]# yuminstall httpd syslinux
配置http共享文件夹:
[root@localhost ~]#vi /etc/httpd/conf/httpd.conf
添加/确保如下内容存在:
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
[root@localhost ~]# chkconfig --list httpd
[root@localhost ~]# chkconfig httpd on
[root@localhost ~]# service httpd start
[root@localhost ~]# service httpd status
二、DHCP服务器的安装配置
[root@localhostServer]# rpm-ivh dhcp-3.0.5-23.el5.x86_64.rpm
或
[root@localhostServer]#yum install dhcp
[root@localhostServer]#cat /etc/dhcpd.conf
#
# DHCP Server Configuration file.
# see/usr/share/doc/dhcp*/dhcpd.conf.sample
#
allow booting;
allow bootp;
ddns-update-style interim;
default-lease-time 3600;
max-lease-time 4800;
next-server 10.10.248.48;
subnet 10.10.248.0 netmask255.255.255.0 {
range 10.10.248.50 10.10.248.99;
option domain-name-servers10.10.248.10;
option subnet-mask 255.255.255.0;
option time-offset -8;
}
host RH01 {
hardware ethernet00:15:5D:0A:35:11;
fixed-address10.10.248.56;
option host-name"RH01";
filename"pxelinux.0";
}
[root@localhostServer]#
其中黄色部分给您需要安装系统的主机指定网卡确定IP地址;
启动DHCP服务,并设置该服务在每次系统重启时自动启动:
[root@localhostServer]#chkconfig --list dhcp
[root@localhostServer]#chkconfig dhcp on
[root@localhostServer]#service dhcp start
[root@localhostServer]#service dhcp status
三、TFTP服务器的安装配置
[root@localhostServer]# rpm -ivh tftp-server-0.49-2.x86_64.rpm
或
[root@localhostServer]# yum install tftp-server
[root@localhostServer]#vi /etc/xinetd.d/tftp
[root@localhostServer]# cat/etc/xinetd.d/tftp
# default: off
# description: The tftp serverserves files using the trivial file transfer \
# protocol. The tftp protocol is often used to bootdiskless \
# workstations, download configurationfiles to network-aware printers, \
# and to start the installation processfor some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s -c -v-v -v /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
[root@localhostServer]#
[root@localhostServer]#chkconfig --list tftp
[root@localhostServer]#chkconfig tftp on
[root@localhostServer]#service xinetd restart
四、PXE服务器的配置
首先,PXE服务器需要使用静态IP地址,所以需要把Linux服务器eth0改成使用静态IP地址:
[root@localhost Server]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Digital Equipment CorporationDECchip 21140 [FasterNet]
DEVICE=eth0
BOOTPROTO=STATIC
ONBOOT=yes
HWADDR=00:15:5d:0a:35:10
TYPE=ethernet
IPADDR=10.10.248.48
NETMASK=255.255.255.0
GATEWAY=10.10.248.10
[root@localhostServer]#
现在,我们就可以开始设置PXE的启动环境了:
PXE网络启动原理:文件传输可以是HTTP或NFS。
1、首先,你需要准备好一台用于安装的Linux系统盘(CD格式或把CD内容拷贝到一个可通过http共享的目录):
a. 把rhel-server-5.5-x86_64-dvd.iso文件上传到服务器;
b. [root@localhostServer]#mkdir/var/www/html/rhel55
c. 修改/etc/fstab,增加如下内容:
d. /root/rhel-server-5.5-x86_64-dvd.iso/var/www/html/rhel55 iso9660 loop=/dev/loop1,ro 0 0
2、在RH的第一张系统光盘中,你可以看到一个isolinux的子目录,在该目录下你可以找到两个文件,分别是vmlinuz 和 initrd.img. 它们是Linux的 kernel 及 initrd.img,是Linux启动光盘用来启动 Linuxinstaller (anaconda) ,然后进行安装操作的。
3、拷贝这两个文件到/tftpboot目录下,并将它们改为所以人可以读取;注:如果计划多个版本的系统用于PXE启动,你可以修改相应文件的名称;
4、到此,你需要把对应系统的pxe启动的kernel(这就是PXE启动后获得DHCP地址后马上运行的核心);你可以在/usr/lib/syslinux/目录下找到pxelinux.0文件,然后将其拷贝到/tftpboot目录下,修改为所有人可读权限;
5、配置pxelinux:创建/tftpboot/pxelinux.cfg目录(修改为所有人可读权限),在该目录创建如下空文件(用touch命令):
[[email protected]]# ls-l
total 4
-rw-r--r-- 1 root root 0 Sep 19 16:18 0
-rw-r--r-- 1 root root 0 Sep 19 11:59 01-00-15-5d-0a-35-11
-rw-r--r-- 1 root root 0 Sep 19 11:33 0A
-rw-r--r-- 1 root root 0 Sep 19 11:33 0A0
-rw-r--r-- 1 root root 0 Sep 19 11:33 0A0A
-rw-r--r-- 1 root root 0 Sep 19 11:33 0A0AF
-rw-r--r-- 1 root root 0 Sep 19 11:33 0A0AF8
-rw-r--r-- 1 root root 0 Sep 19 11:33 0A0AF83
-rw-r--r-- 1 root root 0 Sep 19 11:33 0A0AF838
-rwxrwxrwx 1 root root 412 Sep 1913:46 default
其中01-00-15-5d-0a-35-11是01-加PXE客户端机器的MAC地址,0A0AF838是IP地址10.10.248.56的十六进制值。
6、 现在需要创建一个default的pxelinux配置文件,文件内容如下:
[[email protected]]# catdefault
default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ksdevice=eth0 ks=http://10.10.248.48/redhat5.5.cfginitrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -
五、kickstart配置文件的准备
如下kickstart配置文件需要拷贝到http的共享目前,此处为:/var/www/html
[root@localhosthtml]# catredhat5.5.cfg
#######################################################################
# This is an installation not anupgrade
install
# The location of the RPM files
url --urlhttp://10.10.248.48/rhel55/
key --skip
lang en_US
# Use text mode install
text
keyboard us
xconfig --defaultdesktop kde--resolution 640x480 --depth 8
network --device eth0 --bootprotodhcp --onboot=on
rootpw --iscrypted$1$u0Zg1qia$GLYfHZN3vrliUiL6lshmP.
authconfig --useshadow--enablemd5
selinux --disabled
timezone ASIA/HONG_KONG
firewall --disabled
firstboot --disable
# Reboot after installation
reboot
bootloader --location=mbr--append="console=ttyS0,9600n8"
clearpart --all --initlabel
# define partitions
part /boot --fstype ext3--size=512
part /opt --fstype ext3--size=10000 --grow
part /usr --fstype ext3--size=10000
part /tmp --fstype ext3--size=7500
part /var --fstype ext3--size=7500
part /home --fstype ext3--size=4500
part swap --size=2048
part / --fstype ext3 --size=2048
part /usr/local --fstype ext3--size=2000
#######################################################################
#######################################################################
%packages
@engineering-and-scientific
@mysql
@development-libs
@editors
@system-tools
@gnome-software-development
@text-internet
@gnome-desktop
@core
@base
@ftp-server
@network-server
@legacy-software-development
@java-development
@printing
@kde-desktop
@mail-server
@server-cfg
@sql-server
@admin-tools
@development-tools
@graphical-internet
festival
audit
kexec-tools
bridge-utils
device-mapper-multipath
dnsmasq
imake
-sysreport
mc
festival
audit
libgnome-java
libgtk-java
libgconf-java
kexec-tools
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
-compiz-kde
-knetworkmanager
-amarok
#######################################################################
Kickstart的配置文件可以在每次系统安装自动生成,存放在/root/目录下,在该版本中,其文件名是anaconda-ks.cfg;
Kickstart的配置文件有很多的自定义/客户化,如安装后脚本%post等等,这方面的内容本文不详细讨论。
六、Troubleshooting
1、PXE配置问题:检查dhcpd.conf文件是否pxelinux.0文件是否已定义;
2、 客户端启动是DHCP获取IP成功,但是出现“tftp:client does not accept options”:
检查dhcpd.conf文件是否添加如下内容:
allow booting;
allow bootp;
七、参考文档:
http://linux-sxs.org/internet_serving/pxeboot.html
https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Installation_Guide/ch-kickstart2.html