在工作中會遇到一種場景,公司領導讓你部署大量的服務器操作系統。但此時如果用原始的方法,CD/USB進行安裝都不太合適。因為數量龐大,時間耗費很長。這個時候就可以用redhat自身的工具kickstart來完成這個工作。
實驗環境:VMware Workstation,操作系統為redhat 6.4
使用光盤安裝linux系統過程:
第一步,POST自檢
第二步,MBR引導,這裡使用的GRUB是CDROM中isolinux/文件夾中的grub.conf。
第三步,啟動帶有安裝、升級、修復等選項的選擇菜單,這是由isolinux.bin啟動的。
第四步,vmlinuz(initrd)掛載根文件系統。
第五步,啟動anaconda安裝界面。而anaconda。
一、基本原理
PXE(Pre-boot Execution Environment)是由Intel設計的協議,它可以使計算機通過網絡啟動。協議分為client和server兩端,PXE client在網卡的ROM中,當計算機引導時,BIOS把PXE client調入內存執行,並顯示出命令菜單,經用戶選擇後,PXE client將放置在遠端的操作系統通過網絡下載到本地運行。客戶端在啟動過程中,請求服務器分配IP地址。之後PXE Client使用TFTP Client 通過TFTP(Trivial File Transfer Protocol)協議下載啟動安裝程序所需的文件。單地說PXE網絡安裝,客戶機通過支持PXE的網卡向網絡中發送請求DHCP信息的廣播請求IP地址等信息,DHCP服務器給客戶端提供IP地址和其它信息(TFTP服務器、啟動文件等),之後請求並下載安裝需要的文件。在這個過程中需要一臺服務器來提供啟動文件、安裝文件、以及安裝過程中的自動應答文件等。圖一中介紹了Linux中自動安裝系統的詳細工作過程:
PXE工作流程示意圖中顯示了client和server兩端的文件流。
第一步:PXE Client向DHCP發送請求
首先,將支持PXE的網絡接口卡(NIC)的客戶端的BIOS設置成為網絡啟動,通過PXE BootROM(自啟動芯片)會以UDP(簡單用戶數據報協議)發送一個廣播請求,向網絡中的DHCP服務器索取IP地址等信息。
第二步:DHCP服務器提供信息
DHCP服務器收到客戶端的請求,驗證是否來自合法的PXE Client的請求,驗證通過它將給客戶端一個“提供”響應,這個“提供”響應中包含了為客戶端分配的IP地址、pxelinux啟動程序(TFTP)位置,以及配置文件所在位置。
第三步:PXE客戶端請求下載啟動文件
客戶端收到服務器的“回應”後,會回應一個幀,以請求傳送啟動所需文件。這些啟動文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
第四步:Boot Server響應客戶端請求並傳送文件
當服務器收到客戶端的請求後,他們之間之後將有更多的信息在客戶端與服務器之間作應答, 用以決定啟動參數。BootROM 由 TFTP 通訊協議從Boot Server下載啟動安裝程序所必須的文件(pxelinux.0、pxelinux.cfg/default)。default文件下載完成後,會根據該文件中定義的引導順序,啟動Linux安裝程序的引導內核。
第五步:請求下載自動應答文件
客戶端通過pxelinux.cfg/default文件成功的引導Linux安裝內核後,安裝程序首先必須確定你通過什麼安裝介質來安裝linux,如果是通過網絡安裝(NFS, FTP, HTTP),則會在這個時候初始化網絡,並定位安裝源位置。或許你會說,剛才PXE不是已經獲取過IP地址了嗎?為什麼現在還需要一次?這是由於PXE獲取的是安裝用的內核以及安裝程序等,而安裝程序要獲取的是安裝系統所需的二進制包以及配置文件。由於它們需要的內容不同造成PXE模塊和安裝程序是相對獨立的,PXE的網絡配置並不能傳遞給安裝程序。從而進行兩次獲取IP地址過程。接著會讀取該文件中指定的自動應答文件ks.cfg所在位置,根據該位置請求下載該文件。
第六步:客戶端安裝操作系統
將ks.cfg文件下載回來後,通過該文件找到OS Server,並按照該文件的配置請求下載安裝過程需要的軟件包。
OS Server和客戶端建立連接後,將開始傳輸軟件包,客戶端將開始安裝操作系統。安裝完成後,將提示重新引導計算機。這個時候注意,在重新引導的過程中一定要將BIOS修改回從硬盤啟動,不然的話又會重複的自動安裝操作系統。
在上面介紹中PXE client是需要安裝Linux的計算機,TFTP Server、DHCP Server和FTP Server運行在另外一臺Linux Server上。Bootstrap文件、配置文件、Linux內核都放置在Linux Server上TFTP服務器的根目錄下。而Linux根文件系統存放於FTP Server的共享目錄中。
PXE client在工作過程中,需要三個二進制文件:bootstrap、Linux 內核和Linux根文件系統。Bootstrap文件是可執行程序,它向用戶提供簡單的控制界面,並根據用戶的選擇,下載合適的Linux內核以及Linux根文件系統。
二、配置過程
1、關閉iptables/selinux。配置YUM安裝源。
#iptables -F
#vim /etc/sysconfig/selinux à將enable改成disabled àreboot
2、配置Linux Server的ip地址
本例子中將ip改為:192.168.213.53
3、安裝整個實驗所需要的軟件包:dhcp tftp tftp-server vsftpd syslinux
#yum install -y dhcp tftp tftp-server syslinux vsftpd
4、
#mkdir /var/ftp/pub/dvd
#chmod 777 /var/ftp/pub/dvd
#cp -rf /mnt/cdrom/* /var/ftp/pub/dvd 拷貝系統文件到dvd文件夾下
5、配置TFTP
#vim /etc/xinetd.d/tftp 將disable的值更改為no。如下圖所示:
6、配置DHCP
首先將DHCP安裝到系統之後,會發現/etc/dhcp/dhcpd.conf文件,但此文件沒有任何參數,需要自行編輯。此時可以將/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample中的示例配置文件複製到/etc/dhcp/dhcpd.conf中,然後再進行修改編輯。
原示例文件中的配置信息如圖三所示:
將以上信息修改成圖四所示的結果:(dhcp動態更新方式 non:不支持;interim:互動更新模式;ad-hoc:特殊更新模式,<ddns-update-style><ignore>/<ddns-update-style>
7、創建TFTP的主目錄(默認目錄是/var/lib/tftpboot)
#mkdir -p /var/lib/tftpboot/pxelinux.cfg
8、準備引導文件
#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# cp /var/ftp/pub/dvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#chmod 755 /var/lib/tftpboot/pxelinux.cfg/default
#cp /var/ftp/pub/dvd/isolinux/* /var/lib/tftpboot/
syslinux是一個功能強大的引導加載程序,而且兼容各種介質。更加確切地說:SYSLINUX是一個小型的Linux操作系統,它的目的是簡化首次安裝Linux的時間,並建立修護或其它特殊用途的啟動盤。如果系統中沒有pxelinux.0文件可以通過安裝syslinux來獲取。
9、重啟相關服務
#service dhcpd restart
#service vsftpd restart
#service xinetd restart
#chkconfig dhcpd on
#chkconfig vsftpd on
#chkconfig tftp on
10、配置無人值守安裝文件
# yum -y install system-config-kickstart 安裝此軟件是為了實現圖形化界面配置自動安裝參數,安裝完成後,執行#system-config-kickstart就會出現如圖五所示的界面。
安裝方法一欄:這邊是FTP模式 選擇對應的FTP,然後輸入服務器地址:192.168.213.53 下面對應的目錄:/pub/dvd (省略/var/ftp/根目錄)。
將剛才生成的保存的ks.cfg(注:通過system-config-kickstart配置產生的配置文件名稱默認為anaconda-ks.cfg)文件拷貝到/var/ftp/pub。複製到pub下,通過查看發現ks.cfg的默認權限是600,需要通過chmod將權限更改為644。
修改引導文件參數:
#vim /var/lib/tftpboot/pxelinux.cfg/default
找到這一行 append initrd=initrd.img 在其後面添加 ks=ftp://192.168.213.53/pub/ks.cfg(如圖十三),此圖中顯示的信息為ks=ftp://192.168.213.53/pub/ks.cfg在前而append initrd=initrd.img在後。其實位置順序不影響實驗結果。
三、部分錯誤提示
經常會出現如下的錯誤提示
出現該問題可能由幾個方面造成。
1、 新建的ks.cfg文件名進行了自定義,由於不清楚該文件的自定義規則所以造成無法下載的問題,最後將名稱創建為ks.cfg就可以正常被下載。
2、 文件的權限問題。
閱讀更多 挨踢人 的文章