一、PXE网络启动安装原理:
1.客户端BIOS设置为从支持PXE的网卡启动。
2.客户端连接到DHCP服务器并获得本机IP地址。
3.客户端从TFTP服务器下载pxelinux.0,根据配置文件(default)下载指定的vmlinuz,initrd 启动系统内核。
4.客户端加载初始化镜像文件。
5.客户端安装初始化完成,到指定的位置(NFS|FTP|HTTP 服务器上)下载软件包(镜像文件)进行安装操作系统。
Linux 服务器端根据不同的设置,可实现客户端LINUX,如OPEN SUSE LINUX,UBUNTU,Fedora,CentOS等的手动或自动安装,配置救援模式等,具体服务器端配置略有不同。本人使用一台Cent OS 5.3虚拟机作为安装服务器,以下相同。
二.安装配置TFTP服务器端:
通过 YUM 和RPM的安装方式都可以,这里以YUM为例
1.yum install tftp-server -y(注意安装TFTP客户端为yum install tftp -y )
2.配置tftp文件, /etc/xinetd.d/tftp,
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot (TFTP根目录,没有可创建)
disable = no (将这里改为no,即使用xinetd来启动tftp)
per_source = 11
cps = 100 2
flags = IPv4
}
3.service xinetd restart 启动TFTP服务器端
4.netstat -nul测试TFTP 看到UDP 69端口启动了即可
三.安装配置DHCP服务器端:
安装DHCP服务端的服务器本身需要设置为静态IP,个人虚拟机设置IP为192.168.43.128。
1.yum install dhcpd (安装DHCP服务端)
2.编辑 /etc/dhcpd.conf 配置文件
ddns-update-style interim;
ignore client-updates;
allow booting; (允许开机引导DHCP)
allow bootp;
server-name “PXE Server by Jackq.com”;
subnet 192.168.43.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.43.130 192.168.43.250; (制定允许分配的IP地址段)
}
option subnet-mask 255.255.255.0; (子网掩码)
option routers 192.168.43.2; (默认网关)
option domain-name-servers 202.106.0.20,8.8.8.8; (默认DNS)
option broadcast-address 192.168.43.255; (广播地址)
default-lease-time 86400; (为客户设置默认地址租期)
max-lease-time 129600; (最长地址租期)
next-server 192.168.43.128; (指定安装的服务器端地址,即是NFS地址)
filename “/pxelinux.0″; (指定pxelinux.0的位置,/tftpboot相对路径)
3.service dhcp restart 启动DHCP服务器 (/etc/rc.d/init.d/dhcpd restart方式启动,/usr/sbin/dhcpd -d -f 可以测试启动,查看启动过程中的错误)
4.ps aux | grep dhcpd 检查进程是否已经启动
(/etc/sysconfig/dhcpd 文件可以指定DHCP那块网卡 /var/lib/dhcpd/dhcpd.leases 是DHCP客户机地址租约的数据可文件)
四.安装配置NFS (HTTP,FTP,方式省略):
1.yum install nfs-utils nfs-ntils-lib portmap (安装NFS必须安装portmap)
2.创建要共享的目录 /centos5
3.编辑 /etc/exports 文件,在其中增加
/centos5 *(ro,sync)
说明:
或者也可以这样写 /centos5 192.168.43.0/24(rw,root_squash,no_all_squash,sync)
rw:可读写的权限;
ro:只读的权限;
no_root_squash:登入到NFS主机的用户是ROOT用户,他就拥有ROOT的权限,此参数很不安全,建议不要使用。
root_squash:在登入 NFS 主使用分享之目的使用者如果是 root
all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody。
anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。
anongid:同 anonuid ,但是成 group ID 就是
sync:资料同步写入存储器中。
async:资料会先暂时存放在内存中,不会直接写入硬盘。
insecure 允许从这台机器过来的非授权访问。
4.启动NFS
service portmap start
service nfs start
或者
/etc/rc.d/init.d/portmap start
/etc/rc.d/init.d/nfs start
5.修改/etc/exports文件后 exportfs -a可以立刻生效
6.本地测试 showmount -e localhost
可以看到输出为
Export list for localhost:
/centos5 *
7.service autofs status
8.如果需要开机挂载的话别忘了在/etc/fstab或者/etc/rc.local中加入挂载内容。
五、制作配置安装引导文件:
/tftpboot下目录文件结构
./
|– centos5
| |– initrd.img
| `– vmlinuz
|– msgs
| |– boot.msg
| |– expert.msg
| |– general.msg
| |– param.msg
| |– rescue.msg
| `– snake.msg
|– pxelinux.0
`– pxelinux.cfg
`– default
pxelinux.0文件 msgs目录文件可以通过安装 yum install system-config-netboot 获得。initrd.img,vmlinuz可以从centos 安装光盘上 /images/pxeboot/写拷贝。
编辑 /tftpboot/pxelinux.cfg/default 文件
default local
timeout 100
prompt 1
display msgs/boot.msg
F1 msgs/boot.msg
F2 msgs/general.msg
F3 msgs/expert.msg
F4 msgs/param.msg
F5 msgs/rescue.msg
F7 msgs/snake.msglabel local
localboot 1label 0
localboot 1label 1
kernel centos5/vmlinuz
append initrd=centos5/initrd.img ramdisk_size=8192 devfs=nomountlabel 2
kernel debian5/vmlinuz-2.6.31-all
append ks=nfs:192.168.43.128:/netinstall/rhel5u3/ks.cfg initrd=rhel5u3/initrd.img ramdisk_size=8192 devfs=nomountlabel 3
kernel memtest
append -label 4
kernel vmlinuz
append initrd=initrd.img text
记得要把光盘或者镜像 mount /dev/cdrom /centos5 到NFS的共享目录中,然后重启一次所有服务
service dhcp restart
service xinetd restart
service portmap restart
service nfs restart
从客户端启动之后,会看到一个绿色的小蛇然后输入1就可以开始安装了,本人使用的是菜单1,其他大家自己加好了。