首先我們先看下pxe.linux的制作需要的服務:
DHCP、tftp,還有就是pxelinux文件,

首先搭建DHCP服務器,這個很簡單自己搭建下。
下面安裝tftp軟件包:tftp-server.i686

安裝的過程中發先tftp這個包的進程和服務都與xtend服務相關:

去開啟xinted下的tftp服務:
切換到xinted服務下cd /etc/xinetd.d/
編輯tftp服務配置文件 vim tftp
disable = no //開啟tftp服務

使用rpm -ql tftp-server 找到tftp配置文件的路徑:
/var/lib/tftpboot
由于pxelinux.0為系統內置命令,我們使用:
# yum whatPRovides */pxelinux.0 //查找pxelinux.0的安裝包,還有文件的路徑。

安裝軟件包:# yum install syslinux-4.02-7.el6.i686 -y
啟動系統時,讀取的pxelinux.0是在tftp目錄下,根本不在/usr/share/syslinux目錄下,對吧

我們知道啟動系統的藍色圖片,還有標題的文件放在哪?

首先掛載鏡像:
到虛擬機配置那把鏡像添加上,使用mount掛載


切換到/mnt/isolinux目錄下:注意:vmlinuz、initrd.img、isolinux.cfg這三項是有版本的,這三項版本一定要一樣,否則實驗成果不了

我們所要做的很簡單,把這個目錄下的所有文件cp到/var/lib/tftpboot下:
[root@redhat isolinux]# cp -a ./* /var/lib/tftpboot/
[root@redhat tftpboot]# ls
boot.cat grub.conf isolinux.bin memtest splash.jpg vesamenu.c32
boot.msg initrd.img isolinux.cfg pxelinux.0 TRANS.TBL vmlinuz
原先tftp目錄下只有pxelinux.0文件,對吧。
現在建一個目錄pxelinux.cfg,下面的都為固定格式,官網pxelinux.0的手冊就是這樣寫的。

我們修改下defaule文件,給它添加以下幾行:
label linux
menu label ^Install hello world //添加了一個hello world標題
menu default
kernel vmlinuz
append initrd=initrd.img
下面是配置dhcp服務:
只用添加后面2行,next-server 192.168.7.3; filename "pxelinux.0";

重啟DHCP服務:
[root@redhat tftpboot]# /etc/init.d/dhcpd restart
Shutting down dhcpd: [ OK ]
Starting dhcpd: [ OK ]
客戶端的測試:
首先拔掉網線,使用你自己配的DHCP服務:
重啟網絡: 如果不拔掉的話,使用的不是本地的DHCP服務。
把ip改為動態獲取: 這樣才能獲取的本地DHCP服務的ip
啟動改為從網絡啟動: 然后會發現下面的報錯:
這是由于selinux=enforcing我們setenforce=0就ok了

再次啟動會發現ok的:

同時也可以這樣寫:配合kisckstart一塊使用:
然后把22行注釋掉,在下面添加:append initrd=initrd.img ks=http://192.168.7.3/ks.cfg
新聞熱點
疑難解答