Как: 10 шагов по настройке сервера tftpboot в UNIX / Linux (для установки Linux из сети с использованием PXE)

В этой статье мы поговорим о том, как настроить tftpboot, включая установку необходимых пакетов и конфигурации tftpboot.

Служба загрузки TFTP в основном используется для установки ОС на удаленной машине, к которой у вас нет физического доступа. Чтобы успешно выполнить установку ОС, должен быть способ перезагрузить удаленный сервер – либо с помощью wakeonlan, либо кто-то вручную перезагрузил его, либо каким-либо другим способом.

В этих сценариях вы можете соответствующим образом настроить службы tftpboot, и установка ОС может выполняться удаленно (вам необходим файл конфигурации autoyast для автоматизации шагов установки ОС).

В этой статье представлена ​​пошаговая процедура для SLES10-SP3 в 64-битной архитектуре. Однако эти шаги очень похожи на любые другие дистрибутивы Linux.

Требуемые пакеты

Следующие пакеты должны быть установлены для установки tftpboot.

  • Пакеты служб dhcp: dhcp-3.0.7-7.5.20.x86_64.rpm и dhcp-server-3.0.7-7.5.20.x86_64.rpm
  • Пакет tftpboot: tftp-0.48-1.6.x86_64.rpm
  • Пакет pxeboot: syslinux-3.11-20.14.26.x86_64.rpm

Установка пакета

Установите пакеты для служб сервера dhcp:

$ rpm -ivh dhcp-3.0.7-7.5.20.x86_64.rpm
Preparing...                ########################################### [100%]
   1:dhcp                   ########################################### [100%]

$ rpm -ivh dhcp-server-3.0.7-7.5.20.x86_64.rpm
Preparing...                ########################################### [100%]
   1:dhcp                   ########################################### [100%]

$ rpm -ivh tftp-0.48-1.6.x86_64.rpm

$ rpm -ivh syslinux-3.11-20.14.26.x86_64.rpm

После установки пакета syslinux файл pxelinux.0 будет создан в каталоге /usr/share/pxelinux/. Это необходимо для загрузки установочного образа ядра и образа initrd на клиентском компьютере.

Убедитесь, что пакеты успешно установлены.

 

 

$ rpm -qa | grep dhcp
$ rpm -qa | grep tftp

Загрузите соответствующий tftpserver из репозитория вашего соответствующего дистрибутива Linux.

Шаги по настройке tftpboot

Шаг 1: Создайте каталог / tftpboot

Создайте каталог tftpboot в корневом каталоге (/), как показано ниже.

# mkdir /tftpboot/

Шаг 2. Скопируйте изображение pxelinux

Образ Linux PXE будет доступен после установки пакета syslinux. Скопируйте этот путь в / tftpboot, как показано ниже.

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

Шаг 3. Создайте точку монтирования для ISO и смонтируйте ISO-образ

Предположим, мы собираемся установить дистрибутив SLES10 SP3 Linux на удаленный сервер. Если у вас есть диск SUSE10-SP3, вставьте его в дисковод или смонтируйте ISO-образ, который у вас есть. Здесь ISO-образ был смонтирован следующим образом:

# mkdir /tftpboot/sles10_sp3

# mount -o loop SLES-10-SP3-DVD-x86_64.iso /tftpboot/sles10_sp3

Шаг 4: Скопируйте образы vmlinuz и initrd в / tftpboot

Скопируйте initrd в каталог tftpboot, как показано ниже.

# cd /tftpboot/sles10_sp3/boot/x86_64/loader

# cp initrd linux /tftpboot/

Шаг 5: Создайте каталог pxelinux.cfg

Создайте каталог pxelinux.cfg в /tftpboot и определите определения загрузки pxe для клиента.

# mkdir /tftpboot/pxelinux.cfg

# cat >/tftpboot/pxelinux.cfg/default
default linux
label linux
kernel linux
append initrd=initrd showopts instmode=nfs install=nfs://192.168.1.101/tftpboot/sles10_sp3/

Следующие параметры используются для,

  • kernel – указывает, где найти установочное ядро ​​Linux на TFTP-сервере.
  • install – указывает параметры загрузки для передачи ядру установки.

Как указано выше, режим установки nfs используется для обслуживания установочных RPM и файлов конфигурации. Итак, настройте nfs на этом компьютере с каталогом / tftpboot в экспортированном списке. Вы можете добавить опцию «autoyast» в файл конфигурации autoyast, чтобы автоматизировать шаги установки ОС, в противном случае вам нужно будет выполнить шаги установки вручную.

Шаг 6: Смена владельца и разрешения для каталога /tftpboot

Никого не назначайте: никому в каталог /tftpboot.

# chown nobody:nobody /tftpboot

# chmod 777 /tftpboot

Шаг 7: Изменить /etc/dhcpd.conf

Измените /etc/dhcpd.conf, как показано ниже.

# cat /etc/dhcpd.conf

ddns-update-style none;
default-lease-time 14400;
filename "pxelinux.0"; 

# IP address of the dhcp server nothing but this machine.
next-server 192.168.1.101;
subnet 192.168.1.0 netmask 255.255.255.0 {
  # ip distribution range between 192.168.1.1 to 192.168.1.100
  range 192.168.1.1 192.168.1.100;
  default-lease-time 10;
  max-lease-time 10;
}

Укажите интерфейс в /etc/syslinux/dhcpd для прослушивания запросов dhcp от клиентов.

# cat /etc/syslinux/dhcpd | grep DHCPD_INTERFACE
DHCPD_INTERFACE=”eth1”;

Здесь эта машина имеет IP-адрес 192.168.1.101 на устройстве eth1. Итак, укажите eth1 для DHCPD_INTERFACE, как показано выше.

 

Шаг 8: Изменить /etc/xinetd.d/tftp

Измените файл /etc/xinetd.d/tftp, чтобы отразить следующее. По умолчанию значение параметра disable равно «yes», пожалуйста, убедитесь, что вы изменили его на «no», и вам нужно изменить запись server_args на -s / tftpboot.

# cat /etc/xinetd.d/tftp
	service tftp {
                       socket_type     = dgram
                       protocol          = udp
                       wait               = yes
                       user               = root
                       server            = /usr/sbin/in.tftpd
                       server_args     = -s /tftpboot
                       disable           = no
            }

Шаг 9: Без изменений в /etc/xinetd.conf

Нет необходимости изменять файл /etc/xinetd.conf. Используйте значения по умолчанию, указанные в файле xinetd.conf.

Шаг 10. Перезапустите службы xinetd, dhcpd и nfs.

Перезапустите эти службы, как показано ниже.

# /etc/init.d/xinetd restart

# /etc/init.d/dhcpd restart

# /etc/init.d/nfsserver restart

После перезапуска служб nfs вы можете просмотреть список экспортированных каталогов (/ tftpboot) с помощью следующей команды:

 # showmount -e

Наконец, настройка tftpboot готова, и теперь клиентский компьютер может быть загружен после изменения первого загрузочного устройства в качестве «сетевого» в настройках BIOS.

Если вы столкнулись с какой-либо ошибкой tftp, вы можете выполнить поиск и устранение неисправностей, загрузив некоторые файлы через службу tftpd.

Извлеките некоторый файл из tftpserver, чтобы убедиться, что служба tftp работает правильно с использованием клиента tftp. Предположим, что файл sample.txt находится в каталоге /tftpboot.

  $ tftp -v 192.168.1.101 -c get sample.txt