歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> BSD >> PXE全自動安裝FreeBSD操作實例

PXE全自動安裝FreeBSD操作實例

日期:2017/2/28 11:24:16   编辑:BSD


0、概述
當需要在多台計算機上安裝FreeBSD操作系統時,我們可以使用PXE全自動安裝方式,來減少重復工作量,這裡以實例介紹PXE安裝FreeBSD的實現過程。
整體思路是:
     PXE客戶端啟動 -> 從PXE服務端獲取IP地址和pxeboot ->
     pxeboot開始運行,以TFTP方式獲取/boot/loader.rc ->
     按照loader.rc設置啟動系統 -> 運行sysinstall,通過FTP獲取安裝文件,開始自動安裝
接下來,讓我們按照這個思路來一步步實現。
1、安裝DHCP服務
PXE啟動主要是通過DHCP服務實現,所以我們首先需要安裝DHCP服務,這裡使用isc-dhcp,並使用ports方式安裝。
# cd /usr/ports/net/isc-dhcp3-server # make install clean
出現ports選項,使用默認值。
server-name "PXE Server";
server-identifier 192.168.7.1;
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.10 192.168.7.250;
option routers 192.168.7.1;
option broadcast-address 192.168.7.255;
filename "boot/pxeboot";
next-server 192.168.7.1;
}
2、准備PXE環境
我們將PXE環境所需要的文件全部放於/home/pxe目錄下,首先要准備的就是pxeboot文件,pxeboot實際就是loader,只是它用於PXE環境。
標准的pxeboot默認使用NFS獲取啟動文件、內核等文件,但我們這裡設計的是TFTP方式,所以我們需要重新編譯pxeboot,讓它使用TFTP來獲取啟動文件,按照下面的步驟操作:
# cd /usr/src/sys/boot
# vi i386/libi386/pxe.c
將第339行
pxe_setnfshandle(rootpath);
注釋掉或者刪除,這樣可以避免pxeboot嘗試使用NFS而帶來的超時等待。
# setenv LOADER_TFTP_SUPPORT
# make clean && make
接下來把pxeboot放到/home/pxe中
# mkdir -p /home/pxe/boot
# cp /usr/src/sys/boot/i386/pxeldr/pxeboot /home/pxe/boot/
現在/home/pxe/boot目錄中有了pxeboot文件,現在我們需要准備/home/pxe/boot目錄中的其它文件,這裡我們使用安裝軟盤中的文件。
# mkdir -p /mnt/cd # mkdir -p /mnt/fd # mount -t cd9660 /dev/acd0 /mnt/cd # cp /mnt/cd/floppies/boot.flp /tmp # mdconfig -a -t vnode -u0 -f /tmp/boot.flp # mount /dev/md0 /mnt/fd # cp -RpP /mnt/fd/boot/* /home/pxe/boot/ # cp /boot/kernel/kernel /home/pxe/ # cp /mnt/fd/mfsroot.gz /home/pxe/ # umount /dev/md0 # mdconfig -d -u0
bootfile="/kernel" acpi_load="YES" acpi_name="/acpi.ko" mfsroot_load="YES" mfsroot_type="mfs_root" mfsroot_name="/mfsrot"
3、設置自動安裝
sysinstall在執行安裝操作前會檢查/install.cfg文件是否存在,如果存在則按照文件中的設置,執行全自動安裝。我們所使用的是標准安裝程序,整個安裝所需要的基本環境存放在 /home/pxe/mfsroot.gz 中,由於它沒有設置自動安裝,所以我們需要修改 mfsroot.tgz 為其增加 install.cfg 文件。
# cd /home/pxe # gzip -d mfsroot.gz # mdconfig -a -t vnode -u0 -f mfsroot # mount /dev/md0 /mnt/fd # vi /mnt/fd/install.cfg
然後輸入以下內容:
# 使用DHCP配置網絡 tryDHCP=YES
# 設置安裝方式為FTP和FTP服務器的地址
_ftpPath=ftp://192.168.7.1/
netDev=lnc0
mediaSetFTP
# 設置安裝類型為最小安裝,如果你需要全部內容,請改為 distSetDeveloper
distSetMinimum
# 磁盤分區配置
# 這裡設置FreeBSD使用整個硬盤,並且安裝bootmgr
disk=ad0
partition=all
bootManager=booteasy
diskPartitionEditor
# 設置disklabel
# 注意:所有的大小以512byte為單位
# 為 / 分配 512MB 的空間
ad0s1-1=ufs 1048576 /
# 512MB 交換區
ad0s1-2=swap 1048576 none
# 剩余的磁盤空間全部分配給/usr,並且開啟Soft-Updates
ad0s1-3=ufs 0 /usr 1
diskLabelEditor
# 開始執行安裝
installCommit
配置中已經簡單的說明每個配置的作用,更詳細的說明請參照sysinstall(8)
現在重新壓制mfsroot.gz
# umount /mnt/fd # mdconfig -d -u0 # gzip mfsroot
4、開啟相關服務
(1) DHCP服務
# ifconfig lnc0 192.168.7.1
# /usr/local/etc/rc.d/isc-dhcpd.sh start
(2) TFTP服務
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /home/pxe
現在可以啟動tftp服務了
# /usr/sbin/inetd
(3) FTP服務
我們設置了安裝程序使用FTP的方式獲取安裝文件,所以我們需要在這台服務器上開啟FTP服務。
首先增加系統用戶ftp及ftp組,並設置它的home目錄為/mnt/cd,因為我們所有的安裝程序都在光盤上,加上先前我們已經將光盤加載到/mnt/cd目錄中,所以這裡設置ftp帳號的home目錄為/mnt/cd,就是設置了Anonymous FTP服務的根目錄為/mnt/cd,當PXE客戶端安裝程序啟動時,安裝程序會從這裡取得安裝需要的文件
# pw groupadd ftp -g 21
# pw useradd ftp -u 21 -g ftp -s /usr/sbin/nologin -d /mnt/cd -w no
最後一步,啟動FTP服務
# /usr/libexec/ftpd -DA4
現在一切准備已經完成,找到台支持PXE的機器,以PXE方式引導,你就可以看到FreeBSD在它上面自動完成整個安裝過程了。
Copyright © Linux教程網 All Rights Reserved