搭建PXE服务器安装Linux系统

lsn0LSN 2017-02-09

PXE是在没有软驱、硬盘、CD-ROM的情况下引导计算机的一种方式,也就是BIOS将使用PXE协议从网络引导。

DHCP服务器:用来动态分配IP地址(同时分配子网掩码、网关、TFTP服务器地址、启动文件名、DNS服务器、时间服务器等等)。

TFTP服务器:用来提供启动文件的下载

简单说来,PXE服务器就是DHCP服务器+TFTP服务器。网络启动过程大概是这样的(可能并不严谨):客户端发送动态获得IP地址的广播包到 网络上,DHCP服务器在收到该广播包后,发送给客户端分配IP地址的回应包,客户端收到回应包后设置自己的IP地址,然后从DHCP服务器获得启动服务 器的IP地址(DHCP服务器066选项,这就是TFTP服务器的IP地址)及启动文件名(DHCP服务器067选项,这里的启动文件名就是 pxelinux.0或者支持pxe的grub4dos的grldr,当然,也可以是startrom.n12或者使用3com Image Edit创建的pxe启动菜单文件,总之,它应该是一种由pxe启动规范规定的固定格式的可执行文件),然后客户端到联系启动服务器(TFTP服务器)获 得启动文件并执行,这样基本上就完成了pxe启动过程。

在Unix或者Linux系统下,DHCP服务器和TFTP服务器一般都是分开设置的,两台服务器甚至可以在两台不同的机器上,其实 Windows下的设置也是一样的,但在Windows下,我们可以通过使用HaneWin DHCP服务器软件或TFTPD32一个软件就搞定(我个人推荐使用HaneWin DHCP服务器软件,但TFTPD32设置起来更简单一些,就是效率有些低),详细的设置方法请自己摸索,你只要知道,在设置PXE服务器时,要设置好 DHCP和TFTP两个服务器,其中DHCP服务器要设置启动服务器名和启动文件名。

搭建环境:

推送服务器:

Ip:192.168.189.138

系统:CentOS 5.8

推送系统:RHEL 5.4

1:配置dhcpd服务。

如果没有安装dhcpd服务,请安装:

# yum -y install dhcp.x86_64
# vi /etc/dhcpd.conf
option domain-name "766.com";
default-lease-time 6000; 
max-lease-time 11400; 
authourtative; 
next-server 192.168.189.138;
ddns-update-style ad-hoc; 
log-facility local7; 
subnet 192.168.189.0 netmask 255.255.255.0{ 
range 192.168.189.150 192.168.189.195;
option domain-name-servers 192.168.189.254; 
option domain-name "766.com";
option netbios-name-servers 192.168.189.254; 
option routers 192.168.189.254; 
option broadcast-address 192.168.189.255;
default-lease-time 6000; 
max-lease-time 11400; 
filename "/kickstart/ks.cfg";
}
 
 
option space PXE; 
 
class "PXE" { 
    match if substring(optionvendor-class-identifier, 0, 9) = "PXEClient"; 
    optionvendor-encapsulated-options 01:04:00:00:00:00:ff; 
    option boot-size 0x1; 
    filename"pxelinux.0"; 
    option tftp-server-name "192.168.189.138"; 
    option vendor-class-identifier"PXEClient"; 
    vendor-option-space PXE; 
}

2:开启tftp服务:

如果没有tftp服务软件,请安装:

# yum -y installtftp.x86_64
# yum -y installxinetd.x86_64 
# yum -y installtftp-server.x86_64
 
配置tftp
# vi/etc/xinetd.d/tftp
service tftp
{
        socket_type            = dgram
        protocol              = udp
        wait                = yes
        user                = root
        server              = /usr/sbin/in.tftpd
        server_args            = -s /tftpboot
        disable              = no
        per_source            = 11
        cps                = 100 2
        flags                = IPv4
 }

3:准备推送所需的文件与目录。

把光盘或iso文件中的isolinux目录下的文件,拷贝到/tftpboot。

把pxelinux.0文件拷贝到/tftpboot:

# cp /usr/lib/syslinux/pxelinux.0 /tftpboot

创建RHEL5.4目录,把initrd.img、vmlinuz两个文件拷贝进去:

# mkdir -p /tftpboot/RHEL5.4
# mv /tftpboot/initrd.img /tftpboot/RHEL5.4
# mv /tftpboot/vmlinuz /tftpboot/RHEL5.4

创建pxelinux.cfg目录,把isolinux.cfg文件拷贝进去,并改名default:

# mv isolinux.cfg pxelinux.cfg/default
 
修改default文件参数
# vi /tftpboot/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
label RHEL5.4
 kernel RHEL5.4/vmlinuz
 append ksdevice=eth0 load_ramdisk=1 initrd=RHEL5.4/initrd.img noipv6

配置boot.msg,添加加载选项:

# vi /tftpboot/boot.msg
Install RHEL5.4  ---> RHEL5.4

4:提供安装镜像或者内容,这里使用nfs方式。

把光盘镜像或内容拷贝到/home/RedHat下。

使用nfs方式,把/home/redhat共享给192.168.189.0/24网段:

# vi/etc/exports
/home/redhat 192.168.189.0/24(rw,async,no_root_squash)

5:启动各个所需服务,并测试安装。

# service dhcpd start
# service xinetd start
# service nfs start


启动计算机,F12,选择从网卡启动,正常的话则可进入安装引导界面:

搭建PXE服务器安装Linux系统

写入RHEL5.4,进入安装。

选择安装介质获取方式,选择nfs:

搭建PXE服务器安装Linux系统

填写服务器ip与介质路径:

搭建PXE服务器安装Linux系统

进入图形安装界面,说明可以安装了:

搭建PXE服务器安装Linux系统

使用ks文件实现全自动安装:

使用system-config-kickstart创建ks文件模版(system-config-kickstart无法创建LVM,若要使用LVM,许在生成ks文件后,手动编辑)

LVM配置:

partpv.01 --size=10000 --grow
volgroupvg-001 pv.01
logvol/ --vgname=vg-001 --size=10000 --name=lv-001

ks文件中指定了键盘,语言,安装方式,分区等配置。

配置default文件,指定ks文件路径(可用nfs,ftp等方式):

append ksdevice=eth0 load_ramdisk=1 initrd=RHEL5.4/initrd.img ks=nfs:192.168.189.138:/home/redhat/ks.cfg noipv6 

启动客户端,测试自动安装。

相关推荐