一、原理篇
原理请基于博文“ubuntu 10.04系统自动安装之PXE(局域网内)”
二、实战篇
1.准备工作
PXE server 系统是:rhel-server-6.0-i386,内核版本:2.6.32-71.el6.i686
镜像下载:https://content-web.rhn.redhat.com/rhn/isos/rhel-6.0/md5sum/291d234c93442405972689b4b41c14bc/rhel-server-6.0-i386-dvd.iso?__gda__=1289452095_01d4d0835d8bf9a5fe6f7b34caea76a6&ext=.iso
关闭防火墙:service iptables stop
关闭selinux:
#vim /etc/sysconfig/selinux
SELINUX=disabled
2.yum 环境的搭建
光盘文件copy:
#mount /dev/cdrom /mnt
#mkdir /home/var/isofile -p
#cp –r /mnt/* /home/var/isofile
yum的搭建:
#vim /etc/yum.repo.d/pxeserver.repo
[base]
name=base
baseurl=file:///home/var/isofile
gpgcheck=no
测试yum的搭建是否正确: #yum list
3.dhcp的安装与配置
#yum install dhcp
配置dhcp:
#vim /etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 { #dhcpserver 分配ip的子网192.168.0网段,必须和PXE server的一个网卡同一个网段
range 192.168.0.100 192.168.0.200; #为客户端分配ip范围
option domain-name "192.168.0.105";
option domain-name-servers 192.168.0.105; #此项不写可能在自动安装时让您手动添加,这样达不到自动化的目的
option routers 192.168.0.111;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.0.105; #指定tftp server的ip
filename "pxelinux.0"; #通过tftp找到pxelinux.0文件,并下载
}
启动并设置成开机启动:
#service dhcpd start
#chkconfig dhcpd on
4.apache的安装与配置
#yum install httpd
启动并设置开机启动:
#service httpd start
#chkconfig httpd on
做安装文件的软连接:
#ln –s /home/var/isofile /var/www/html/rhel6
保证通过浏览器访问:http://192.168.0.105/rhel6 可以看到安装文件(注意:iptables 和 selinux)
5.tftp的安装与配置以及syslinux的安装
#yum install tftp*
#vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot #tftp服务目录
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
启动tftp服务并设置开机启动:
#service xinetd start
#chkconfig xinetd on
安装syslinux,主要用其提供的pxelinux.0文件
#yum install syslinux
copy内核文件到/var/lib/tftpboot目录下:
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#cp /home/var/isofile/isolinux/initrd.img /var/lib/tftpboot
#cp /home/var/isofile/isolinux/vmlinuz /var/lib/tftpboot
#cp /home/var/isofile/isolinux/vesamenu.c32 /var/lib/tftpboot
创建目录:
#mkdir /var/lib/tftpboot/pxelinux.cfg
#cp /home/var/isofile/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改default文件:
#vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 1 #这个时间改为1,一秒后自动帮您选择install
display boot.msg
menu background splash.jpg
menu title Welcome to Red Hat Enterprise Linux 6.0!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.0.105/rhel6/ks.cfg #指明ks.cfg文件的位置
6.kickstart的安装与配置
#yum install system-config-kickstart
启动kickstark并生成ks.cfg文件到/root目录下:
#system-config-kickstart &
#mv /root/ks.cfg /var/www/html/rhel6
这一步可能遇到的问题:
a.yum 安装kickstart任然缺少依赖包
解决方法:
把yum源换成Centos6.2的源,众所周知rhel和centos是兼容的;把pxeserver.repo文件内容换为:
#vim /etc/yum.repos.d/pxeserver.repo
[base]
name=CentOS-6.2 - Base
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-6.2 - Updates
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
#packages used/produced in the build but not released
[addons]
name=CentOS-6.2 - Addons
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-6.2 - Extras
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6.2 ¨C Plus
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-6.2 - Contrib
baseurl=http://mirrors.163.com/centos/6.2/os/$basearch/
http://mirrors.163.com/centos/6.2/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/6.2/os/i386/RPM-GPG-KEY-CentOS-6
这样就解决了
b.kickstart启动不了
因为kickstart启动要弹出一个图形化界面,如果你没有安装x windwow或者不支持桌面,那么kickstart就启动不了。
解决方法:安装桌面环境
#yum groupinstall “X Window System”
#yum groupinstall “Desktop”
再次#system-config-kickstart & 启动就ok了
三、测试篇
1.设置客户端网络启动,效果如下
easy吧,只要原理理解不管是http、nfs、ftp、cd-rom还是Hard Drive只要明白其原理,所有的操作系统实现自动安装就easy了。