現代的個人電腦與筆電爲了節能省碳,往往皆省略了光碟機的設置。雖然說 USB隨身碟亦可應用於安裝作業系統,但若遇到機房的大量機器需安裝之問題,亦不適合此種用光碟片或隨身碟逐臺安裝的方式,或是需準備多片光碟或隨身碟。故爲了大量安裝與部屬 Linux作業系統的機器,我們便可透過具有PXE功能之網路卡(https://en.wikipedia.org/wiki/Preboot_Execution_Environment),其所具備的網路開機的能力,來作透過網路方式來安裝與大量部署 CentOS Linux作業系統。其原理 wikipedia 的PXE說明,都解釋得很清楚,筆者不需要再 " 掉書包 ",在開發者大神面前班門弄斧,我們就直接來做做看。
首先,我們一樣透過 yum來安裝所需的 tftp伺服器軟體(http://www.jounin.net/tftpd32.html),利用PXE支援 tftp 透過 udp 埠號 69連線,來提供檔案的能力,給利用 PXE開機後安裝作業系統的機器,圖5-60
(圖5-60)
接著修改 tftp 設定檔 /etc/xinetd.d/tftp,如圖5-61,請記得 disable 要改為 no
(圖5-61)
若要修改 server_args 參數為自訂的 tftp root 路徑,記得要變更 SELinux 的權限設定,如要改為/tftpboot,則使用指令 chcon 來調整,如以下:
$ mkdir /tftpboot
$ chcon --reference /var/lib/tftpboot /tftpboot
接著將 xinetd 與 tftp 加入開機啟動,並重啟動 xinetd,如下:
$ chkconfig --level 235 xinetd on
$ chkconfig --level 235 tftp on
$ service xinetd restart
開放防火牆通行
$ iptables -A INPUT -p udp --dport 69 -j ACCEPT
$ service iptables restart
開放 tcp wrapper 設定,更改 /etc/hosts.allow (以為只有udp,常忘記此設定要改,要注意)
in.tftpd:* # * 為設定您要開放的IP或網域
xinetd:* # * 為設定您要開放的IP或網域
其他安全性問題,可參考tftp 說明檔,位置在 /usr/share/doc/tftp-server-0.49/README.security。
因 tftp 的啟動為依附在 xinetd 服務內, 故僅需啟動 xinetd 。為了確認服務已經啟動,可以利用以下指令確認 xinetd 的 udp 是否有啟動在 listen ,而 tftp 使用 udp 埠號 69來傳輸
$ netstat -ulnp | grep xinetd
下一步,我們要利用 syslinux 軟體,幫 PXE 建立開機管理程式與選單。一樣用 yum 指令安裝,如圖5-62
(圖5-62)
安裝完 syslinux 軟體後,我們將 PXE boot 所需的參數與選單檔 menu.c32,vesamenu.c32,chain.c32,pxelinux.0 ,從/usr/share/syslinux 複製到 /var/lib/tftpboot 資料夾內( menu.c32 (黑白)與 vesamenu.c32可擇一 ),並且在/ var/lib/tftpboot 內產生 pxelinux.cfg 資料夾,資料夾裡放置如 grub 的選單選項清單檔,檔名設定為 default (for legacy BIOS) , 可用 touch default 來建立。此default 為提供給 PXE 機器當開機選單的設定,如圖5-63。因提供PXE開機選單的機制,需透過 dhcp server 的能力,隨著IP分配並同時分配選單檔 pxelinux.0 給PXE開機之機器,故要記得修改 dhcp 伺服器軟體參數檔 ,CentOS為 /etc/dhcp/dhcpd.conf (dhcp 設定可參考前面篇章http://3cbarbarian.blogspot.tw/2016/09/linux-vii-proxy-dhcpnat-dhcp.html),再將 pxelinux.0 檔案加入 dhcp的服務,如圖5-64,因為實機實作,故筆者已將敏感IP資訊遮起來。圖5-64主要加入tftp主機與主動下載的檔案,為以下兩參數:
next-server 140.x.x.x; # next-server 為tftp的IP位址
filename "pxelinux.0"; # 為指定 tftp root /var/www/tftp 下方的 pxelinux.0 檔
(圖5-63)
(圖5-64)
接下來需要Linux 開機的 vmlinuz 與 initrd.img 此二個開機必要之程式,筆者在前面核心編譯的篇章說明過(http://3cbarbarian.blogspot.tw/2016/07/linux-linux-vii.html)。故我們要利用原版光碟片的 iso 映像檔,來將此二個開機所必要之程式,放入開機核心到 /var/lib/tftpboot。我們可利用wget 下載 iso 映像檔。指令如下
$ cd /var/lib/tftpboot
$ wget http://ftp.twaren.net/Linux/CentOS/6.8/isos/x86_64/CentOS-6.8-x86_64-bin-DVD1.iso
下載後,再經由下方指令先掛載光碟iso映像檔
$ mkdir /mnt/centos6_disc1
$ mount -t iso9660 -o loop,ro CentOS-6.8-x86_64-bin-DVD1.iso /mnt/centos6_disc1
/* 若不加上 -o loop ,則會出現 is not a block device (may try `-o loop' ?) 之訊息,加上 ro(read only) 確保原始映像檔不被修改 */
接著利用指令 make /var/lib/tftpbook/centos6 ,產生要用於PXE開機用的參數資料夾,並複製 iso 內 isolinux 資料夾下的的 vmlinuz 與 initrd.img 兩個檔案至 /var/lib/tftpboot/centos6,指令如下
$ cp /mnt/centos6_disc1/isolinux/vmlinuz /var/lib/tftpboot/centos6/
$ cp /mnt/centos6_disc1/isolinux/initrd /var/lib/tftpboot/centos6/
上面步驟完成後,我們要來設定pxe開機要讓使用者看到的選單項目,故我們可參考iso光碟黨內 isolinux 資料夾的 isolinux.cfg 內容,並用於我們的 /var/lib/tftpboot/pxelinux.cfg/default 檔案內容,如圖5-65,有EFI 啟動 PXE 需求的讀者,可以參閱 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config.html#s1-netboot-pxe-config-bios 之詳細說明。
(圖5-65)
圖5-65 之 default 設定為 vesamenu.c32,主要是利用符合 vesa 色彩之選單。timeout 設定為 600,是指定讓選單顯示 60 秒時間就進入預設值。display 為顯示訊息內容,來自 boot.msg。
接著的 menu title 與 menu color 為設定選單的上方名稱與顏色。下方兩個 label 顯示兩個選項可供選擇,內有 menu default 為指定預設開機的選項,筆者為預設選定用本機硬碟開機(localboot 0),而 label mylinux 則利用 kernel 與 initrd 兩參數指向剛剛複製的Linux開機檔,在/var/lib/tftp 下之路徑,./centos6/vmlinuz 與 ./centos6/initrd.img,對詳細選項設定參數有興趣的讀者,可參考 http://www.syslinux.org/wiki/index.php?title=PXELINUX。
接著便要設定讓用PXE安裝作業系統的機器,可以讀到完整光碟檔內容,當然網路上已經有很多CentOS 6 安裝檔案的資源(如高速電腦中心供下載的http://free.nchc.org.tw/centos/6.8/isos/x86_64/ 與 http://ftp.twaren.net/Linux/CentOS/6.8/os/x86_64),選單 append 後方可新增ip=dhcp --url=http://free.nchc.org.tw/centos/6.8/isos/x86_64/ , 可以直接經由網路連結使用,但這些都是在網際網路安裝可能比較緩慢,故我們可以建立一份在自己的網頁伺服器上(可參考前面網頁伺服器篇章http://3cbarbarian.blogspot.tw/2016/09/linux-iii-i-apache-nginx.html),用於分享安裝 CentOS 6 所需的檔案,在Linux下有很多種分式分享檔案內容NFS,CIFS,FTP,HTTP,筆者僅使用HTTP來說明。首先,我們在可以執行HTTP網頁的資料夾(如/var/www/html),建立一個資料夾,並將光碟映像檔掛在至此資料夾,如以下指令
$ cd /var/www/html
$ mkdir pxeos
$ mkdir pxeos/centos6_disc1
$ mkdir pxeos/centos6_disc2
$ mount -t iso9660 -o loop,ro /var/lib/tftpboot/CentOS-6.8-x86_64-bin-DVD1.iso \
/var/www/html/centos6_disc1
$ mount -t iso9660 -o loop,ro /var/lib/tftpboot/CentOS-6.8-x86_64-bin-DVD2.iso \
/var/www/html/centos6_disc2
/* 以上因 Centos 6.8 iso DVD 有兩片光碟 */
並可在 /etc/fstab 設定永久掛載,如下
/var/lib/tftpboot/CentOS-6.8-x86_64-bin-DVD1.iso /var/www/html/centos6_disc1 iso9660 defaults,loop 0 0
/var/lib/tftpboot/CentOS-6.8-x86_64-bin-DVD2.iso /var/www/html/centos6_disc2 iso9660 defaults,loop 0 0
接著筆者要說明,如果我們需要同時進行很多機器自動安裝系統(如 cluster),這時就需依靠 anaconda kickstart 的能力來進行。我們可以試著用指令 vim /root/anaconda-ks.cfg ,打開在我們安裝系統過程,anaconda 所產生的 kickstart 設定檔。亦可在多台欲安裝的機器內,先安裝系統在第一台機器上,安裝後可複製 /root/anaconda-ks.cfg 檔來使用在我們要透過 PXE安裝方式之 kickstart 設定檔,並依此檔案內容來修改以應用於其他未安裝的同規格機器。假設我們是要安裝一台全新的單硬碟500G之電腦,我們可將 kickstart 設定檔 可以修改為圖5-66 內容並存為 mycentos-ks.cfg,詳細參數可參考 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-file.html:
(圖5-66)
圖5-66前面可設定 text 或 graphical,主要為較快速的文字安裝介面與較美觀的預設圖形安裝方式。reboot 意旨安裝後自行重開機。url 為筆者安裝來源檔設定為 http:// 的分享方式。lang 與 keyborad 為設定系統語系與鍵盤語言。還有可以設定 network,firewall,selinux,以及timezone。接著是bootloader 為 grub 所要放置的位置。接著的說明,為磁碟分割的方式,請讀者依自己的硬體磁碟大小來製作。筆者已經去除IP敏感資訊,與 rootpw --iscrypted 的加密後金鑰之資訊。且%packages為套件安裝的清單,後面還有很多,故清單太長已省略,在此先說明。磁碟分割的部份用 part 參數,主要分成 /boot/efi,/home,/var,/,swap。若想利用圖形設定來設定如以上的 kickstart 設定檔,有興趣的讀者亦可參考 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-redhat-config-kickstart-install.html。
設定好後,我們將此設定檔案的路徑加入開機選單,則 /var/lib/tftpboot/pxelinux.cfg/default 檔的 label Linux, 圖5-65內此段落要改為如下:
label mylinux
menu label Boot from PXE ISO Server for CentOS6 Installation
kernel ./centos6/vmlinuz
append initrd=./centos6/initrd.img ks=http://140.x.x.x/centos6_cfg/mycentos-ks.cfg
/* 140.x.x.x 為筆者省略IP敏感資訊,請讀者輸入自己伺服器的IP位址,且有開一個centos6_cfg資料夾供下載 kickstart 設定檔 mycentos-ks-cfg ,對 kickstart 想多了解的讀者,可以參考 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-file.html */
最後就是PXE用戶端的設定,欲透過PXE安裝作業系統的機器,主要就是先進 BIOS 調整開機順序(因各家不同,先前篇章有提過),調整 Boot -> Boot Device Priority為可網路開機(Network or Ethernet)。調整後,網路開機如圖5-67,若tftp設定成功,則可以看到開機選單 5-68
(圖5-67)
(圖5-68)
圖5-68按enter進入安裝(或是可按Tab來再次修改參數),就會開始進入 initrd 的載入部份,接著會執行 anacoda 的安裝,並按照我們的 kickstart 設定檔案(筆者為mycentos-ks.cfg),一步一步的自動安裝,如圖5-69。
(圖5-69)
CentOS 7 可利用wget http://free.nchc.org.tw/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso
下載原始檔,並掛載後,一樣把映像檔內的 isolinux/vmlinuz 與 isolinux/initrd.img 複製到
/var/lib/tftpboot/centos7 下,並修改啟動選單,新增以下:
label CentOS 7 x64 Installation
kernel ./centos7/vmlinuz
append initrd=./centos7/initrd.img inst.repo=http://${your_ip}/centos/centos7
利用上述的自動安裝方式,無論是叢集式電腦的作業系統需同時大量安裝,或是電腦教室多部電腦的同時安裝,皆可透過此方式。除可節省光碟機硬體採購與增加安裝的效率,其他亦可應用於大量授權之 MS Windows 7的光碟映像檔與自動安裝方式( https://www.microsoft.com/en-US/download/details.aspx?id=5753,https://technet.microsoft.com/en-us//library/dd349350(WS.10).aspx#Updates ),或是先利用如 nlite (https://www.ntlite.com/download/) 自行製作 MS Windows自動化安裝光碟映像檔,再藉由 PXE 的能力,來架設一個含有各種作業系統的PXE 伺服器,在企業或實驗室內網可用來自動安裝的伺服器,以增進系統建置的效率。
If you have any feedback or question, please go to my forum to discuss.
首先,我們一樣透過 yum來安裝所需的 tftp伺服器軟體(http://www.jounin.net/tftpd32.html),利用PXE支援 tftp 透過 udp 埠號 69連線,來提供檔案的能力,給利用 PXE開機後安裝作業系統的機器,圖5-60
(圖5-60)
接著修改 tftp 設定檔 /etc/xinetd.d/tftp,如圖5-61,請記得 disable 要改為 no
(圖5-61)
若要修改 server_args 參數為自訂的 tftp root 路徑,記得要變更 SELinux 的權限設定,如要改為/tftpboot,則使用指令 chcon 來調整,如以下:
$ mkdir /tftpboot
$ chcon --reference /var/lib/tftpboot /tftpboot
接著將 xinetd 與 tftp 加入開機啟動,並重啟動 xinetd,如下:
$ chkconfig --level 235 xinetd on
$ chkconfig --level 235 tftp on
$ service xinetd restart
開放防火牆通行
$ iptables -A INPUT -p udp --dport 69 -j ACCEPT
$ service iptables restart
開放 tcp wrapper 設定,更改 /etc/hosts.allow (以為只有udp,常忘記此設定要改,要注意)
in.tftpd:* # * 為設定您要開放的IP或網域
xinetd:* # * 為設定您要開放的IP或網域
其他安全性問題,可參考tftp 說明檔,位置在 /usr/share/doc/tftp-server-0.49/README.security。
因 tftp 的啟動為依附在 xinetd 服務內, 故僅需啟動 xinetd 。為了確認服務已經啟動,可以利用以下指令確認 xinetd 的 udp 是否有啟動在 listen ,而 tftp 使用 udp 埠號 69來傳輸
$ netstat -ulnp | grep xinetd
下一步,我們要利用 syslinux 軟體,幫 PXE 建立開機管理程式與選單。一樣用 yum 指令安裝,如圖5-62
(圖5-62)
安裝完 syslinux 軟體後,我們將 PXE boot 所需的參數與選單檔 menu.c32,vesamenu.c32,chain.c32,pxelinux.0 ,從/usr/share/syslinux 複製到 /var/lib/tftpboot 資料夾內( menu.c32 (黑白)與 vesamenu.c32可擇一 ),並且在/ var/lib/tftpboot 內產生 pxelinux.cfg 資料夾,資料夾裡放置如 grub 的選單選項清單檔,檔名設定為 default (for legacy BIOS) , 可用 touch default 來建立。此default 為提供給 PXE 機器當開機選單的設定,如圖5-63。因提供PXE開機選單的機制,需透過 dhcp server 的能力,隨著IP分配並同時分配選單檔 pxelinux.0 給PXE開機之機器,故要記得修改 dhcp 伺服器軟體參數檔 ,CentOS為 /etc/dhcp/dhcpd.conf (dhcp 設定可參考前面篇章http://3cbarbarian.blogspot.tw/2016/09/linux-vii-proxy-dhcpnat-dhcp.html),再將 pxelinux.0 檔案加入 dhcp的服務,如圖5-64,因為實機實作,故筆者已將敏感IP資訊遮起來。圖5-64主要加入tftp主機與主動下載的檔案,為以下兩參數:
next-server 140.x.x.x; # next-server 為tftp的IP位址
filename "pxelinux.0"; # 為指定 tftp root /var/www/tftp 下方的 pxelinux.0 檔
(圖5-63)
(圖5-64)
接下來需要Linux 開機的 vmlinuz 與 initrd.img 此二個開機必要之程式,筆者在前面核心編譯的篇章說明過(http://3cbarbarian.blogspot.tw/2016/07/linux-linux-vii.html)。故我們要利用原版光碟片的 iso 映像檔,來將此二個開機所必要之程式,放入開機核心到 /var/lib/tftpboot。我們可利用wget 下載 iso 映像檔。指令如下
$ cd /var/lib/tftpboot
$ wget http://ftp.twaren.net/Linux/CentOS/6.8/isos/x86_64/CentOS-6.8-x86_64-bin-DVD1.iso
下載後,再經由下方指令先掛載光碟iso映像檔
$ mkdir /mnt/centos6_disc1
$ mount -t iso9660 -o loop,ro CentOS-6.8-x86_64-bin-DVD1.iso /mnt/centos6_disc1
/* 若不加上 -o loop ,則會出現 is not a block device (may try `-o loop' ?) 之訊息,加上 ro(read only) 確保原始映像檔不被修改 */
接著利用指令 make /var/lib/tftpbook/centos6 ,產生要用於PXE開機用的參數資料夾,並複製 iso 內 isolinux 資料夾下的的 vmlinuz 與 initrd.img 兩個檔案至 /var/lib/tftpboot/centos6,指令如下
$ cp /mnt/centos6_disc1/isolinux/vmlinuz /var/lib/tftpboot/centos6/
$ cp /mnt/centos6_disc1/isolinux/initrd /var/lib/tftpboot/centos6/
上面步驟完成後,我們要來設定pxe開機要讓使用者看到的選單項目,故我們可參考iso光碟黨內 isolinux 資料夾的 isolinux.cfg 內容,並用於我們的 /var/lib/tftpboot/pxelinux.cfg/default 檔案內容,如圖5-65,有EFI 啟動 PXE 需求的讀者,可以參閱 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config.html#s1-netboot-pxe-config-bios 之詳細說明。
(圖5-65)
圖5-65 之 default 設定為 vesamenu.c32,主要是利用符合 vesa 色彩之選單。timeout 設定為 600,是指定讓選單顯示 60 秒時間就進入預設值。display 為顯示訊息內容,來自 boot.msg。
接著的 menu title 與 menu color 為設定選單的上方名稱與顏色。下方兩個 label 顯示兩個選項可供選擇,內有 menu default 為指定預設開機的選項,筆者為預設選定用本機硬碟開機(localboot 0),而 label mylinux 則利用 kernel 與 initrd 兩參數指向剛剛複製的Linux開機檔,在/var/lib/tftp 下之路徑,./centos6/vmlinuz 與 ./centos6/initrd.img,對詳細選項設定參數有興趣的讀者,可參考 http://www.syslinux.org/wiki/index.php?title=PXELINUX。
接著便要設定讓用PXE安裝作業系統的機器,可以讀到完整光碟檔內容,當然網路上已經有很多CentOS 6 安裝檔案的資源(如高速電腦中心供下載的http://free.nchc.org.tw/centos/6.8/isos/x86_64/ 與 http://ftp.twaren.net/Linux/CentOS/6.8/os/x86_64),選單 append 後方可新增ip=dhcp --url=http://free.nchc.org.tw/centos/6.8/isos/x86_64/ , 可以直接經由網路連結使用,但這些都是在網際網路安裝可能比較緩慢,故我們可以建立一份在自己的網頁伺服器上(可參考前面網頁伺服器篇章http://3cbarbarian.blogspot.tw/2016/09/linux-iii-i-apache-nginx.html),用於分享安裝 CentOS 6 所需的檔案,在Linux下有很多種分式分享檔案內容NFS,CIFS,FTP,HTTP,筆者僅使用HTTP來說明。首先,我們在可以執行HTTP網頁的資料夾(如/var/www/html),建立一個資料夾,並將光碟映像檔掛在至此資料夾,如以下指令
$ cd /var/www/html
$ mkdir pxeos
$ mkdir pxeos/centos6_disc1
$ mkdir pxeos/centos6_disc2
$ mount -t iso9660 -o loop,ro /var/lib/tftpboot/CentOS-6.8-x86_64-bin-DVD1.iso \
/var/www/html/centos6_disc1
$ mount -t iso9660 -o loop,ro /var/lib/tftpboot/CentOS-6.8-x86_64-bin-DVD2.iso \
/var/www/html/centos6_disc2
/* 以上因 Centos 6.8 iso DVD 有兩片光碟 */
並可在 /etc/fstab 設定永久掛載,如下
/var/lib/tftpboot/CentOS-6.8-x86_64-bin-DVD1.iso /var/www/html/centos6_disc1 iso9660 defaults,loop 0 0
/var/lib/tftpboot/CentOS-6.8-x86_64-bin-DVD2.iso /var/www/html/centos6_disc2 iso9660 defaults,loop 0 0
接著筆者要說明,如果我們需要同時進行很多機器自動安裝系統(如 cluster),這時就需依靠 anaconda kickstart 的能力來進行。我們可以試著用指令 vim /root/anaconda-ks.cfg ,打開在我們安裝系統過程,anaconda 所產生的 kickstart 設定檔。亦可在多台欲安裝的機器內,先安裝系統在第一台機器上,安裝後可複製 /root/anaconda-ks.cfg 檔來使用在我們要透過 PXE安裝方式之 kickstart 設定檔,並依此檔案內容來修改以應用於其他未安裝的同規格機器。假設我們是要安裝一台全新的單硬碟500G之電腦,我們可將 kickstart 設定檔 可以修改為圖5-66 內容並存為 mycentos-ks.cfg,詳細參數可參考 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-file.html:
(圖5-66)
圖5-66前面可設定 text 或 graphical,主要為較快速的文字安裝介面與較美觀的預設圖形安裝方式。reboot 意旨安裝後自行重開機。url 為筆者安裝來源檔設定為 http:// 的分享方式。lang 與 keyborad 為設定系統語系與鍵盤語言。還有可以設定 network,firewall,selinux,以及timezone。接著是bootloader 為 grub 所要放置的位置。接著的說明,為磁碟分割的方式,請讀者依自己的硬體磁碟大小來製作。筆者已經去除IP敏感資訊,與 rootpw --iscrypted 的加密後金鑰之資訊。且%packages為套件安裝的清單,後面還有很多,故清單太長已省略,在此先說明。磁碟分割的部份用 part 參數,主要分成 /boot/efi,/home,/var,/,swap。若想利用圖形設定來設定如以上的 kickstart 設定檔,有興趣的讀者亦可參考 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-redhat-config-kickstart-install.html。
設定好後,我們將此設定檔案的路徑加入開機選單,則 /var/lib/tftpboot/pxelinux.cfg/default 檔的 label Linux, 圖5-65內此段落要改為如下:
label mylinux
menu label Boot from PXE ISO Server for CentOS6 Installation
kernel ./centos6/vmlinuz
append initrd=./centos6/initrd.img ks=http://140.x.x.x/centos6_cfg/mycentos-ks.cfg
/* 140.x.x.x 為筆者省略IP敏感資訊,請讀者輸入自己伺服器的IP位址,且有開一個centos6_cfg資料夾供下載 kickstart 設定檔 mycentos-ks-cfg ,對 kickstart 想多了解的讀者,可以參考 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-file.html */
最後就是PXE用戶端的設定,欲透過PXE安裝作業系統的機器,主要就是先進 BIOS 調整開機順序(因各家不同,先前篇章有提過),調整 Boot -> Boot Device Priority為可網路開機(Network or Ethernet)。調整後,網路開機如圖5-67,若tftp設定成功,則可以看到開機選單 5-68
(圖5-67)
(圖5-68)
圖5-68按enter進入安裝(或是可按Tab來再次修改參數),就會開始進入 initrd 的載入部份,接著會執行 anacoda 的安裝,並按照我們的 kickstart 設定檔案(筆者為mycentos-ks.cfg),一步一步的自動安裝,如圖5-69。
(圖5-69)
CentOS 7 可利用wget http://free.nchc.org.tw/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso
下載原始檔,並掛載後,一樣把映像檔內的 isolinux/vmlinuz 與 isolinux/initrd.img 複製到
/var/lib/tftpboot/centos7 下,並修改啟動選單,新增以下:
label CentOS 7 x64 Installation
kernel ./centos7/vmlinuz
append initrd=./centos7/initrd.img inst.repo=http://${your_ip}/centos/centos7
利用上述的自動安裝方式,無論是叢集式電腦的作業系統需同時大量安裝,或是電腦教室多部電腦的同時安裝,皆可透過此方式。除可節省光碟機硬體採購與增加安裝的效率,其他亦可應用於大量授權之 MS Windows 7的光碟映像檔與自動安裝方式( https://www.microsoft.com/en-US/download/details.aspx?id=5753,https://technet.microsoft.com/en-us//library/dd349350(WS.10).aspx#Updates ),或是先利用如 nlite (https://www.ntlite.com/download/) 自行製作 MS Windows自動化安裝光碟映像檔,再藉由 PXE 的能力,來架設一個含有各種作業系統的PXE 伺服器,在企業或實驗室內網可用來自動安裝的伺服器,以增進系統建置的效率。
If you have any feedback or question, please go to my forum to discuss.