BootStraping 系統提供
PXE
簡介
PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作于Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成終端(客戶?)基本軟件設置,從而引導預先安裝在服務器中的終端操作系統
原理圖
依賴環境
-
dhcp server:用來獲取網關和地址,以及dns;指明要加載的文件所在位置(tftp的地址)。(ip/nemask, gw, dns; filename, next-server)
-
tftp server:提供系統內核等 (bootloader, kernel, initrd)
TFTP(trivial file transfer protocol),一種開銷很小的簡單文件傳輸協議,語法類似ftp.因簡單、高效,常用于網絡設備的OS和配置更新.
-
yum repository :應用程序服務器構建(ftp, http, https, nfs)
-
kickstart
運行步驟
整個安裝的過程是這樣的:PXE網卡啟動 => DHCP獲得IP地址 => 從TFTP上下載 pxelinux.0、vmlinuz、initr.img 等 => 引導系統進入安裝步驟 => 通過PEX linux 下載ks.cfg文件并跟據ks.cfg自動化安裝系統 => 完成。
PXE和Kickstart
Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預填寫的各種參數,并生成一個名為ks.cfg的文件。如果在安裝過程中(不只局限于生成Kickstart安裝文件的機器)出現要填寫參數的情況,安裝程序首先會去查找Kickstart生成的文件,如果找到合適的參數,就采用所找到的參數;如果沒有找到合適的參數,便需要安裝者手工干預了。所以,如果Kickstart文件涵蓋了安裝過程中可能出現的所有需要填寫的參數,那么安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然后就去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中的設置重啟系統,并結束安裝。(redhat的版本是通過anaconda讀取kickstart文件來獲取所有需要參與的安裝配置就能無人值守的安裝。這里要指明安裝文件所在的路徑)
PXE+Kickstart 無人值守安裝操作系統完整過程如下:
準備工作
環境
centos 7.2為dhcp和tftp的server 地址10.1.6.72
1、tftp server安裝配置
安裝
# yum install tftp-server tftp
啟動
CentOS 7:
systemctl start tftp.socket
CentOS 6:
chkconfig tftp on service xinetd restart
端口及配置文件
69/udp 默認的文件根目錄:/var/lib/tftpboot/
客戶端為tftp
可以cp
一個文件到/var/lib/tftpboot/
然后用tftp
連上去下載測試。
注意用tftp是不支持ls這種命令的。
2、dhcp的安裝及簡要配置
安裝
# yum install dhcp -y
配置
復制模板文件
]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf
修改模板文件
service dhcpd configtest
檢查測試
啟動服務
3、提供pxelinux.0
這個文件由 syslinux
安裝包提供
安裝syslinux
]# yum install syslinux
由這個文件包提供的文件可以找到
復制此文件到tftp
的主目錄中
]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
測試:新建一個虛擬機是否能用
這時可以在服務端看到有沒有租約信息
這時加載pxelinux.0
是沒有問題的
4.提供內核文件和內存引導文件(和initrd相似的啟動)到tftp
主目錄
內核文件
內存引導文件syslinux
包提供
-
mboot.c32 :此文件表示從內存來引導,用內存當磁盤引導
-
menu.c32 :給用戶提供一個可選的菜單
-
memdisk :使內存模擬成磁盤用的文件
-
chain.c32:基于鏈式引導(即bootloader引導)操作系統的文件
提供pxelinux.cfg
目錄創建菜單加載時用到的配置文件信息
編輯這個配置文件提供菜單信息
含義
5、安裝vsftp
用來當做yum倉庫
# yum install vsftpd
配置光盤掛載地址
#mkdir /var/ftp/pub/7
啟動vsftp
測試安裝
OK!
基于Kickstart來一件安裝
用Kickstart生成ks.cfg文件,修改好文件內容
重新配置/var/lib/tftpboot/pxelinux.cfg/default
文件
重啟客戶端主機就可以安裝了
Centos 6的安裝
CentOS 6: yum -y install syslinux 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 mount -o bind /media/cdrom /var/www/html/centos6
內容如下所示:這個是圖形化顯示的菜單^是快捷鍵的方式
default vesamenu.c32 timeout 600 prompt 5 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 -
原創文章,作者:qzx,如若轉載,請注明出處:http://www.www58058.com/57747