在 Ubuntu 14.04 中配置 PXE 服務器
PXE(預啟動執行環境(Preboot Execution Environment))服務器允許用戶從網絡中啟動 Linux 發行版并且可以不需要 Linux ISO 鏡像就能同時在數百臺 PC 中安裝。如果你客戶端的計算機沒有 CD/DVD 或USB 引導盤,或者如果你想在大型企業中同時安裝多臺計算機,那么 PXE 服務器可以幫你節省時間和金錢。
在這篇文章中,我們將告訴你如何在 Ubuntu 14.04 配置 PXE 服務器。
配置網絡
開始前,你需要先設置 PXE 服務器使用靜態 IP。在你的系統中要使用靜態 IP 地址,需要編輯 “/etc/network/interfaces” 文件。
打開 “/etc/network/interfaces” 文件.
sudo nano /etc/network/interfaces
作如下修改:
# 回環網絡接口 auto lo iface lo inet loopback # 主網絡接口 auto eth0 iface eth0 inet static address 192.168.1.20 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8
保存文件并退出。這將設置其 IP 地址為“192.168.1.20”。然后重新啟動網絡服務。
sudo /etc/init.d/networking restart
安裝 DHCP, TFTP 和 NFS:
DHCP,TFTP 和 NFS 是 PXE 服務器的重要組成部分。首先,需要更新你的系統并安裝所有需要的軟件包。
為此,運行以下命令:
sudo apt-get update sudo apt-get install isc-dhcp-Server inetutils-inetd tftpd-hpa syslinux nfs-kernel-Server
配置 DHCP 服務:
DHCP 代表動態主機配置協議(Dynamic Host Configuration Protocol),它主要用于動態分配網絡配置參數,如用于接口和服務的 IP 地址。在 PXE 環境中,DHCP 服務器允許客戶端請求并自動獲得一個 IP 地址來訪問網絡。
1、編輯 “/etc/default/dhcp3-server” 文件.
sudo nano /etc/default/dhcp3-server
作如下修改:
INTERFACES="eth0"
保存 (Ctrl + o) 并退出 (Ctrl + x) 文件.
2、編輯 “/etc/dhcp3/dhcpd.conf” 文件:
sudo nano /etc/dhcp/dhcpd.conf
作如下修改:
default-lease-time 600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.21 192.168.1.240; option subnet-mask 255.255.255.0; option routers 192.168.1.20; option broadcast-address 192.168.1.255; filename "pxelinux.0"; next-Server 192.168.1.20; }
保存文件并退出。
3、啟動 DHCP 服務.
sudo /etc/init.d/isc-dhcp-server start
配置 TFTP 服務器:
TFTP 是一種文件傳輸協議,類似于 FTP,但它不用進行用戶認證也不能列出目錄。TFTP 服務器總是監聽網絡上的 PXE 客戶端的請求。當它檢測到網絡中有 PXE 客戶端請求 PXE 服務時,它將提供包含引導菜單的網絡數據包。
1、配置 TFTP 時,需要編輯 “/etc/inetd.conf” 文件.
sudo nano /etc/inetd.conf
作如下修改:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
保存文件并退出。
2、編輯 “/etc/default/tftpd-hpa” 文件。
sudo nano /etc/default/tftpd-hpa
作如下修改:
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS="[:0.0.0.0:]:69" TFTP_OPTIONS="--secure" RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot"
保存文件并退出。
3、 使用xinetd讓 boot 服務在每次系統開機時自動啟動,并啟動tftpd服務。
sudo update-inetd --enable BOOT sudo service tftpd-hpa start
4、檢查狀態。
sudo netstat -lu
它將如下所示:
Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:tftp *:*
配置 PXE 啟動文件
現在,你需要將 PXE 引導文件 “pxelinux.0” 放在 TFTP 根目錄下。為 TFTP 創建目錄結構,并從 “/usr/lib/syslinux/” 復制 syslinux 提供的所有引導程序文件到 “/var/lib/tftpboot/” 下,操作如下:
sudo mkdir /var/lib/tftpboot sudo mkdir /var/lib/tftpboot/pxelinux.cfg sudo mkdir -p /var/lib/tftpboot/Ubuntu/14.04/amd64/ sudo cp /usr/lib/syslinux/vesamenu.c32 /var/lib/tftpboot/ sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
設置 PXELINUX 配置文件
PXE 配置文件定義了 PXE 客戶端啟動時顯示的菜單,它能引導并與 TFTP 服務器關聯。默認情況下,當一個 PXE 客戶端啟動時,它會使用自己的 MAC 地址指定要讀取的配置文件,所以我們需要創建一個包含可引導內核列表的默認文件。
編輯 PXE 服務器配置文件,使用有效的安裝選項。
編輯 “/var/lib/tftpboot/pxelinux.cfg/default”:
sudo nano /var/lib/tftpboot/pxelinux.cfg/default
作如下修改:
DEFAULT vesamenu.c32 TIMEOUT 100 PROMPT 0 MENU INCLUDE pxelinux.cfg/PXE.conf NOESCAPE 1 LABEL Try Ubuntu 14.04 Desktop MENU LABEL Try Ubuntu 14.04 Desktop kernel Ubuntu/vmlinuz append boot=casper netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64 initrd=Ubuntu/initrd.lz quiet splash ENDTEXT LABEL Install Ubuntu 14.04 Desktop MENU LABEL Install Ubuntu 14.04 Desktop kernel Ubuntu/vmlinuz append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64 initrd=Ubuntu/initrd.lz quiet splash ENDTEXT
保存文件并退出。
編輯 “/var/lib/tftpboot/pxelinux.cfg/pxe.conf” 文件。
sudo nano /var/lib/tftpboot/pxelinux.cfg/pxe.conf
作如下修改:
MENU TITLE PXE Server NOESCAPE 1 ALLOWOPTIONS 1 PROMPT 0 MENU WIDTH 80 MENU ROWS 14 MENU TABMSGROW 24 MENU MARGIN 10 MENU COLOR border 30;44 #ffffffff #00000000 std
保存文件并退出。
為 PXE 服務器添加 Ubuntu 14.04 桌面啟動鏡像
對于這一步需要 Ubuntu 內核和 initrd 文件。要獲得這些文件,你需要 Ubuntu 14.04 桌面 ISO 鏡像。你可以通過以下命令下載 Ubuntu 14.04 ISO 鏡像到 /mnt 目錄:
sudo cd /mnt sudo wget http://releases.ubuntu.com/14.04/ubuntu-14.04.3-desktop-amd64.iso
注意: 下載用的 URL 可能會改變,因為 ISO 鏡像會進行更新。如果上面的網址無法訪問,看看 這個網站 ,了解最新的下載鏈接。
掛載 ISO 文件,使用以下命令將所有文件復制到 TFTP文件夾中:
sudo mount -o loop /mnt/ubuntu-14.04.3-desktop-amd64.iso /media/ sudo cp -r /media/* /var/lib/tftpboot/Ubuntu/14.04/amd64/ sudo cp -r /media/.disk /var/lib/tftpboot/Ubuntu/14.04/amd64/ sudo cp /media/casper/initrd.lz /media/casper/vmlinuz /var/lib/tftpboot/Ubuntu/
將導出的 ISO 目錄配置到 NFS 服務器上
現在,你需要通過 NFS 協議來設置“安裝源鏡像( Installation Source Mirrors)”。你還可以使用 HTTP 和 FTP 來安裝源鏡像。在這里,我已經使用 NFS 輸出 ISO 內容。
要配置 NFS 服務器,你需要編輯 “/etc/exports” 文件。
sudo nano /etc/exports
作如下修改:
/var/lib/tftpboot/Ubuntu/14.04/amd64 *(ro,async,no_root_squash,no_subtree_check)
保存文件并退出。為使更改生效,輸出并啟動 NFS 服務。
sudo exportfs -a sudo /etc/init.d/nfs-kernel-server start
現在,你的 PXE 服務器已經準備就緒。
配置網絡引導 PXE 客戶端
PXE 客戶端可以是任何支持 PXE 網絡引導的計算機系統。現在,你的客戶端只需要在系統的 BIOS 中設置 “從網絡引導(Boot From Network)” 選項就可以啟動并安裝 Ubuntu 14.04 桌面。
現在準備出發吧 - 用網絡引導啟動你的 PXE 客戶端計算機,你現在應該看到一個子菜單,顯示了我們創建的 Ubuntu 14.04 桌面的菜單項。
結論
配置使用 PXE 服務器從網絡啟動安裝能提高效率和節省時間。你可以在本地網絡中同時安裝數百個客戶端。所有你需要的只是一個 PXE 服務器和能啟動 PXE 的客戶端。試試吧,如果這個對你有用請讓我們知道。
參考:
圖片來源: fupsolunl20
via: https://www.maketecheasier.com/configure-pxe-server-ubuntu/
作者:Hitesh Jethva 譯者:strugglingyouth 校對:wxy