PXE
PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作于Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成客戶端的基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。PXE可以引導多種操作系統,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。
PXE自動安裝系統所需組件
1、DHCP服務
DHCP動態主機配置協議會在預引導加載操作系統的時候動態自動分配一個IP地址,同時完成網絡加載的主機的設定;需要在其地址池subnet配置中配置一下參數:
filename "";:基于網卡引導時要加載的initial boot file的文件名; next-server HOST;:要是一個tftp-servr,簡單文件傳輸協議
2、tftp-server服務
TFTP:trivialfile transfer protocol,簡單文件傳輸協議服務器?;赨DP文件傳輸,一般該服務器僅用于PXE預引導加載環境。用于提供預引導加載文件pxelinux.0的讀取。相關程序包:Server:tftp-server;Client: tftp,監聽端口 69/udp,
安裝tftp程序 ]# yum install tftp-server tftp 默認的提供文件服務的根目錄: /var/lib/tftpboot/ 服務啟動運行方式: CentOS6: # chkconfig tftp on # service xinetd restart CentOS7: # systemctl start tftp.socket
3、syslinux包
提供適用于不同的操作系統的各種bootloader文件,支持DOSFATfilesystems、Linux ext2/ext3 ,filesystems(EXTLINUX)、 PXEnetwork boots(PXELINUX)、ISO 9660 CD-ROMs (ISOLINUX);基于網卡引導的bootloader由其提供文件Wie/usr/share/syslinux/pxelinux.0
4、file server(yum repository)yum倉庫
基于網絡引導加載文件的時候會根據腳本,引導到指定的路徑加載yum倉庫進行安裝程序或者鏡像文件,存儲此yum倉庫的位置稱為file server。該file server可以通過http對外通過程序包或者鏡像,實現引導之后的安裝操作。 file server可以creatrepo命令手動創建;可以直接復制或者掛載光盤的完整鏡像作為通過程序包的文件存儲源服務
基于PXE自動安裝系統服務配置(CentOS 7)
環境為CentOS 7系統,自動化安裝的系統鏡像為CentOS 7
1、安裝相關程序包
]# yum install httpd -y 安裝httpd服務 為了提供安裝程序包路徑 ]# yum install tftp-server -y 安裝tftp服務 ]# yum install syslinux -y 安裝提供pexlinux.0文件的程序包 ]# yum install dhcp -y 安裝dhcp服務
2、準備file server(yumrepository):yum倉庫
]# mount /dev/cdrom /media 掛載Centos7 光盤鏡像 ]# mkdir /var/www/html/centos7 創建安裝程序文件放置位置 ]# cp anaconda-ks.cfg /var/www/html/ 將配置好的kickstart文件復制到安裝程序文件目錄,這里我直接使用了當前系統的文件 ]# chmod 666 /var/www/html/anaconda-ks.cfg 給文件加權限 ]# vim /var/www/html/anaconda-ks.cfg 編輯kickstart文件 url --url="http://192.168.25.128/ anaconda-ks.cfg ]# mount -o --bind/media/cdrom /var/www/html/centos7 通過目錄綁定的方式掛載光盤鏡像 注意:也可以使用
3、提供預引導加載等相關文件
]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 復制pxelinux.0文件到tftp服務的文件目錄 ]# cp /media/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ 復制內核啟動文件到tftp文件目錄 ]# cp /usr/share/syslinux/{chain.c32,memdisk,menu.c32,mboot.c32} /var/lib/tftpboot/ 復制與pxe啟動和加載相關的文件
4、配置tftp文件
tftpboot]# mkdir pxelinux.cfg 在/var/lib/tftpboot目錄下創建pxelinux.cfg目錄為 ]# vim /var/lib/tftpboot/pxelinux.cfg/default 創建為menu.c32提供菜單的配置文件,即菜單加載時用到的配置文件信息 default menu.c32 prompt 5 菜單顯示時間 timeout 30 退出時間 MENU TITLE CentOS 7 PXE Menu 標題 LABEL linux 標簽 MENU LABEL Install CentOS 7 x86_64 菜單名 KERNEL vmlinuz 指明要加載的內核文件 APPEND initrd=initrd.img inst.repo=http://192.168.25.128/centos7 ks=http://192.168.25.128/anaconda-ks.cfg 指明initrd文件位置,和安裝程序所在的yum倉庫和kickstart文件路徑
5、配置dhcp文件
]# cd /etc/dhcp/ ]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf 復制配置文件 ]# vim dhcpd.conf 編輯dhcp配置文件,如下, subnet 192.168.25.0 netmask 255.255.255.0 { range 192.168.25.100 192.168.25.105; filename "pxelinux.0"; next-server 192.168.25.128; 此處指向tftp服務地址,這里是本機 } :.,$d vim命令行刪除subnet配置段以后所有無用配置
6、啟動服務
]# systemctl start httpd ]# systemctl start dhcpd.service ]# systemctl start tftp.socket
7、客戶端開機自動安裝
CentOS 6和CentOS 7的配置有部分不同;
cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ cp/media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}/var/lib/tftpboot/ mkdir/var/lib/tftpboot/pxelinux.cfg/ cp/media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default 內容如下所示: display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.7 MageEdu! menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label autoinst menu label ^Auto Install CentOS menu default kernel vmlinuz append initrd=initrd.img ks=ftp://192.168.10.16/pub/centos6.cfg label linux menu label ^Install or upgrade an existing system kernel vmlinuz append initrd=initrd.img label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img nomodeset label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue label local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append -
原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/58175