pxe(Pre-boot Execution Environment)网络安装操作系统,适用于无光驱或者集中安装的主机环境中。
Pxe原理
PXE由Intel设计,可使计算机通过网络启动的协议。协议分为client和server端,PXE client在网卡ROM中,当计算机启动时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
安装步骤
1.客户端从本机PXE网卡启动,向网络中DHCP服务器索取IP地址
2.DHCP服务器返回给客户端IP地址以及bootstrap文件放置的位置(通常放置在网络中TFTP服务器中)
3.客户端向网络中TFTP服务器索取bootstrap文件
4.客户端取得bootstrap文件后之执行该文件
5.根据bootstrap执行结果,通过TFTP服务器加载内核和文件系统
6.进入安装画面, 此时可以通过选择FTP,HTTP,NFS方式之一进行安装
实现PXE网络安装需要4个因素
1.客户机的网卡必须为PXE网卡
2.网络中必须要有DHCP和TFTP服务器,该两个服务器可以是同一台物理主机
3.所安装的操作系统必须支持网络安装,即必须提供自己的bootstrap
4.必须要有FTP,HTTP,NFS至少一个服务器,也可与DHCP、TFTP服务器同为一台物理主机
配置过程
PXE网卡:现在市面的网卡都支持PXE
为了简便,将dhcp和tftp都配置在一台服务器中
配置DHCP服务器
# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.137.100 netmask 255.255.255.0 { #设置IP范围
option routers 192.168.137.128; #设置客户端默认网关
option subnet-mask 255.255.255.0; 子网掩码
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.137.128 192.168.137.254; #设置动态IP地址的范围
default-lease-time 21600; #设置默认租约时间
max-lease-time 43200; #设置最大租约时间
filename “pxelinux.0”; #filename指明bootstrap所在的位置,指向tFTP服务器的某个目录,增加 tftp-server 需要推送给客户端的启动文件:
}
安装tftp
tftp-0.49-2.i386.rpm为客户端程序;tftp-server-0.49-2.i386.rpm为服务器端程序;
vi /etc/xinetd.d/tftp将disable改为no即可,其他地方无需修改。
service tftp
{ socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot #将/tftpboot作为root目录
disable = no #设置启动时加载该服务
per_source = 11
cps = 100 2
flags = IPv4 }
Bootstrap
对于支持网络安装的OS,Bootstrap可从安装源文件找到,RedHat的bootstrap即/usr/lib/syslinux/pxelinux.0,
FreeBSD的bootstrap即/boot/pxeboot
[root@localhost ~]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
[root@localhost ~]# cp /mnt/isolinux/* /tftpboot/ #拷贝光盘目录/isolinux下的文件到tftpboot
配置RedHat
在/tftpboot创建目录pxelinux.cfg,放置syslinux配制文件。Sysconfig配制文件有现成的可用,/tftpboot/pxelinux.cfg
/isolinux/下有文件isolinux.cfg,拷贝到目录/tftpboot/pxelinux.cfg/下并改名为default
[root@localhost ~]# cp /tftpboot/isolinux.cfg /tftpboot/pxelinux.cfg/
[root@localhost ~]# mv /tftpboot/pxelinux.cfg/isolinux.cfg /tftpboot/pxelinux.cfg/default
文件Default无需修改
该文件告诉启动后使用哪个内核引导
配置安装nfs
需要安装nfs-utils*及portmap
编辑/etc/exports添加
/mnt/freebsd *(rw) #该网络共享路径和光盘挂载路径以及引导后弹出的RHEL directory路径需要一致
然后启动nfs服务
[root@localhost ~]# /etc/init.d/nfs start
[root@localhost ~]# /etc/init.d/portmap start
至此,准备阶段的四个步骤DHCP、TFTP、配置redhat、NFS的过程完毕,以下开始安装过程
网络安装过程
[root@localhost ~]# mkdir /mnt/freebsd
[root@localhost ~]# mount -o loop /dev/cdrom /mnt/freebsd/ #使用 loop 模式用来将一个文件当成硬盘分割挂上系统
无需将光盘镜像文件拷贝大系统目录中,减少系统磁盘使用空间
客户端安装
修改客户端bios为网络启动,启动时获取IP地址,然后选择安装模式……和本地安装一样,在不叙述。