簡單的網絡引導安裝CentOS7


  實驗室有幾台電腦,里邊裝有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中定義的菜單

 

    

    熟悉的安裝界面    

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM