配置kickstat文件,使用网络安装方法,将不同系统的系统安装文件分别共享(不同的源)。原理图:
网络拓扑:
服务器的地址为192.168.0.1。
配置步骤:
需要的服务:DHCP服务,tftp服务,NFS服务.
安装软件包:
安装需要的软件包:
nfs-utils-lib-*
nfs-utils- *
xinetd-* tftp的依赖包
tftp-server-*
dhcp-*
dhcp-devel-*
createrepo
system-config-kickstart-*
syslinux
这些软件包都光盘上或者镜像上
重启服务:安装好dhcp 和tftp,nfs的软件包后,将其设置开机自启动,并重启这些服务。
service dhcpd start
chkconfig dhcpd on
#启动dhcpd服务并开机自动启动
service nfs restart
chkconfig nfs on
#重启nfs服务并开机自动启动
service xinetd start
chkconfig xinetd on
#启动xinetd服务并开机自动启动
配置DHCP服务
a) 复制/usr/shar/doc/dhcp-3.0.5/dhcp.conf.sample到/etc/dhcpd.conf
b) 然后编辑/etc/dhcpd.conf 使其为以下格式
ddns-update-style none;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name “example.com”;
option domain-name-servers 192.168.0.1;
default-lease-time 21600;
max-lease-time 43200;
range 192.168.0.100 192.168.0.200; 网络安装的地址池
filename “/kickstat/ks.cfg”;
next-server 192.168.0.1;
}
option space PXE;
class “PXE” {
match if substring(option vendor-class-identifier, 0, 9) = “PXEClient”;
option vendor-encapsulated-options 01:04:00:00:00:00:ff;
option boot-size 0x1;
filename “pxelinux.0”;
option tftp-server-name “192.168.0.1”;
option vendor-class-identifier “PXEClient”;
vendor-option-space PXE;
}
配置tftp服务
a) 编辑/etc/xinetd.d/tftp文件,将里面的disable字段值改为no。
b) 在安装tftp后系统会自动生成一个/tftpboot的目录,用来存放的东西是最重要的。
c) 使用cp将/usr/lib/syslinux/下的pxelinux.0复制到 /tftpboot
或者是/usr/share/syslinux/pxelinux.0 复制到 /tftpboot
在/usr/lib/syslinux/存在的肯定是5.4系统pxelinux.0 了 因为pxelinux.0是pxe方式的boot loader,这里只要和dhcpd.conf中定义的pxelinux.0是一致的亦可以了,只是网络安装罢了。
d) 然后将每个光盘中的/images/pxeboot/vmlinuz和initrd.img复制到/tftpboot下对应的目录下,因为系统比较多,我为每个系统建立了一个文件夹,具体的应该是下面这种情况的:
cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot/rh4.6/
cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot/rh5.4/
cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot/rh5.4_64/
cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot/rh6.0/
同样的方法复制每个系统光盘中的vmlinuz,到/tftpboot/下的对应目录下
e) 复制boot.msg文件:我的服务器的系统为RHEL5.4,所以我将5.4光盘下的/isolinux下的文件除了vmlinuz和initrd.img,全部复制到/tftpboot下的rh5.4目录里,目的很简单,只是想要它的引导文件罢了。
f) 在tftpboot中新建一个pxelinux.cfg目录
mkdir /tftpboot/pxelinux.cfg
cp 镜像里存放位置的isolinux/下的isolinux.cfg 到/tftpboot/pxelinux.cfg文件夹并重命名为default
然后就是编辑这个default文件了,最下面写要启动的内核文件等:
label 4.6
kernel rh4.6/vmlinuz
append ksdevice=eth0 load_ramdisk=1 initrd=rh4.6/initrd.img ks=nfs:192.168.0.1:/kickstat/ks4.cfg noipv6
这里做个解释吧,
1. vmlinuz和initrd.img一定要和实际的目录一致
2. ksdevice=eth0 指定使用的网卡
3. ks=nfs:192.168.0.1:/kickstat/ks4.cfg 一定要注意和实际的kickstat文件一致,不能有半点差错。
同理写出其他系统的
Label 5.4
kernel rh5.4/vmlinuz
append ksdevice=eth0 load_ramdisk=1 initrd=rh5.4/initrd.img ks=nfs:192.168.0.1:/kickstat/ks.cfg noipv6
label 5.4_64
kernel rh5.4_64/vmlinuz
append ksdevice=eth0 load_ramdisk=1 initrd=rh5.4_64/initrd.img ks=nfs:192.168.0.1:/kickstat/ks64.cfg noipv6
label 6.0
kernel rh6.0/vmlinuz
append ksdevice=eth0 load_ramdisk=1 initrd=rh6.0/initrd.img ks=nfs:192.168.0.1:/kickstat/ks6.cfg noipv6
注解:(label后面的字符是要输入的字符,可以修改/tftpboot/下的boot.msg,把引导界面修改成自己喜欢的,例:vim /tftpboot/boot.msg 最下面写:
rhel -->4.6
rhel -->5.4
rhel -->5.4_64
rhel -->6.0 到时候客户机在引导界面输入要安装的系统名就开始安装了,输入6.0则开始安装6.0系统。)