簡單的網路引導安裝CentOS7

Amei1314發表於2016-09-27

  實驗室有幾臺電腦,裡邊裝有windows,因為實驗需求要給其裝入CentOS7。但是這幾個電腦無法用U盤引導系統的安裝,雖然帶有光碟機,但是又不想麻煩去買碟片,所以便想到用網路引導系統的安裝。

1. 軟體需求

  dhcpd:   動態分配IP

  xinetd:   對服務訪問進行控制,這裡主要時控制tftp

  tftp:     從伺服器端下載pxelinux.0、default檔案

  syslinux:   用於網路引導

  httpd:     在網路上提供安裝源,也就是映象檔案中的內容

yum install dhcp xinetd syslinux tftp-server httpd

  

2. 配置

  2.1 配置IP

    將伺服器的IP配置為192.168.100.1,以便與DHCP能夠正常啟動,後邊的TFTP,HTTP都是執行在這個IP上。

[root@Amei tftpboot]# ip addr add 192.168.100.1/24 brd + dev p4p1
[root@Amei tftpboot]# ip addr show dev p4p1

  

  2.2 配置DHCP

    如果要了解以下DHCP的工作原理以及簡單的配置,可以參考前一篇隨筆《CentOS7中DHCP配置》,這裡在其基礎之上增加了:

    next-server 192.168.100.1# tftp server的ip

    filename "pxelinux.0";

    dhcp的配置檔案/etc/dhcp/dhcpd.conf的內容:

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
# 1. 整體的環境設定
ddns-update-style none;
ignore client-updates;
default-lease-time 259200;
max-lease-time 518400;
option domain-name-servers 192.168.100.1;
# 上面是 DNS 的 IP 設定,這個設定值會修改客戶端的 /etc/resolv.conf
# 2. 關於動態分配的 IP
subnet 192.168.100.0 netmask 255.255.255.0 {
       range 192.168.100.101 192.168.100.200;
       option routers 192.168.100.1; 
       option subnet-mask 255.255.255.0;
       next-server 192.168.100.1;
       # the configuration  file for pxe boot
       filename "pxelinux.0";
}

  啟動dhcpd,檢視是否有問題,如果沒有成功啟動需要仔細檢視配置是否正確

systemctl start dhcpd.service

  2.3 配置TFTP

    tftp是由xinetd管理的,所以在需要配置 /etc/xinetd.d/tftp檔案,這個檔案中只需要改一個引數即可

service tftp
{
    socket_type        = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server            = /usr/sbin/in.tftpd
    server_args        = -s /var/lib/tftpboot
   #將此值改為no,表明開啟此服務 disable
= no per_source = 11 cps = 100 2 flags = IPv4 }

  開啟xinetd和tftp服務:

  tftp的埠為69,同時xinetd接管了此埠

[root@Amei tftpboot]# systemctl start xinetd
[root@Amei tftpboot]# systemctl start tftp

  

  2.4 檔案準備

     首先將已經下載好的CentOS的映象檔案掛載到一個目錄中,然後複製可引導的、壓縮的核心檔案vmlinuz,以及包含一些模組和安裝檔案系統的initrd。因為安裝過程中以http的方式提供映象源,所以這裡直接將映象檔案掛在到httpd訪問目錄中(/var/www/html)。

[root@Amei ~]#mkdir  /var/www/html/centos7
[root@Amei ~]# mount -o loop CentOS7.2.iso /var/www/html/centos7/

    複製vmlinuz,和 initrd.img 到TFTP訪問目錄的centos7子目錄中,因為以後會引導其它的系統,所以這裡通過子目錄將不同的系統區分開。

[root@Amei ~]# mkdir /var/lib/tftpboot/centos7
[root@Amei ~]# cp /var/www/html/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/
[root@Amei ~]# cp /var/www/html/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/

 

  2.5 設定syslinux載入器

    vesamenu.c32和menu.c32是syslinux所擁有眾多模組中的兩個,它們的功能是制定啟動器使用什麼模式的背景。Vesamenu.c32圖形模式,menu.c32文字模式。我選擇的時menu.c32。

    同時還需要pxelinux.0檔案,它對整個引導器的作用就如同核心對系統的作用一般,它可以解釋default檔案(配置引導選單的檔案)中的每個配置項,並根據配置項做出不同的反應。如等待的時間、啟動器背景、啟動選單、核心引導等等。

    所以我們需要將這兩個檔案複製到tftp的訪問目錄中:

cp  /usr/share/syslinux/menu.c32  /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

    接著就是pxelinux.cfg目錄,pxelinux被執行後,它會掃描該目錄下是否存在指定的配置檔案,如果存在,則引用被制定的配置檔案。
default檔案存放於pxelinux.cfg目錄中,pxelinux程式最後掃描的配置檔名就是default。所以,我們經常把啟動器配置項都寫入該檔案中。
    所以我們就要建立pxelinux.cfg,並在此目錄下建立default檔案,編輯引導選單。

[root@Amei ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@Amei ~]# emacs /var/lib/tftpboot/pxelinux.cfg/default

    default檔案內容為:

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
 
menu title ########## PXE Boot Menu ##########
 
label 1
menu label ^1) Install CentOS 7 x64 with HTTP
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://192.168.100.1/centos7 devfs=nomount

  2.5 檢查檔案以及服務

    此時/var/lib/tftp資料夾的結構應該是這樣的:

  

  確保開啟dhcpd,xinetd,tftp,http這些服務,在開啟的時候沒有發生錯誤,說明配置沒問題。

[root@Amei tftpboot]# systemctl start dhcpd.service 
[root@Amei tftpboot]# systemctl start xinetd.service 
[root@Amei tftpboot]# systemctl start tftp.service
[root@Amei tftpboot]# systemctl start httpd.service

   驗證httpd是否執行正常:

   

    同時為了防止意外的發生我們需要關閉防火牆和selinux。

[root@Amei tftpboot]# systemctl stop firewalld.service 
[root@Amei tftpboot]# setenforce 0

 

3. 測試

  pxe伺服器配置完成後,就可以在此子網中用網路引導安裝了,此時和普通的安裝系統差別不大,但是要選擇從網路引導。

    

    default中定義的選單

 

    

    熟悉的安裝介面    

    

 

相關文章