首先交代環境。本地2台主機,一台windows主機,一台等待安裝centos的主機。2台主機在同一個局域網。通過路由器自動獲取ip上網。
網上大多數pxe安裝方式都采用自己搭建dns服務器的方式來進行,but,我們的dns服務器就是一個小破路由器,自然是做不來這個事情。
所以經過一番google,決定使用dnsmasq來搞定我們的dns服務器。臨時湊合用用(主要是,突然發現家里沒有一個大一點的U盤,也是醉了),網絡環境:路由器網關 192.168.2.1,win ip:192.168.2.2,pxe server ip:192.168.2.3
1.win主機上,hyper-v虛擬一個centos,暫稱為 pxe server
2.安裝配置dnsmasq。
#安裝dnsmasq
yum install dnsmasq
#配置dnsmasq
mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
vi /etc/dnsmasq.conf
#編輯如下類容
#網卡名字,通過ip addr獲取
interface=eno16777736,lo
domain=centos7.lan
# DHCP range-leases
dhcp-range= eno16777736,192.168.1.100,192.168.1.253,255.255.255.0,1h
# PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
# Gateway
dhcp-option=3,192.168.1.1
# DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
# Broadcast Address
dhcp-option=28,10.0.0.255
# NTP Server
dhcp-option=42,0.0.0.0
pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot
參數解釋:
interface – 服務器需要監聽並提供服務的網絡接口。
bind-interfaces – 取消注釋來綁定到該網絡接口
domain – 替換為你的域名。
dhcp-range – 替換為你的網絡掩碼定義的網段。
dhcp-boot – 替換該IP地址為你的網絡接口IP地址。
dhcp-option=3,192.168.1.1 – 替換該IP地址為你的網段的網關。
dhcp-option=6,92.168.1.1 – 替換該IP地址為你的DNS服務器IP——可以定義多個IP地址。
server=8.8.4.4 – 這里放置DNS轉發服務器IP地址。
dhcp-option=28,10.0.0.255 – 替換該IP地址為網絡廣播地址——可選項。
dhcp-option=42,0.0.0.0 – 這里放置網絡時鍾服務器——可選項(0.0.0.0地址表示參考自身)。
pxe-prompt – 保持默認——按F8進入菜單,60秒等待時間。
pxe=service – 使用x86PC作為32為/64位架構,並在字符串引述中輸入菜單描述提示。其它類型值可以是:PC98,IAEFI,Alpha,Arcx86,IntelLeanClient,IA32EFI,BCEFI,XscaleEFI和X86-64EFI。
enable-tftp – 啟用內建TFTP服務器。
tftp-root – 使用/var/lib/tftpboot——所有網絡啟動文件所在位置。
3.安裝syslinux和tftp-server並完成配置
yum install syslinux
yum install tftp-server
#copy 安裝引導文件
cp -r /usr/share/syslinux/* /var/lib/tftpboot
mkdir /var/lib/tftpboot/pxelinux.cfg
#創建安裝引導配置文件並編輯為下面的內容
touch /var/lib/tftpboot/pxelinux.cfg/default
#我們使用syslinux引導安裝,通過ftp傳輸安裝包,所以,label 2,3,4可以刪除。
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
menu title ########## PXE Boot Menu ##########
label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
kernel centos7/vmlinuz
#我們自己搭建的ftp地址:ftp://192.168.1.20/pub
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount
label 2
menu label ^2) Install CentOS 7 x64 with <http://mirror.centos.org> Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86\_64/ devfs=nomount ip=dhcp
label 3
menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password
label 4
menu label ^4) Boot from local drive
4.准備centos安裝包
#首先使用sftp之類的工具把我們的centos安裝鏡像上傳到我們的pxe server
#接着,掛在這個鏡像
5.mount -o loop /path/to/centos-dvd.iso /mnt
#創建tftp安裝文件下載目錄,並copy鏡像內的文件到目錄
mkdir /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7
#安裝ftp。copy鏡像文件到ftp目錄。此處目錄要和syslinux配置的引導配置文件中的地址要一致
yum install vsftpd
cp -r /mnt/* /var/ftp/pub/
#修改文件權限
chmod -R 755 /var/ftp/pub
5.准備工作已完成,接下來就是配置需要安裝centos的主機了。
檢查主板是否開啟並支持了pxe安裝方式。大約就是進blos配置一下
無恥的盜一下圖:
並且設置pxe為啟動順序第一位,然后保存配置重啟主機。
這個時候,不出意外的話,主機上就會顯示我們在pxe server里配置syslinux引導菜單了。
選擇 label 1 開始安裝。
附上pxe server的日志