基於Linux系統的PXE搭建方法

天翼雲開發者社群發表於2023-04-27


本文分享自天翼雲開發者社群《 基於Linux系統的PXE搭建方法》 ,作者: t***n

連結: https://www.ctyun.cn/developer/article/410621015138373

 

一、底層環境準備

1、安裝RedHat7.6系統

2、關閉防火牆和Selinux

systemctl stop firewalld

chkconfig firewalld off

vim /etc/sysconfig/selinux

     修改 SELINUX=disabled

3、配置本地yum源

vim /etc/yum.repos.d/rhel7.repo     

     [rhel7]

     name=RHEL7

     baseurl=file:///mnt

     enabled=1

     gpgcheck=0

4、安裝需要的服務及軟體包

yum install vsftpd tftp-server dhcp syslinux system-config-kickstart

     dhcp:提供dhcp服務

     vsftpd:管理本地掛在的OS完整映象

     tftp-server:使可啟動映象透過使用tftp協議網路下載

     syslinux:包含網路啟動所需的boot loader

     system-config-kickstart:配置kickstart的圖形介面的工具

5、本地物理機網路配置

vim /etc/sysconfig/network-scripts/ifcfg-eth0

     TYPE=Ethernet

     BOOTPROTO=static

     NAME=eth0

     DEVICE=eth0

     >

     IPADDR=192.168.64.25

     NETMASK=255.255.255.0

     GATEWAY=192.168.64.2

二、配置 DHCP服務

vim /etc/dhcp/dhcpd.conf

     新增如下:

option arch code 93 = unsigned integer 16;

allow booting;

allow bootp;

subnet 192.168.64.0 netmask 255.255.255.0 {

   option routers 192.168.64.2;

   range 192.168.64.100 192.168.64.200;   #分配出去的IP範圍

   class "pxeclients" {

     match if substring (option vendor-class-identifier,0,9) = "PXEClient";

     next-server 192.168.64.25;     #tftp地址,即本機PXE server IP

     if option arch = 00:07 {

       filename "pxelinux/BOOTX64.EFI";  #6系統UEFI模式下PXE啟動時的引導檔案,7系列系統還可以使用shim&grubx64.efi

      }

     else {

       filename "pxelinux/pxelinux.0";  #Legacy模式

     }

   }

}

注意:啟動 DHCP前要配好本機網路地址資訊,否則無法啟動dhcpd

啟動服務:

     #service dhcpd start                                [ok]

     #service dhcpd restart                              [ok]

三、配置 tftp服務

vim /etc/xinetd.d/tftp

service tftp

{

  socket_type    = dgram

  protocol         = udp

  wait                = yes

  user                = root

  server             = /usr/sbin/in.tftpd

  service_args   = -s/tftpboot ###修改為引導檔案的路徑,本文以 /var/lib/tftpboot為例

  per_xource     = 11

  cps                 = 100 2

  flags               =IPv4

  disable           = no  ###將disable改為no

}

啟動服務:

     #service xinetd restart                             [ok]

四、配置 PXE啟動引導目錄

1、將系統映象mount或複製到PXE伺服器上

mkdir /var/ftp/pub/RHEL7_6  ###因為用ftp搭建,所以要放在/var/ftp/資料夾中,RHEL7_6是以系統命名的,若還要其它系統可同時存在,做好區分即可

mount /dev/sr0 /mnt

cp /mnt/* /var/ftp/pub/RHEL7_6/  ###此處全copy過去,若掛載為mount /dev/sr0 /var/ftp/pub/RHEL7_6,但是mount是一次生效的,後續再用還需要mount,且安裝系統過程中mount 不能中斷

2、copy引導檔案到/var/lib/tftpboot/pxelinux中

mkdir /var/lib/tftpboot/pxelinux/RHEL7_6  ###因為可能會做多個系統,所以在pxelinux中建立不同系統所對應的資料夾

cp /var/ftp/pub/RHEL7_6/images/pxeboot/vmlinuz /var/lib/tftpboot/pxelinux/RHEL7_6

cp /var/ftp/pub/RHEL7_6/images/pxeboot/initrd.img /var/lib/tftpboot/pxelinux/RHEL7_6

cp /var/ftp/pub/RHEL7_6/EFI/BOOT/BOOTX64.EFI /var/lib/tftpboot/pxelinux

cp /var/ftp/pub/RHEL7_6/EFI/BOOT/grubx64.cfg /var/lib/tftpboot/pxelinux

  3、建立Legacy模式的安裝啟動檔案default

mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg

vim default

     default 0  #預設進label0

     timeout 600  #600秒後自動進label1系統安裝     

     prompt 1

 

     label 0

         localboot 0

     label 1

         kernel RHEL7_6/vmlinuz

         append initrd=RHEL7_6/initrd.img inst.repo=ftp://192.168.64.25/pub/RHEL7_6/ ip=dhcp nomodeset ks=ftp://192.168.64.24/pub/RHEL7_6/ks7_6.cfg

4、建立UEFI模式的引導檔案grub.efi

vim /var/lib/tftpboot/pxelinux/grub.efi

 

     menuentry 'Install Red Hat Enterprise Linux 7.6' --class fedora --class gnu-linux --class gnu --class os {

     linuxefi /pxelinux/RHEL7_6/vmlinuz inst.repo=ftp://192.168.64.25/pub/RHEL7_6  ks=ftp://192.168.64.24/pub/RHEL7_6/ks7_6.cfg  

     initrdefi /pxelinux/RHEL7_6/initrd.img

  }

5、將/var/lib/tftpboot/pxelinux.0檔案複製到/var/lib/tftpboot/pxelinux資料夾中

五、重啟 PXE伺服器

六、重啟 PXE伺服器系統下的相關服務

service dhcpd restart

service xinetd restart

service vsftpd restart

service tftp restart


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2949169/,如需轉載,請註明出處,否則將追究法律責任。

相關文章