1) 将/usr/lib/syslinux/下的启动镜像文件pxelinux.0拷到TFTP服务器/tftpboot/linux-install/下:
[root@rhel]#cp /usr/lib/syslinux/pxelinux.0 /tftpboot/linux-install/
2) 将/isolinux/下的isolinux.cfg复制到TFTP服务/tftpboot/linux-install/pxelinux.cfg/下:
[root@rhel]#cp /media/rhel4/isolinux/isolinux.cfg /tftpboot/linux-install/pxelinux.cfg/default
3) 将/isolinux/下的所有名为.msg文件拷到TFTP服务器/tftpboot/linux-install/下:[root@rhel]#cp /media/rhel4/isolinux/*.msg /tftpboot/linux-install/
4)配置客户端显示的目录,修改/tftpboot/linux-install/boot.msg,如下:
[root@rhel]#vi /tftpboot/linux-install/boot.msg
- To install or upgrade in graphical mode, press linux.
- To install or upgrade in text mode, press test.
- To install or upgrade in rescue mode, press rescue.
- To install or upgrade in auto_ks install mode, press ks.
- Use the function keys listed below for more information.
[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]^O07
5)/tftpboot/linux-install/pxelinux.cfg/default此文件可以默认不用配置,但也可以修改:
[root@rhel]#vi /tftpboot/linux-install/pxelinux.cfg/default
default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
F7 snake.msg
label linux
kernel vmlinuz
append initrd=initrd.img ramdisk_size=8192
label test
kernel vmlinuz
append initrd=initrd.img text ramdisk_size=8192
label rescue
kernel vmlinuz
append rescue initrd=initrd.img ramdisk_size=8192
label ks
kernel vmlinuz
append ks=nfs:192.168.1.65:/tftpboot/linux-install/huang-ks.cfg initrd=initrd.img ramdisk_size=8192
label expert
kernel vmlinuz
append expert initrd=initrd.img ramdisk_size=8192
label lowres
kernel vmlinuz
append initrd=initrd.img lowres ramdisk_size=8192
步骤5:
配置NFS服务器
1) 编辑NFS服务器配置文件 /etc/exports,以允许其它机器通过NFS访问目录/madia/rhel4,文件内容如下:
[root@rhel]#vi /etc/exports
/media/rhel4/ *(ro,sync)
/tftpboot/linux-install/ *(ro,sync)
2) 重新启动NFS服务以使新配置生效
[root@rhel]# service nfs restart
步骤6:
复制/root下的anaconda-ks.cfg文件到/tftpboot/linux-install/并改名为huang-ks.cfg
[root@rhel]#cp /root/anaconda-ks.cfg /tftpboot/linux-install/huang-ks.cfg
2)配置自动安装参数,修改/tftpboot/linux-install/huang-ks.cfg,如下:
[root@rhel]#vi /tftpboot/linux-install/huang-ks.cfg
#Generated by Kickstart Configurator
#platform=x86, AMD64, 或 Intel EM64T
#System language
lang zh_CN
#Language modules to install
langsupport en_US --default=zh_CN
#System keyboard
keyboard us
#System mouse
mouse
#Sytem timezone
clearpart --all
part /boot --fstype ext3 --seze=128
part / --fstype ext3 --size=4000
part /home --fstype ext3 --size=256
part swap --seze=512
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $1$cNKZCOfZ$1g1p9Q4x0x6x2sHHZYinK1
#Reboot after installation
reboot
#Install OS instead of upgrade
install
#Use NFS installation Media
nfs --server=10.0.2.202 --dir=/media/rhel4
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --linux --initlabel
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=dhcp --device=eth0
#Firewall configuration
firewall --disabled
#Do not configure XWindows
skipx
#Package install information
%packages --resolvedeps
@everything
kernel
grub
kernel-devel
e2fsprogs
步骤7:
让DHCP服务器在chroot jail(chroot“监牢”)中运行:
dhcpd运行在jail需要几个库文件,可以使用ldd(library Dependency Display缩写)命令,ldd作用是显示一个可执行程序必须使用的共享库。
[root@rhel]#ldd dhcpd
[root@rhel]#ln –s libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
[root@rhel]#ln –s /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
在“监牢”中创建lib目录,并将库文件复制到其中。手工完成比较麻烦的,此时可以用jail软件包来帮助简化chroot“监牢”建立的过程:
1)Jail软件的编译和安装
Jail官方网站是:http://www.jmcresearch.com/ ,最新版本:1.9a。
[root@rhel]#Wget http://www.jmcresearch.com/static/dwn/projects/jail/jail_1.9a.tar.gz #下载jail软件
[root@rhel]#tar xzvf jail.tar.gz #解压缩到当前目录
[root@rhel]#vi jail/READEM;vi jail/doc/INSTALL #查看安装文档说明
[root@rhel]# cd jail/src/Makefiles; #把安装路径/tmp/jail为/usr/local
[root@rhel]#make; make install
2)用jail创建监牢
jail软件包提供mkjailenv、addjailuser和addjailsw三个Perl脚本作为其核心命令。
mkjailenv:创建chroot“监牢”目录,并且从真实文件系统中拷贝基本的软件环境。addjailsw:从真实文件系统中拷贝二进制可执行文件及其相关的其它文件(包括库文件、辅助性文件和设备文件)到该“监牢”中。addjailuser:创建新的chroot“监牢”用户。
停止当前dhcpd服务,然后建立chroot目录:
[root@rhel]#/sbin/service dhcpd start
[root@rhel]#mkjailenv /chroot/
[root@rhel]#mkjailenv
为“监牢”添加dhcpd程序的过程:
[root@rhel]# addjailsw /var/chroot/ -P /usr/sbin/dhcpd
[root@rhel]# addjailsw
将dhcpd的相关文件拷贝到“监牢”中(可做可不做):
[root@rhel]# mkdir -p /chroot/dhcp/etc
[root@rhel]# cp /etc/dhcpd.conf /chroot/dhcp/etc/
[root@rhel]# mkdir -p /chroot/dhcp/var/state/dhcp
[root@rhel]# touch /chroot/dhcp/var/state/dhcp/dhcp.leases
重新启动dhcpd服务器:
[root@rhel]# /chroot/usr/sbin/dhcpd
使用ps命令检查dhcpd进程:
[root@rhel]# ps -ef | grep dhcpd
root 2402 1 0 14:25 ? 00:00:00 /chroot/usr/sbin/dhcpd
root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd
注意此时进程名称已经改变,使用检查dhcpd运行的端口:
[root@rhel]# netstat -nutap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd
端口号没有改变。现在dhcpd已经成功运行在“监牢”中。
步骤8:
启动客户机进行测试,可以在WinXP SP2下的VMWare5.5.1中新建一个虚拟机,从网络启动安装来测试是否配置成功。
对服务器而言,要确保网卡正常工作,并具备广播功能。对客户机而言,还要确保客户机的网卡正常工作。如果dhcpd进程没有启动,那么可以浏览消息文件/var/log/messages。
网络中的客户机却没办法取得IP地址一般是Linux DHCP服务器的网卡没有设置具有MULTICAST功能。为了让dhcpd(dhcp程序的守护进程)能够正常的和DHCP客户机沟通,需要修改路由表以激活MULTICAST功能;
[root@rhel]# route add -host 255.255.255.255 dev eth0
如果报错:255.255.255.255:Unkown host
[root@rhel]# vi /etc/hosts#加入一行:
255.255.255.255 dhcp
DHCP客户端程序和DHCP服务器不兼容,不同版本使用DHCP客户端程序和DHCP服务器也不相同。Linux提供了四种DHCP客户端程序:pump, dhclient, dhcpxd, 和dhcpcd。了解不同Linux发行版本的服务器端和客户端程序对于常见错误排除是必要的。脚本 附加配置文件
Red Hat Linux 9.0的dhclient 无 /sbin/ifup /etc/sysconfig/network,/etc/sysconfig/network-scripts/ifcfg-eth0
参考上面的方法,大家可以尝试配出完美的服务器来。