關于 PXE 自動安裝物理機的方案, 網上有很多, 但是幾乎都是通過配置 DHCP 服務器, 使得待安裝的機器能夠找到 tftp 提供的安裝源.我目前的環境中, DHCP 是由路由器提供的, 也就不能像網上的教程那樣通過 DHCP 服務來配置 tftp 的信息了.
下面重點記錄如何不改變現有的 DHCP 服務, 而是通過 proxy-dhcp 來實現的.實驗的系統是 CentOS6.6 x86_64
需要的軟件需要的軟件和網上大部分是一樣的, (只是不需要 dhcp 服務相關package, 多了一個 proxy-dhcp 的安裝)
nfs 和 tftp 的安裝通過 apt-get 或者 rpm 都行, 這里就不詳細介紹了.主要介紹下 proxy-dhcp 的安裝
svn co http://svn.coderepos.org/share/lang/c/pxe-pdhcpcd pxe-pdhcpmake
如果 make 的時候出現數組越界的錯誤的話, 在出錯的位置修改 (大概在 pxe-pdhcp.c 的 330行)
ifr.ifr_name[IFNAMSIZ] = '/0';修改為:ifr.ifr_name[IFNAMSIZ-1] = '/0';
啟動 proxy dhcp 服務make之后, 生成了 pxe-pdhcp 可執行文件.
pxe-pdhcp -l 0.0.0.0 -b 255.255.255.0 -t 192.168.1.2 -d pxelinux.0
其中 -t 選項是 tftp服務器的ip
nfs 服務和 tftp 服務的配置網上很多, 這里就不詳細介紹了.
關鍵的幾個配置文件tftp 服務默認是 disable的, 要修改.
cat /etc/xinetd.d/tftpservice tftp{ socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no # <== 這里改成 no, 原先是 yes per_source = 11 cps = 100 2 flags = IPv4}
tftp 中 pxe 的配置文件
沒用 kickstart 方式, 引導成功后需要手動安裝.
cat /var/lib/tftpboot/pxelinux.cfg/defaultDEFAULT menu.c32TIMEOUT 100LABEL centos6KERNEL centos6/vmlinuzAPPEND initrd=centos6/initrd.img nfsroot=nfs:10.0.1.1:/srv/centos6 ip=dhcp console=tty0
用 kickstart 方式的話, 只要將其中的
nfsroot=nfs:10.0.1.1:/srv/centos6改成ks=nfs:10.0.1.1:/srv/centos6/centos6.ks 之類的就行
參考網址http://frsyuki.hatenablog.com/entry/20080720/p2http://d.hatena.ne.jp/dayflower/20090810/1249875581
新聞熱點
疑難解答