用Linux 搭建 PXE 網絡引導環境


本例子中使用了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,以便所有人都能訪問

chown -R nobody:nobody /var/lib/tftp/win7u
chown -R nobody:nobody /var/lib/tftp/winpe

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引導吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM