首頁 > 軟體

搭建PXE伺服器安裝Linux系統

2020-06-16 17:21:39

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,選擇從網絡卡啟動,正常的話則可進入安裝引導介面:

寫入RHEL5.4,進入安裝。

選擇安裝媒介獲取方式,選擇nfs:

填寫伺服器ip與媒介路徑:

進入圖形安裝介面,說明可以安裝了:

使用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 

啟動用戶端,測試自動安裝。


IT145.com E-mail:sddin#qq.com