1. 前言
使用PXE + DHCP + TFTP + NFS + Kickstart无盘安装linux.我把NFS,DHCP,TFTP都放在了192.168.100.149机器上。
因为公司经常要安装大指的linux系统,操作系统配置都一样,重复安装时烦琐的输入选择/Next和选安装包,重复劳动。
本安装测试通过,已经在使用之中。
本配置需要客户机支持PXE的网卡。
另外需要注意,安装用的局域网最后与其它网物理断开,否则,嘿嘿,注意不要把办公用的机器重启时自动格式化安装为linux.不过,办公电脑支持网络引导并配置为网络引导,且为scsi硬盘时才会发生这种灾难性的错误。
配置中,参考了许多网络上的文章.在此表示感谢
2. 拷贝光盘镜像文件
使用了nfs文件系统来网络安装,当然也可以使用FTP或HTTP,但这样的缺点是必须把光盘镜像解开,使用软件包的格式。而NFS则直接可使用光盘镜像,这样比较快。
把操作系统的镜像复制到/data/iso/rhas4u4下
# ls -lh /data/iso/rhas4u4
total 2.1G
-rw-r--r-- 1 root root 512 Sep 20 09:47 rhas4u4.md5.txt
-rw-r--r-- 1 root root 174M Sep 20 09:47 RHEL4-U4-i386-AS-disc1.iso
-rw-r--r-- 1 root root 626M Sep 20 09:45 RHEL4-U4-i386-AS-disc2.iso
-rw-r--r-- 1 root root 633M Sep 20 09:48 RHEL4-U4-i386-AS-disc3.iso
-rw-r--r-- 1 root root 617M Sep 20 09:46 RHEL4-U4-i386-AS-disc4.iso
-rw-r--r-- 1 root root 82M Sep 20 09:48 RHEL4-U4-i386-AS-disc5.iso
3. 设置nfs
默认的应该安装了nfs服务。配置nfs,在/etc/exports写入下面一行:
/data/iso *(ro,no_root_squash,sync)
# cat /etc/exports
/data/iso *(ro,no_root_squash,sync)
然后
# chkconfig --level 345 portmap on
# chkconfig --level 345 nfs on
# service portmap restart
# service nfs restart
4. 设置dhcp
如果没有安装dhcp,安装dhcp服务包.安装好后,编辑/etc/dhcpd.conf(默认配置文件):
# cat /etc/dhcpd.conf
ddns-update-style none;
option domain-name "localhost";
option subnet-mask 255.255.255.0;
allow bootp;
allow booting;
option ip-forwarding false; # No IP forwarding
option mask-supplier false; # Don't respond to ICMP Mask req
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.240 192.168.100.254;
option routers 192.168.100.11;
option subnet-mask 255.255.255.0;
option nis-domain "localhost";
option domain-name "localhost.localdomain";
option domain-name-servers 202.96.209.6;
default-lease-time 21600;
max-lease-time 43200;
filename "/pxelinux.0";
}
然后启动dhcpd:
# chkconfig --level 345 dhcpd on
# service dhcpd restart
5. 设置tftp
如果没有安装tftp服务,安装(rhel4.4为tftp-server包).
拷贝PXE文件
挂载第一张光盘镜像,复制里面的内核文件.把内核和符号表复制到/tftpboot目录,并建立/tftpboot/pxelinux.cfg目录,把isolinux.cfg复制到下面并改名为default,并添加一个label(最后能在display显示的文件中提示安装哪个系统输入什么label,这样如果网络安装多个系统时使用):
# mount -o loop /data/iso/rhas4u4/RHEL4-U4-i386-AS-disc1.iso /mnt
# cd /mnt/isolinux
# cp initrd.img /tftpboot/initrd-rhas4u4.img
# cp vmlinuz *.msg /tftpboot/
# mkdir /tftpboot/pxelinux.cfg
# cp isolinux.cfg /tftpboot/pxelinux.cfg/default
# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
# chkconfig --level 345 xinetd on
# service xinetd restart
# cat /tftpboot/pxelinux.cfg/default
default rhas4u4
prompt 1
timeout 3600
display snake.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
F7 snake.msg
label rhas4u4
kernel vmlinuz
append ks=nfs:192.168.100.149:/data/iso/rhas4u4.cfg ksdevice=eth0 initrd=initrd-rhas4u4.img ramdisk_size=8192
label linux
kernel vmlinuz
append initrd=initrd.img ramdisk_size=8192
6. 准备kickstart配置文件。
拿一台已经安装好了的系统中/root/anaconda-ks.cfg文件存为/data/iso/rhas4u4.cfg,并做修改:
其中修改后的前几行:
install
nfs --server=192.168.100.149 --dir=/data/iso/rhas4u4
lang en_US.UTF-8
langsupport --default=en_US.UTF-8 en_US.UTF-8
keyboard us
#xconfig --card "ATI Rage XL" --videoram 8128 --hsync 30-85 --vsync 50-160 --resolution 800x600 --depth 16 --startxonboot --defaultdesktop kde
skipx
network --device eth0 --bootproto dhcp
关于分区的几行(这个文件中分区的几行注释掉了,要使用则取消修改并取消注释
clearpart --all
part /boot --fstype ext3 --size=100 --ondisk=sda
part swap --size=4096 --ondisk=sda
part / --fstype ext3 --size=100 --grow --ondisk=sda
下面就是软件包的配置了,视情况做修改。

