PXE 技術(shù)簡單說就是利用網(wǎng)卡上的PXE BootROM(自啟動(dòng)芯片)截取系統(tǒng)引導(dǎo)控制權(quán),并通過DHCP指定的TFTP服務(wù)下載系統(tǒng)啟動(dòng)所需的鏡像文件。BootROM目前是通用網(wǎng)卡默認(rèn)的硬件固件,此技術(shù)主要用于遠(yuǎn)程系統(tǒng)的安裝和部署等環(huán)境。
嚴(yán)格來說,PXE 并不是一種安裝方式,而是一種引導(dǎo)方式。進(jìn)行 PXE 安裝的必要條件是在要安裝的計(jì)算機(jī)中必須包含一個(gè) PXE 支持的網(wǎng)卡(NIC),即網(wǎng)卡中必須要有 PXE Client。PXE 協(xié)議可以使計(jì)算機(jī)通過網(wǎng)絡(luò)啟動(dòng)。此協(xié)議分為 Client端和 Server 端,而PXE Client則在網(wǎng)卡的 ROM 中。當(dāng)計(jì)算機(jī)引導(dǎo)時(shí),BIOS 把 PXE Client 調(diào)入內(nèi)存中執(zhí)行,然后由 PXE Client 將放置在遠(yuǎn)端的文件通過網(wǎng)絡(luò)下載到本地運(yùn)行。運(yùn)行 PXE 協(xié)議需要設(shè)置 DHCP 服務(wù)器和 TFTP 服務(wù)器。DHCP 服務(wù)器會(huì)給 PXE Client(將要安裝系統(tǒng)的主機(jī))分配一個(gè) IP 地址,由于是給 PXE Client 分配 IP 地址,所以在配置 DHCP 服務(wù)器時(shí)需要增加相應(yīng)的 PXE 設(shè)置。此外,在 PXE Client 的 ROM 中,已經(jīng)存在了 TFTP Client,那么它就可以通過 TFTP 協(xié)議到 TFTP Server 上下載所需的文件了。
PXE的工作過程:
1. PXE Client 從自己的PXE網(wǎng)卡啟動(dòng),向本網(wǎng)絡(luò)中的DHCP服務(wù)器索取IP;
2. DHCP 服務(wù)器返回分配給客戶機(jī)的IP 以及PXE文件的放置位置(該文件一般是放在一臺(tái)TFTP服務(wù)器上) ;
3. PXE Client 向本網(wǎng)絡(luò)中的TFTP服務(wù)器索取pxelinux.0 文件;
4. PXE Client 取得pxelinux.0 文件后之執(zhí)行該文件;
5. 根據(jù)pxelinux.0 的執(zhí)行結(jié)果,通過TFTP服務(wù)器加載內(nèi)核和文件系統(tǒng) ;
6. 進(jìn)入安裝畫面, 此時(shí)可以通過選擇HTTP、FTP、NFS 方式之一進(jìn)行安裝;
詳細(xì)工作流程,請參考下面這幅圖:
實(shí)際工作中,我們經(jīng)常會(huì)遇到這樣的情況:想要安裝Linux但是計(jì)算機(jī)不帶光驅(qū)或軟驅(qū),或者是筆記本配置的非標(biāo)準(zhǔn)的軟驅(qū)和光驅(qū),如1394接口,USB接口等,在Linux安裝時(shí)所引導(dǎo)的Linux內(nèi)核一般都不會(huì)帶這些接口的驅(qū)動(dòng),所以也無法通過本地安裝Linux,此外,在一些場合,如機(jī)房,IT實(shí)驗(yàn)室,工廠生產(chǎn)線,有大量的計(jì)算機(jī)需要同時(shí)安裝Linux,如果通過光驅(qū)的方式一個(gè)個(gè)安裝,不僅效率低,也不利于維護(hù)。這是時(shí)候你就需要PXE的強(qiáng)大功能了。
1.操作系統(tǒng)安裝的流程
通用流程:首先,bios啟動(dòng),選擇操作系統(tǒng)的啟動(dòng)(安裝)模式(此時(shí),內(nèi)存是空白的),然后根據(jù)相關(guān)的安裝模式,尋找操作系統(tǒng)的引導(dǎo)程序(不同的模式,對應(yīng)不同的引導(dǎo)程序當(dāng)然也對應(yīng)著不同的引導(dǎo)程序存在的位置),引導(dǎo)程序加載文件系統(tǒng)初始化(initrd)程序和內(nèi)核初始鏡像(vmlinuz),完成操作系統(tǒng)安裝前的初始化;接著,操作系統(tǒng)開始安裝相關(guān)的系統(tǒng)和應(yīng)用程序。
硬盤安裝的流程:bios啟動(dòng)——MBR尋找grub——grub程序讀取menu.list等配置文件,找到內(nèi)核啟動(dòng)鏡像和相關(guān)初始化程序,安裝(或者啟動(dòng))。
PXE(Pre-boot Execution Environment)是由Intel設(shè)計(jì),可以使計(jì)算機(jī)通過網(wǎng)絡(luò)啟動(dòng)的協(xié)議。協(xié)議分為client和server兩端,PXE client在網(wǎng)卡的ROM中,當(dāng)計(jì)算機(jī)啟動(dòng)時(shí),BIOS把PXE client調(diào)入內(nèi)存執(zhí)行,并顯示出命令菜單,經(jīng)用戶選擇后,PXE client將放置在遠(yuǎn)端的操作系統(tǒng)通過網(wǎng)絡(luò)下載到本地運(yùn)行。
pxe網(wǎng)絡(luò)安裝的流程:bios啟動(dòng)——pxe client中的程序進(jìn)入內(nèi)存,顯示命令菜單——此程序開始尋找網(wǎng)絡(luò)引導(dǎo)程序(bootstrap文件,這個(gè)文件的名字隨著發(fā)行版的不同而不同,在centos中,它是pxelinux.0)——引導(dǎo)程序讀取配置文件pxelinux.cfg,獲得系統(tǒng)初始化的相關(guān)文件信息——系統(tǒng)啟動(dòng),開始進(jìn)行安裝。
安裝流程
客戶機(jī)從自己的PXE網(wǎng)卡啟動(dòng),向本網(wǎng)絡(luò)中的DHCP服務(wù)器索取IP,并搜尋引導(dǎo)文件的位置
DHCP服務(wù)器返回分給客戶機(jī)IP以及bootstrap文件的放置位置(該文件一般是放在一臺(tái)TFTP服務(wù)器上)
客戶機(jī)向本網(wǎng)絡(luò)中的TFTP服務(wù)器索取bootstrap文件
客戶機(jī)取得bootstrap文件后之執(zhí)行該文件
根據(jù)bootstrap的執(zhí)行結(jié)果,通過TFTP服務(wù)器加載內(nèi)核和文件系統(tǒng)
流程小結(jié)
總結(jié)就是:
1)網(wǎng)卡的client 網(wǎng)卡rom 尋找dhcp服務(wù)器,由/etc/dhcp.conf得到ip和引導(dǎo)程序所在地點(diǎn)
2)有dhcp.conf(引導(dǎo)程序文件名)和tftp的配置(tftp跟路徑,里面有引導(dǎo)程序和系統(tǒng)初始化程序),得到引導(dǎo)程序pxelinux啟動(dòng)文件的絕對路徑,運(yùn)行引導(dǎo)程序,讀取啟動(dòng)配置文件pxelinux.cfg/default,得到操作系統(tǒng)初始化的兩個(gè)相關(guān)文件
3)選擇安裝方式
客戶端廣播dhcp請求——服務(wù)器相應(yīng)請求,建立鏈接——由dhcp和tftp配置得到ip還有引導(dǎo)程序所在地點(diǎn)——客戶端下載引導(dǎo)程序并開始運(yùn)行——引導(dǎo)程序讀取
進(jìn)入安裝畫面, 此時(shí)可以通過選擇FTP,HTTP,NFS方式之一進(jìn)行安裝
相關(guān)文件位置與內(nèi)容:
dhcp配置文件/etc/dhcpd/dhcp.conf——ip管理與引導(dǎo)程序名稱
tftp配置文件/etc/xinetd.d/tftp——tftp根目錄,和上面的引導(dǎo)程序名稱組成完整路徑
引導(dǎo)程序讀取的配置文件/tftpboot/pxelinux.cfg/default——啟動(dòng)內(nèi)核其他
安裝前的準(zhǔn)備:
軟硬件配置:網(wǎng)卡要支持pxe啟動(dòng),操作系統(tǒng)也要支持pxe啟動(dòng),另外有ftp服務(wù)器用于存儲(chǔ)操作系統(tǒng)的安裝文件,dhcp服務(wù)器用于分配ip
服務(wù)器配置
1)配置dhcp服務(wù)器
由于PXE客戶機(jī)通常是尚未裝系統(tǒng)的裸機(jī),因此為了和服務(wù)器取得聯(lián)系并正確下載相關(guān)引導(dǎo)文件,需要預(yù)先配置好DHCP服務(wù)來自動(dòng)分配地址并告知引導(dǎo)文件的位置。
[root@localhost /]#yum -y install dhcp
[root@localhost /]#vim /etc/dhcp/dhcp.conf
ddns-update-style none;
default-lease-time 21600;
max-lease-time 43200;
option domain-name “benet.com”;
option domain-name-servers 8.8.8.8;
subnet 192.168.122.0 netmask 255.255.255.0 {
option routers 192.168.122.1;
option subnet-mask 255.255.255.0;
range 192.168.122.100 192.168.122.200;
next-server 192.168.122.1; #指定TFTP服務(wù)器的地址
filename “pxelinux.0”; #指定PXE引導(dǎo)程序的文件名
}
[root@localhost /]#service dhcpd start
注明:filename這一個(gè)選項(xiàng)很重要,它的作用是指明bootstrap所在的位置,一般是指向一個(gè)TFTP服務(wù)器的某個(gè)目錄下。這里是相對路徑,其中路徑的上半部分在的一個(gè)配置文件之中。
2)配置tftp服務(wù)器
TFTP服務(wù)的配置文件是/etc/xinetd.d/tftp,RedHat9 默認(rèn)安裝已經(jīng)生成了該文件,不過Centos沒有安裝這個(gè)軟件,需要安裝tftpserver,會(huì)自動(dòng)生成這個(gè)配置文件。
service tftp
{
disable = no #這里的yes需要改成no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
注明:這個(gè)文件基本上不用改動(dòng),但是需要注意的的是server_args= -s /tftpboot這一行,它的含義是將/tftpboot作為root目錄,這樣在dhcpd.conf中的filename一行就應(yīng)該寫bootstrap的相對路徑: filename “pxelinux.0”,這是出于安全方面考慮的。如果你去掉了-s這個(gè)參數(shù),那幺就要在filename一行指出bootstrap的絕對路徑: filename “/tftpboot/pxelinux.0”.注意,這里-s的內(nèi)容會(huì)因?yàn)榘l(fā)行版的內(nèi)容不同而不同,一般不用改動(dòng)。
tftp服務(wù)器的配置方法如下:
在網(wǎng)絡(luò)協(xié)議中,TFTP協(xié)議大家應(yīng)該是比較了解的。那么今天我們則重點(diǎn)講解一下關(guān)于配置tftp服務(wù)器的內(nèi)容。TFTP(Trivial File Transfer Protocol簡樸文件傳輸協(xié)議)是TCP/IP協(xié)議族中的一個(gè)用來在客戶機(jī)與服務(wù)器之間進(jìn)行簡單文件傳輸?shù)膮f(xié)議,提供不復(fù)雜、開銷不大的文件傳輸服務(wù)。TFTP承載在UDP上,提供不可靠的數(shù)據(jù)流傳輸服務(wù),不提供存取授權(quán)與認(rèn)證機(jī)制,使用超時(shí)重傳方式來保證數(shù)據(jù)的到達(dá)。與FTP相比,TFTP的大小要小的多,TFTP是用來下載遠(yuǎn)程文件的最簡單網(wǎng)絡(luò)協(xié)議,它基于UDP協(xié)議而實(shí)現(xiàn)。它使用的是UDP的69端口 。
配置tftp服務(wù)器1、檢查系統(tǒng)是否安裝tftp服務(wù)
這里指定/tftpboot 為tftp服務(wù)器的根目錄
參數(shù)-s指定chroot,-c指定了可以創(chuàng)立文件。
配置tftp服務(wù)器3、創(chuàng)立tftp根目錄,關(guān)閉防火墻,啟動(dòng)tftp-server
添加引導(dǎo)程序
Bootstrap對于支持網(wǎng)絡(luò)安裝的操作系統(tǒng),Bootstrap基本上都可以從安裝源文件上找到,對于本例來說,centos的bootstrap就是cdrom:/isolinux/pxelinux.0我們把它們都拷貝到tftpboot下.
編輯引導(dǎo)配置文件
把centos第一張安裝光盤上images/pxeboot目錄下的initr.img和vmlinux也考到tftpboot/目錄下。在/tftpboot創(chuàng)建pxelinux.cfg目錄,用于放isolinux的配制文件。光盤isolinux/下有一個(gè)isolinux.cfg文件,把它拷貝到/tftpboot/pxelinux.cfg/目錄下并改名為default.下面為修改后的default文件:
default linux
prompt 1
timeout 30
label linux
kernel vmlinuz
append ks=ftp://192.168.122.1/centos6.3/ksftpsimple.cfg,initrd=initrd.img
這個(gè)Default 文件很容易看懂,就是告訴啟動(dòng)后使用那個(gè)內(nèi)核引導(dǎo),使用的配置文件在什么地方。
開始安裝
1)確保:服務(wù)器端剛才配置的幾個(gè)服務(wù)都處于開啟狀態(tài);關(guān)閉防火墻;bios中選擇從網(wǎng)絡(luò)啟動(dòng)
2)剩下的步驟和從硬盤安裝相同
評論
查看更多