======大量部屬Linux作業系統======
經典安裝作業系統通常以光碟方式安裝,或是以[[linux:liveusb|usb方式]]。這些安裝方式有一個共通毛病就是耗時,若只有一台電腦還可以,那10台..50台或是100台電腦?
這邊就是要討論以PXE網路開機方式大量安裝作業系統,以節省時間。
* 這邊以**Centos6** 平台下實驗的
=====建置步驟=====
- 安奘好DHCP及TFTP及TFTP-Serveryum install dhcp dhcp-devel tftp-server tftp
- 設定好DHCP組態檔並嘗試啟動vim /etc/dhcp/dhcpd.conf
option domain-name "Qoop.com";
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.170 192.168.0.172;
option domain-name-servers 192.168.0.53;
host TESTKS.Qoop.com {hardware ethernet 42:70:e4:f1:6b:d8;fixed-address 192.168.0.170;} -->以ip及MAC Address綑綁在一起 (MAC Address 是那一台要安裝作業系統的網卡位址)
next-server 192.168.0.62; -->指定bootloader是在哪台機器上(也就是 tftp-server)
filename "pxelinux.0"; -->bootloader程式的檔名
}
檢查設定檔格式及語法是否正確/etc/init.d/dhcpd configtest
Syntax: OK
正確後,啟動dhcpd服務/etc/init.d/dhcpd start
Starting dhcpd: [ OK ]
- 修改TFTP組態檔,建立tftp分享目錄再嘗試啟動tftp(由xinetd的SuperDaemon作管理)vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot --->tftp分享的目錄
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
建立分享目錄,另外把pxelinu.0放置在/tftpboot/根下mkdir /tftpboot
這邊是用 syslinux導引系統,用它的pxelinux.0 sample檔
#rpm -ql syslinux|grep -i pxelinux.0
/usr/share/syslinux/pxelinux.0
#cp /usr/share/syslinux/pxelinux.0 /tftpboot
在/tftpboot/下再建立一個目錄pxelinux.cfg/,此目錄主要是bootloader的設定檔(開機選單)mkdir /tftpboot/pxelinux.cfg
/etc/init.d/xinetd start
- 為了方便測試,可先暫時停掉SELinux及iptables#setenforce 0
#/etc/init.d/iptables stop
測試tftp傳輸是否正常tftp
- 以Web server來當作安裝媒體來源(Installer)若無Apache httpd server 就安裝
#yum install httpd
建立安裝媒體目錄
mkdir /var/www/html/Centos6
掛載centos6.iso到媒體目錄
mount -o loop centos6.iso /var/www/html/Centos6
測試網頁狀況(Installer安裝在192.168.0.62)
links http://192.168.0.62/Centos6
- 建立pxelinux.0需要的開機選單
#vim /tftpboot/pxelinux.cfg/default
內容為:
DEFAULT TEST -->(預設以哪一個label啟動)
PROMPT 1 -->(是否要提示訊息 0:為否;1為是)
TIMEOUT 50 -->(等待時間;單位 1/10秒)
#DISPLAY BOOT.MSG -->(開機訊息檔 /tftpboot/boot.img)
LABEL TEST
kernel vmlinuz_x86
append initrd=initrd_x86.img noipv6 ks=http://192.168.0.62/ks/ks.cfg ksdevice=eth0
複製Centos6 kernel及initrd等img檔到/tftpboot/#cp /var/www/html/Centos6_x86/images/pxeboot/vmlinuz /tftpboot/vmlinuz_x86
#cp /var/www/html/Centos6_x86/images/pxeboot/initrd.img /tftpboot/initrd_x86.img
- 建立KS(kickstart設定檔)ks檔是自動化安裝重要的文件,它會將需要安裝套件,設定,安裝前設定或安裝後設定都寫在此檔中
通常編輯ks檔都會安裝system-config-kickstart套件,是圖形介面編輯,要不然就拿現有範本檔做修改
[[http://dl.dropbox.com/u/26197124/ks6.cfg|範例ks檔]]
- 到Client端測試pxe開機從BIOS調整網路開機
======參考資料======
- [[http://linux.vbird.org/somepaper/20100901-pxe_ks.pdf|林彥明老師的文章]]
- [[http://benjr.tw/?q=node/30|PXELinux]]
- [[http://5ydycm.blog.51cto.com/115934/344097|Kickstart+PXE+DHCP+TFTP+NFS自動安裝Centos5]]
- [[https://sites.google.com/site/gyozapriate/Home/linux-island/boot/hdd-boot-multi#TOC-PXEboot|硬碟多重開機與BootLoader]]
- [[http://neowym.blogspot.com/2009/02/linuxrisxp2003-1.html|在Linux上架設RIS安裝XP與2003 - 1 ]]