本例子中使用了CentOS7.4 minimal 系統,並且關閉了防火牆和selinux,並使用了dhcp、tftp、http和samba服務。
假設PXE服務器是192.168.4.104 ,tftp的根目錄在/var/lib/tftpboot下面,以后參數配置,均按此配置。
關閉防火牆和selinux的步驟略。
1、安裝DHCP服務
yum -y install dhcp #安裝dhcp服務器
vi /etc/dhcp/dhcpd.conf #修改dhcp配置文件
option domain-name "pxe-os.org"; #按你的規划指定一個域名
option domain-name-servers 192.168.1.2; #按你的規划指定一個域名服務器
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.4.0 netmask 255.255.255.0 { #定義一個可供分配的IP地址段
range dynamic-bootp 192.168.4.200 192.168.4.250;
option broadcast-address 192.168.4.255;
option routers 192.168.4.1;
filename "pxelinux.0"; #linux 的pxe引導文件
next-server 192.168.4.104; #指定192.168.4.104為PXE服務器,從這里找PXE啟動文件。
}
#編輯完成,啟動dhcp服務
systemctl enable dhcpd
systemctl start dhcpd
2、安裝tftp服務
yum -y install syslinux xinetd tftp-server #安裝tftp所需的組件,tftp的根目錄會在:/var/lib/tftpboot目錄下。
mkdir /var/lib/tftpboot/pxelinux.cfg #建一個目錄放pxe引導腳本
#復制syslinux中引導系統經常用到的幾個軟件:
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/memdisk /var/lib/tftpboot/
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
vi /etc/xinetd.d/tftp #修改守護進程中的tftp-server配置文件
disable = no #把disable =yes改為no
#啟動tftp服務
systemctl enable xinetd
systemctl start xinetd
3、安裝http服務,這個服務在安裝linux系統時使用
yum -y install httpd #安裝httpd
rm -f /etc/httpd/conf.d/welcome.conf #刪除歡迎頁面
vi /etc/httpd/conf/httpd.conf #修改http配置文件,更改下列幾項:
ServerAdmin root@srv.pxe-os.org #修改管理員的email地址
ServerName srv.pxe-os.org:80 #按照你的規划修改web server 名稱
AllowOverride ALL
DirectoryIndex index.html index.cgi index.php #增加主頁文件名
ServerTokens Prod #在文件末尾增加這兩行
KeepAlive ON
#結束http配置文件的編輯
vi /var/www/html/index.html #編輯一下頁面,主要是驗證一下是否正常啟動webserver。
<html>
<title> you are wellcom! </title>
<body> this is srv.PXE-OS.org</body>
</html>
vi /etc/httpd/conf.d/pxeboot.conf #把/var/lib/tftpboot設為一個可在http訪問的目錄,讓http可以訪問下面的文件:
Alias /tftpboot /var/lib/tftpboot/
<Directory /var/lib/tftpboot/>
Options Indexes FollowSymLinks
# IP address you allow to access
Require ip 127.0.0.1 192.168.4.0/24
</Directory>
#完成編輯,啟動http服務
systemctl enable httpd
systemctl restart httpd
#測試一下 http://192.168.4.104看你寫的主頁能不能正常顯示
#測試一下 http://192.168.4.104/tftpboot能不能顯示tftp根目錄下的文件
4、安裝samba服務,這在windows環境中用得上,重點是不用輸入用戶、口令,任何人都能直接只讀打開共享目錄。
yum install samba samba-common samba-winbind -y #安裝相關組件
mv /etc/samba/smb.conf /etc/samba/smb.conf.backup #備份一下原來的配置文件
vi /etc/samba/smb.conf #創建新的配置文件,請按你的規划修改,內容如下:
[global]
workgroup = pxe-os.org
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
idmap config * : backend = tdb
cups options = raw
netbios name = pxe-os
map to guest = bad user
dns proxy = no
public = yes
## For multiple installations the same time - not lock kernel
kernel oplocks = no
nt acl support = no
security = user
guest account = nobody
[tftpboot]
comment = Windows 7 Image
path = /var/lib/tftpboot
read only = no
browseable = yes
public = yes
printable = no
guest ok = yes
oplocks = no
level2 oplocks = no
locking = no
#完成編輯,測試參數有沒有問題:
testparm
#啟動samba服務
systemctl enable samba
systemctl restart samba
5、准備CentOS7.4 minimal 安裝文件,就是把ISO文件mount起來,然后把所有文件復制到tftpboot根目錄下
mount -o loop /centos7_minical.iso /media
mkdir /var/lib/tftpboot/centos7
cp -R /media/* /var/lib/tftpboot/centos7/
6、准備winpe文件,以及windwos 安裝文件,windows的安裝方法是先啟動winpe,然后在winpe環境下安裝你想要的windows系統
mount -o loop /win7u.iso /media #這里我以win7旗艦版為例
mkdir /var/lib/tftpboot/win7u
cp -R /media/* /var/lib/tftpboot/win7u/
mkdir /var/lib/tftpboot/winpe
cp winpe.iso /var/lib/tftpboot/winpe #winpe的ISO文件,使用你信得過的、干凈的,一般我是用windows automated Installation Kit(在官網上免費下載)自建一個,此處不展開敘述
#修改權限,將這兩個文件夾的所有人和組改為nobody,以便所有人都能訪問
7、寫PXE啟動腳本,如果你想腳本只對某台電腦有效,就用它的mac以01-mac-address的格式命名腳本,如果找不到自己mac地址命名的腳本pxe會跑default腳本,也可以用ip地址的十六進制格式命名腳本,此處略。
vi /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32 #指定默認的選單界面
timeout 50 #在選單界面停留5秒,如果沒有輸入執行選單中的第一項
menu title ######### PXE Boot Menu ##########
label 1 #第一項,本地硬盤引導,注意這只是通用方法,取決於你硬盤上操作系統的引導器,可能有時候會引導不起來,此處略
menu label ^1) Boot from local drive
localboot
label 2 #第二項,引導CentOS7的安裝程序,如果你要做無盤站請參考其他資料
menu label ^2) Install CentOS 7
kernel centos7/images/pxeboot/vmlinuz
append initrd=centos7/images/pxeboot/initrd.img method=http://192.168.4.104/tftpboot/centos7 devfs=nomount
label 3 #第三項,引導一個winpe無盤系統,然后你需要在winpe界面下 net use y: \\192.168.4.104\tftpboot\win7u 再從y:上面setup來安裝
menu label ^3) Install win7u
kernel memdisk
INITRD winpe/winpe_amd64.iso
append iso raw
#編輯完成,打開你主板上pxe引導選項,來試下pxe引導吧。