PXE(Pre-boot Execution Environment,預啓動執行環境)是由Intel公司開發的最新技術,工做於Client/Server的網絡模式,支持工做
站經過網絡從遠端服 務器下載映像,並由此支持經過網絡啓動操做系統,在啓動過程當中,終端要求服務器分配IP地址,再用TFTP(trivial
file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件
包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操做系統。
嚴格來講,PXE 並非一種安裝方式,而是一種引導方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網
卡(NIC),即網卡中必需要有 PXE Client。PXE 協議可使計算機經過網絡啓動。此協議分爲 Client端和 Server 端,而PXE Client則
在網卡的 ROM 中。當計算機引導時,BIOS 把 PXE Client 調入內存中執行,而後由 PXE Client 將放置在遠端的文件經過網絡下載到本
地運行。運行 PXE 協議須要設置 DHCP 服務器和 TFTP 服務器。DHCP 服務器會給 PXE Client(將要安裝系統的主機)分配一個 IP 地
址,因爲是給 PXE Client 分配 IP 地址,因此在配置 DHCP 服務器時須要增長相應的 PXE 設置。此外,在 PXE Client 的 ROM 中,已經
存在了 TFTP Client,那麼它就能夠經過 TFTP 協議到 TFTP Server 上下載所需的文件了。html
PXE的工做過程:
- PXE Client 從本身的PXE網卡啓動,向本網絡中的DHCP服務器索取IP;
- DHCP 服務器返回分配給客戶機的IP 以及PXE文件的放置位置(該文件通常是放在一臺TFTP服務器上) ;
- PXE Client 向本網絡中的TFTP服務器索取pxelinux.0 文件;
- PXE Client 取得pxelinux.0 文件後之執行該文件;
- 根據pxelinux.0 的執行結果,經過TFTP服務器加載內核和文件系統 ;
- 進入安裝畫面, 此時能夠經過選擇HTTP、FTP、NFS 方式之一進行安裝;linux
Kickstart是一種無人值守的安裝方式。它的工做原理是在安裝過程當中記錄典型的須要人工干預填寫的各類參數,並生成一個名爲ks.cfg的
文 件。若是在安裝過程當中(不僅侷限於生成Kickstart安裝文件的機器)出現要填寫參數的狀況,安裝程序首先會去查找Kickstart生成的
文件,如 果找到合適的參數,就採用所找到的參數;若是沒有找到合適的參數,便須要安裝者手工干預了。因此,若是Kickstart文件涵蓋
了安裝過程當中可能出現的 全部須要填寫的參數,那麼安裝者徹底能夠只告訴安裝程序從何處取ks.cfg文件,而後就去忙本身的事情。等安
裝完畢,安裝程序會根據ks.cfg中的設 置重啓系統,並結束安裝。vim
PXE+Kickstart 無人值守安裝操做系統完整實驗過程以下:緩存
實驗拓撲服務器
2. 準備工做網絡
實驗環境:VirtualBox 系統平臺:CentOS 7 系統狀態:最小化安裝 網絡模式:nat模式 DHCP / TFTP IP:192.168.8.10 HTTP / FTP / NFS IP:192.168.8.10
2.2 爲了實驗方便,先關閉防火牆和SELinux
[root@CentOS ~]# setenforce 0
修改配置文件/etc/selinux/config 內容以下工具
2.3 在服務器中,生成ks.cfg 文件須要system-config-kickstart 工具,而此工具依賴於X Windows,因此咱們須要安裝X Windows 和Desktop 並重啓系統spa
這裏從鏡像光盤安裝相關組件,首先掛載光盤操作系統
修改源文件:/etc/yum.repos.d/CentOS-Base.repo爲以下內容,記得先備份rest
刷新緩存
安裝組件:
[root@CentOS ~]#yum groupinstall "X Window System"
[root@CentOS ~]# yum groupinstall "GNOME Desktop"
三、配置HTTP安裝方式
系統的安裝方式能夠選擇HTTP、FTP、 NFS,咱們這裏介紹HTTP方式的安裝,其餘兩種方式的安裝,你們能夠自行百度。
3.1 安裝並配置HTTP
[root@CentOS ~]# yum install httpd
[root@CentOS ~]# systemctl start httpd.service
[root@CentOS ~]# systemctl enable httpd.service
3.二、掛載光盤鏡像
[root@CentOS ~]# mount /dev/cdrom /mnt/cdrom/
3.三、複製光盤所有內容至http 的根目錄/var/www/html/os/下
[root@CentOS ~]# cp -r /mnt/cdrom/* /var/www/html/os
四、配置TFTP
4.一、安裝tftp-server
[root@CentOS ~]# yum install tftp-server
[root@CentOS ~]# yum install xinetd
4.二、啓用tftp 服務,編輯配置文件/etc/xinetd.d/tftp 內容以下,紅框位置由yes修改成no
4.三、啓動tftp服務
由於tftp服務是掛載在超級進程xinetd 下的,因此經過啓動xinetd 來啓動tftp服務。
[root@CentOS ~]# systemctl start xinetd.service
[root@CentOS ~]# systemctl enable xinetd.service
4.四、查看tftp端口號是否打開,從圖中能夠看到udp端口號69已經打開
五、配置支持PXE的啓動程序
5.一、安裝syslinux
[root@CentOS ~]# yum install syslinux
5.二、複製pxelinux.0 文件至/var/lib/tftpboot/ 文件夾中
[root@CentOS ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
說明:syslinux是一個功能強大的引導加載程序,並且兼容各類介質。更加確切地說:SYSLINUX是一個小型的Linux操做系統,它的目的
是簡化首次安裝Linux的時間,並創建修護或其它特殊用途的啓動盤。
5.三、複製iso 鏡像中的/image/pxeboot/initrd.img 和vmlinux 至/var/lib/tftpboot/ 文件夾中
[root@CentOS ~]# cp /var/www/html/os/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@CentOS ~]# cp /var/www/html/os/images/pxeboot/vmlinuz /var/lib/tftpboot/
5.四、複製iso 鏡像中的/isolinux/*.msg 至/var/lib/tftpboot/ 文件夾中
[root@CentOS ~]# cp /var/www/html/os/isolinux/*.msg /var/lib/tftpboot/
5.五、在/var/lib/tftpboot/ 中新建一個pxelinux.cfg目錄
[root@CentOS ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
5.六、將iso 鏡像中的/isolinux 目錄中的isolinux.cfg複製到pxelinux.cfg目錄中,同時更改文件名稱爲default
編輯配置文件
[root@CentOS ~]# cp /var/www/html/os/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@CentOS ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
在位置1處添加menu default這一行,在位置2處修改爲圖中樣式,在位置3處刪除兩行之間的menu default,最後效果如圖所示,位置1
在63行
六、配置DHCP
6.一、安裝DHCP服務
[root@CentOS ~]# yum install dhcp
6.二、複製配置模板文件到DHCP的配置目錄中
[root@CentOS ~]# cp -f /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
6.三、修改/etc/dhcp/dhcpd.conf 配置文件,內容以下:
6.四、啓動DHCP服務
[root@CentOS ~]# systemctl start dhcpd.service
[root@CentOS ~]# systemctl enable dhcpd.service
七、生成ks.cfg 文件
7.一、安裝Kickstart
[root@CentOS ~]# yum install system-config-kickstart
7.二、在桌面環境下配置Kickstart,啓動X Windows 環境
[root@CentOS ~]# startx
在圖形界面中打開終端,輸入以下命令啓動Kickstart
[root@CentOS ~]# system-config-kickstart
按下列圖形填,第1個
第二個
第三個
第四個
第五個
而後保存,保存完以後在文件最後添加三行內容
7.三、保存後使用命令檢查語法是否正確
[root@CentOS ~]# ksvalidator ks.cfg
7.四、若是語法沒有問題就複製文件到www根目錄
[root@CentOS ~]# cp ks.cfg /var/www/html/
7.五、重啓一下httpd服務[root@CentOS ~]# systemctl restart httpd.service