您好,登錄后才能下訂單哦!
CentOS 7中怎么安裝PXE服務器,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
第一步
測試是否能上網:ping www.baidu.com
更新yum倉庫源:yum repolist
第二步
安裝dhcpd、tftp、syslinux、wget和vsftpd
輸入 yum install -y dhcp tftp tftp-server syslinux wget vsftpd
第三步
關閉SELinux和防火墻
手動修改/etc/selinux/config,確保SELINUX=permissive
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
poweroff
第四步
在VMWARE中將虛擬機的網絡適配器設置為“主機模式”vmnet0
編輯,虛擬網絡編輯器,vmnet0,去掉勾選,即不允許本地的dhcp服務器分配ip
第五步
這時候已經不需要上網了,所以可以為CentOS 7隨意設置IP地址
nmcli con show
nmcli con modi ens32 ipv4.method manual ipv4.addresses 192.168.1.1/24
#我的網卡接口id是ens32。于是將它的IP設為192.168.1.1
nmcli con up ens32
nmcli con show
ip a
#確認192.168.1.1已經成功設置
第六步
設置dhcp服務器
vim /etc/dhcp/dhcpd.conf
確保配置文件內容如下:
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;
# A slightly different configuration for an internal subnet.
subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.2 192.168.1.253;
option domain-name-servers 192.168.1.1;
option domain-name "server1.example.com";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
# PXE SERVER IP
next-server 192.168.1.1; # DHCP server ip
filename "pxelinux.0";
}
至此,上文的filename所指的pxelinux.0目前還沒有部署到位。最終它的位置是/tftpboot/pxelinux.0,但不要在這里使用路徑,僅使用這個名稱就好。上面的每一行結尾都是一個分號(;)。
第七步
為xinetd配置TFTP服務器,即將tftp服務交給xinetd來管理
vim /etc/xinetd.d/tftp
/etc/xinetd.d/tftp的內容如下:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
我們要將tftp服務的位置挪到/tftpboot中,將有個程序仍然認為它的路徑在/var/lib/tftpboot中,所以,要改回來。
vim /usr/lib/systemd/system/tftp.service
將ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot
修改為:ExecStart=/usr/sbin/in.tftpd -s /tftpboot
看,只有這樣,才能與/etc/xinetd.d/tftp中的相應內容保持一致
第八步
設置TFTP服務器網絡啟動文件。首先要創建一個路徑/tftpboot
mkdir /tftpboot
chmod 777 /tftpboot
cp -v /usr/share/syslinux/pxelinux.0 /tftpboot
cp -v /usr/share/syslinux/menu.c32 /tftpboot
cp -v /usr/share/syslinux/memdisk /tftpboot
cp -v /usr/share/syslinux/mboot.c32 /tftpboot
cp -v /usr/share/syslinux/chain.c32 /tftpboot
再創建兩個路徑:
mkdir /tftpboot/pxelinux.cfg
mkdir /tftpboot/netboot/
第九步
將CentOS的ISO文件發布到FTP的文件夾中。要做到這一點,必須要有一個CentOS 7的ISO文件。我要把它以虛擬光盤的形式掛載到虛擬機中
點擊屏幕右下方光盤圖標,在短菜單中選擇“連接到主機”
lsblk
查看光盤掛載的路徑,如sr0 /run/media/root/CentOS 7 x86_64
mkdir -p /var/ftp/pub
cp -r /run/media/root/'CentOS 7 x86_64'/* /var/ftp/pub
“CentOS 7 x86_64”要用引號括起來,否則會出錯。
cp -r /run/media/root/CentOS 7\ x86_64/* /var/ftp/pub
第十步
將啟動時需要使用的鏡像文件拷貝到目錄位置
cp /var/ftp/pub/images/pxeboot/vmlinuz /tftpboot/netboot/
cp /var/ftp/pub/images/pxeboot/initrd.img /tftpboot/netboot/
第十一步
創建一個kickstart,即無人值守安裝文件,名字叫ks.cfg
vim /var/ftp/pub/ks.cfg
其內容如下:
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use NFS installation media
url --url="ftp://192.168.1.1/pub/"
rootpw --plaintext 123456
#root的密碼設為123456
# Use graphical install
graphical
firstboot disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux disabled
# Installation logging level
logging level=info
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader location=mbr
clearpart --all --initlabel
part swap --asprimary --fstype="swap" --size=1024
part /boot --fstype xfs --size=200
part pv.01 --size=1 --grow
volgroup rootvg01 pv.01
logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --grow
%packages
@core
wget
%end
%post
%end
保存后,用ksvalidator檢查一下是否有語法錯誤
ksvalidator /var/ftp/pub/ks.cfg
第十二步
創建一個pxe菜單
vim /tftpboot/pxelinux.cfg/default
default的內容如下:
default menu.c32
prompt 0
timeout 30
MENU TITLE Togogo.net Linux Training
LABEL centos7_x64
MENU LABEL CentOS 7 X64
KERNEL /netboot/vmlinuz
APPEND initrd=/netboot/initrd.img inst.repo=ftp://192.168.1.1/pub ks=ftp://192.168.1.1/pub/ks.cfg
最后這個APPEND寫成一行,中間不要斷行
第十三步
systemctl enable dhcpd
systemctl enable tftp
systemctl enable vsftpd
將以上服務設為開機自動啟動
systemctl restart vsftpd
systemctl restart dhcpd
systemctl restart tftp
重新啟動以上服務
驗證
在VMware中創建一個新的虛擬機,以充當驗證PXE服務器的客戶機。將其網絡適配器的網絡連接設為“主機模式”
然后啟動這臺虛擬機。于是,我們就能看到,這臺虛擬機可以在無人干預的情況下安裝CentOS Linux的Minimal,即最小化安裝
這個過程可能會遇到的困難是將PXE客戶機與PXE服務器放到同一個網段中。如果我們在家里上網,物理網卡的IP地址可能是192.168.1.X,那就可以完全按照上面的步驟進行。
如果物理網卡的IP地址是192.168.0.X,甚至是別的什么,那就手動修改網卡的IP,把它變成192.168.1.X。因為,VMware的橋接設置,會讓“PXE客戶機”獲取192.168.1.0/24這個網段的IP地址,正好跟“PXE服務器”相同
出錯情況匯總
1、yum安裝沒有成功
第一步yum安裝的時候,就沒有成功,自己卻忽略了。可能的情況是:1)/etc/yum.repos.d目錄中存在著另一個倉庫且無法使用。需要將其disable或刪除。2)無法上網。ping www.baidu.com時顯示找不到目標。
yum repolist
2、沒有修改PXE服務器的IP地址192.168.1.1
10.xx.xxx.xx
3、沒有將/var/ftp/pub/images/pxeboot/vmlinuz和initrd.img拷貝到/tftpboot/netboot下
4、/tftpboot/pxelinux.cfg/default內容殘缺
5、/etc/selinux/config中SELINUX=disable,正確的應該是disabled
6、vsftpd配置不允許匿名登錄,導致客戶機無法下載所需要的安裝文件
7、沒有設置成"橋接模式"
8、測試的客戶機中仍然使用ISO來安裝
9、硬盤滿了
設置PXE服務器的網絡
1)PXE服務器中的設置
nmcli con show
nmcli con modi ens33 ipv4.method manual ipv4.addresses 192.168.1.1/24
nmcli con up ens33
ip a
確認ens33的地址是192.168.1.1
2)物理機上的設置
將物理網卡的設置改為固定IP
IP地址:192.168.1.2
子網掩碼:255.255.255.0
網關:192.168.1.1
3)VMware的設置
在VMware中將PXE服務器虛擬機的網絡設為“橋接模式”
恢復PXE服務器的網絡
1)將物理網卡改為自動獲取IP地址
2)VMware中將PXE服務器虛擬機的網絡設為“NAT模式”
3)PXE服務器中的設置
ip a ----192.168.1.1
nmcli con show
nmcli con modi ens33 ipv4.method auto
nmcli con up ens33
ping www.baidu.com
yum install syslinux ----> pxelinux.0
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。