Установка PXE сервера на Centos 8

baltun

Администратор
Сообщения
10.894
Реакции
2.594
Баллы
2.003
Устанавливаем необходимые компоненты на Centos:
Код:
sudo dnf install -y syslinux syslinux-tftpboot tftp-server tftp xinetd dhcp-server

Далее изменяем файл по пути /etc/dhcp/dhcpd.conf на такое содержание:
Код:
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
authoritative;
allow bootp;
allow booting;
max-lease-time 1200;
default-lease-time 900;
log-facility local7;

option ip-forwarding    false;
option mask-supplier    false;

subnet 192.168.1.0 netmask 255.255.255.0 {

       option  routers   192.168.1.1;
       option  domain-name-servers  127.0.0.1;
       range 192.168.1.245 192.168.1.250;
       next-server 192.168.1.52; /*тут указывает свой сервер с образами*/
}

option architecture-type code 93 = unsigned integer 16;
class "pxeclients" {
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
        if option architecture-type = 00:00 {
                filename "lpxelinux.0";
        } elsif option architecture-type = 00:07 {
                filename "EFI/grubx64.efi";
        } else {
                filename "pxelinux.0";
        }
}

Создаем файл по пути /etc/xinetd.d/tftp с таким содержанием:
Код:
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -p -svvv /mnt/HDD/tftpboot --verbose --blocksize 1468 /*тут ваш путь до папки с образами*/
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

Далее соответственно настраиваем samba для раздачи образов наш пример конфигурационного файла такой:
Код:
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
    workgroup = WORKGROUP
    server string = Samba Server Version %v
    log file = /var/log/samba/log.%m
    max log size = 50
    idmap config * : backend = tdb
    cups options = raw
    netbios name = Centos Server
    map to guest = bad user
    dns proxy = no
    public = yes
## For multiple installations the same time - not lock kernel
    kernel oplocks = no
    nt acl support = no
    security = user
    guest account = nobody

[Images]
        comment = Windows 10 Image
        path = /mnt/HDD/tftpboot/images/
        read only = no
        writeable = no
        browseable = yes
        public = yes
        printable = no
        guest only = Yes
        guest ok = yes
        acl allow execute always = true
#        valid users = nobody

#[printers]
#    comment = All Printers
#    path = /var/tmp
#    printable = Yes
#    create mask = 0600
#    browseable = No

После всего создаем файл по пути /mnt/HDD/tftpboot/pxelinux.cfg/default с нашими образами наш пример такой:
Код:
MENU TITLE Boot menu PXE by xsacha
DEFAULT vesamenu.c32
TIMEOUT 0
PROMPT 0

label Install MS Windows 10
  menu label MS Windows 10 x64
  kernel memdisk
  initrd images/windows10/winpe.iso
  append iso raw
 
label Install MS Windows 7
  menu label MS Windows 7 x64
  kernel memdisk
  initrd images/windows7/winpe_amd64.iso
  append iso raw
 
label Install MS Windows Server 2019
  menu label MS Windows Server 2019 x64
  kernel memdisk
  initrd images/windows2019/winpe_srv.iso
  append iso raw
 
label Install MS Windows Server 2016
  menu label MS Windows Server 2016 x64
  kernel memdisk
  initrd images/windows2016/winpe_srv16.iso
  append iso raw
 
label MS Windows 10 PE
  menu label MS Windows 10 PE
  kernel memdisk
  initrd images/windowspe10/SonyaLiveCD_17.03.2012.iso
  append iso raw
 
label MS Test
  menu label Test
  kernel memdisk
  initrd images/test/WinPE_mini.iso
  append iso raw
 
label MS ERD Commander
  menu label MS ERD Commander v10
  kernel memdisk
  initrd images/erdc/dart10.iso
  append iso raw
 
label Kolibri
  menu label KolibriOS v0.7.7.0+
  kernel memdisk
  append initrd=images/kolibri/kolibri.img
 
label Acronis
  menu label Acronis 2021
  kernel memdisk
  append iso raw initrd=images/acronis/AcronisTrueImage2021Build32010BootCD.iso
 
label Victoria
  menu label Victoria v3.5
  kernel memdisk
  append iso raw initrd=images/victoria/vcr35r.iso
 
label MHDD
  menu label MHDD 4.6
  kernel memdisk
  append iso raw initrd=images/mhdd/mhdd32ver4.6.iso
 
label Memtest86+
  menu label Memtest86+ v5.31b
  kernel memtest
 
label reboot
  menu label REBOOT
  kernel reboot.c32
 
menu end
Соответственно после всего копируем наши образы по пути /mnt/HDD/tftpboot/images и в заключение переносим нужные нам файлы из папки /usr/share/syslinux в папку /mnt/HDD/tftpboot наш список файлов следующий:
  1. ipxe.efi
  2. ldlinux.c32
  3. ldlinux.e64
  4. libcom32.c32
  5. libcom32.elf
  6. libutil.c32
  7. linux.c32
  8. lpxelinux.0
  9. memdisk
  10. memtest
  11. pxelinux.0
  12. reboot.c32
  13. sanboot.c32
  14. syslinux.efi
  15. vesamenu.c32
Следует помнить что в режиме UEFI не будет работать PXE сервер, по крайней мере нам пока так не получилось его завести, но в режиме CSM работает все без проблем только требуется изменить настройку в биос на соответствующий режим и включить загрузку по сети. Использую данные настройки вы можете настроить сервер как говорится под ключ с нашей конфигурацией все проверено и работает на 100%. Единственное, что вам потребуется настроить службу tftp-server для корректной работы т.к. по умолчанию она не работает нормально на Centos 8 на момент написания инструкции.
 
Последнее редактирование:
Назад
Верх Низ