首頁 > 軟體

使用PXE安裝CentOS 7.2

2020-06-16 16:56:08

1.環境

本文使用VMware 虛擬機器進行實驗。

點選VMware--編輯--虛擬網路編輯器,新建VMnet15,選擇僅主機模式,取消勾選DHCP服務(因為這裡使用自己的DHCP服務)。我這裡配好後是192.168.93.0/24網路。

  • 一台PXE伺服器

CentOS 7.2系統

2張網絡卡,

網絡卡eno16777736 ,使用NAT模式(用於yum安裝軟體),DHCP獲取IP

網絡卡eno50332184 ,連線至VMnet15網路,設定靜態IP:192.168.93.10

  • 一台PXE客戶機(待安裝系統)

2GB 記憶體(太小不行)

1張網絡卡,

網絡卡eno16777736 ,連線至VMnet15網路

2.需求

  • SYSLINUX,提供pxelinux.0
  • DHCP-SERVER,為客戶機提供IP
  • TFTP-SERVER,為客戶機提供簡單檔案傳輸(如傳輸pxelinux.0等)
  • VSFTP-SERVER或APACHE-SERVER,提供repo的系統檔案服務
  • CentOS 7.2(或7.4都行)安裝光碟,如CentOS-7-x86_64-Everything-1511.iso

3.設定

在PXE伺服器上,

3.1預設定

臨時關閉防火牆

systemctl stop firewalld

臨時關閉SELinux

setenforce 0

安裝各個伺服器與依賴庫

yum -y install tftp-server vsftpd syslinux dhcp xinetd

掛載CentOS 7.2安裝光碟(需要先將光碟連線至PXE伺服器虛擬機器上)

mount -t iso9660 -o loop /dev/cdrom /mnt

3.2設定VSFTP

為了vsftp伺服器使用光碟,把/mnt再繫結到/var/ftp/centos(因為vsftp不允許軟連線目錄)

mkdir -p /var/ftp/centos
mount --bind /mnt/ /var/ftp/centos

3.3設定TFTP

3.3.1設定pxe啟動檔案

新建tftp啟動目錄

mkdir -p /tftpboot/pxelinux.cfg

把光碟中isolinux裡面的檔案都複製到tftp啟動目錄中

cd /mnt/isolinux
cp -a * /tftpboot/

複製pxelinux.0

cp /usr/share/syslinux/pxelinux.0 /tftpboot/

 將tftp啟動目錄中的isolinux.cfg(剛從光碟中複製過來的)改名default,並移動至pxelinux.cft目錄下

cd /tftpboot
mv
isolinux.cfg pxelinux.cfg/default

編輯default檔案,增加我們設定的PXE啟動項

vi pxelinux.cfg/default

在一堆label 上面新增如下內容

label linux-nidey
menu label ^Install CentOS 7 nidey
kernel vmlinuz
append initrd=initrd.img inst.repo=ftp://192.168.93.10/centos quiet

label另起一個名字,menu就是客戶機啟動時看到的安裝選項名

注意,如果不使用kickstart自動部署,則append後面第二個引數應該用inst.repo,而不是inst.stage2(這種情況客戶機啟動時會卡在獲取安裝源步驟)

URL使用前面設定的vsftp伺服器(也可以使用Apache-server的http服務,或者搭建nfs也行)

append引數使用inst.stage2則安裝時會卡在這裡

append引數使用inst.repo則安裝時正常獲取安裝源(圖是另截的,見諒...)

3.3.2設定tftp-server

tftp伺服器依附於xinetd服務下,

vim /etc/xinetd.d/tftp

server_args 設定我們剛才建立的tftp啟動目錄,並啟用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
}  

3.4設定DHCP

vim /etc/dhcp/dhcpd.conf

設定允許引導啟動,

192.168.93.0子網,掩碼255.255.255.0,地址池192.168.93.240~192.168.93.250

引導啟動檔名為pxelinux.0(syslinux提供的,在/tftpboot目錄下)

next-server設定為PXE伺服器IP,也就是本機:192.168.93.10

因為這裡只在一個區域網下安裝系統,閘道器和DNS其實都不用設定。

ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.93.0 netmask 255.255.255.0
{
# option routers 192.168.93.1;
# option domain-name "s.un";
# option domain-name-servers 192.168.93.1;
option subnet-mask 255.255.255.0;
option time-offset -18000;
default-lease-time 21600;
max-lease-time 43200;
range dynamic-bootp 192.168.93.240 192.168.93.250;
filename "pxelinux.0";
next-server 192.168.93.10;
}  

3.5啟動服務

systemctl start xinetd
systemctl start dhcpd
systemctl start vsftpd

4.安裝

在PXE客戶機上,

進入BISO,設定網路啟動為第一項。

開機,DHCP獲取,IP,載入啟動,進入安裝介面,選擇安裝就好了。

CentOS7.2下PXE+kickstart自動化安裝系統  http://www.linuxidc.com/Linux/2017-11/148604.htm

自動化運維之-PXE實現系統批次自動安裝  http://www.linuxidc.com/Linux/2017-10/147379.htm

Ubuntu 16.04+Kickstart+PXE安裝系統  http://www.linuxidc.com/Linux/2017-09/146763.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2018-01/150563.htm


IT145.com E-mail:sddin#qq.com