Настройка сервера · 3 min read · Sep 14, 2025

Настройка PXE сервера установки для нескольких дистрибутивов Linux с Ubuntu Edgy Eft

Настройка PXE сервера установки для нескольких дистрибутивов Linux с Ubuntu Edgy Eft

Версия 1.0
Автор: Фалько Тимме

Это руководство показывает, как настроить PXE (сокращение от p reboot e x ecution e nvironment) сервер установки с Ubuntu 6.10 (Edgy Eft). PXE сервер установки позволяет вашим клиентским компьютерам загружаться и устанавливать дистрибутив Linux через сеть, без необходимости записывать образы Linux iso на CD/DVD, загружать образы дискеты и т.д. Это удобно, если ваши клиентские компьютеры не имеют CD или дисководов для дискет, или если вы хотите настроить несколько компьютеров одновременно (например, в крупном предприятии), или просто потому, что хотите сэкономить деньги на CD/DVD. В этой статье я покажу, как настроить PXE сервер, который позволяет загружать несколько дистрибутивов: Ubuntu Edgy/Dapper, Debian Etch/Sarge, Fedora Core 6, CentOS 4.4, OpenSuSE 10.2 и Mandriva 2007.

Я хочу сначала сказать, что это не единственный способ настройки такой системы. Существует много способов достижения этой цели, но это тот путь, который я выбрал. Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

Важно, чтобы у вас было хорошее интернет-соединение, потому что ваши клиентские компьютеры будут загружать все необходимые пакеты из репозиториев в интернете (я тестировал это на соединении 16MBit ADSL2+, которое кажется достаточно быстрым. ;-)). Также возможно хранить все пакеты на PXE сервере, чтобы вам не нужно было интернет-соединение (только LAN-соединение с PXE сервером), но тогда вам потребуется много места для хранения на PXE сервере (помните, он будет обслуживать несколько дистрибутивов), поэтому я не буду это здесь рассматривать.

И самое главное, ваши клиентские компьютеры должны поддерживать загрузку по сети. Вам следует проверить BIOS каждого компьютера на наличие этой опции.

На нашей системе, которая должна служить PXE сервером, вы должны уже установить базовую серверную систему Ubuntu 6.10, например, как показано на страницах 1 - 3 этого руководства: https://www.howtoforge.com/perfect_setup_ubuntu_6.10

Я предпочитаю выполнять все шаги здесь как пользователь root. Поэтому, если вы еще не создали вход в систему root, вам следует сделать это сейчас:

sudo passwd root

После этого войдите как root:

su

Если вы хотите работать как обычный пользователь вместо root, не забудьте поставить sudo перед всеми командами, показанными в этом руководстве. Так что, когда я запускаю

apt-get update

вы должны запустить

sudo apt-get update

вместо этого и т.д.

2 Установка всех необходимых пакетов

Сначала мы обновим нашу базу данных пакетов, выполнив

apt-get update

Нам нужно установить пакеты netkit-inetd, tftpd-hpa, dhcp3-server и lftp, поэтому мы выполняем

apt-get install netkit-inetd tftpd-hpa dhcp3-server lftp    

После этого выполните

netstat -uap

и проверьте, видите ли вы что-то вроде этого:

root@server1:~# netstat -uap
Активные интернет-соединения (серверы и установленные)
Протокол Recv-Q Send-Q Локальный адрес Удаленный адрес Состояние PID/Имя программы
udp 0 0 *:tftp

Если вы не видите строки tftp, пожалуйста, откройте /etc/inetd.conf и убедитесь, что вы найдете следующее:

vi /etc/inetd.conf

| [...] #:BOOT: Tftp service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot [...] |

Затем перезапустите inetd:

/etc/init.d/inetd restart

3 Настройка DHCP сервера

Нам нужен DHCP сервер в нашей локальной сети. Если в вашей локальной сети нет DHCP сервера, просто настройте и используйте тот, который будет на вашем будущем PXE сервере. Просто отредактируйте /etc/dhcp3/dhcpd.conf:

cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_orig
cat /dev/null > /etc/dhcp3/dhcpd.conf

vi /etc/dhcp3/dhcpd.conf

| option domain-name-servers 145.253.2.75, 193.174.32.18; default-lease-time 86400; max-lease-time 604800; authoritative; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.49; filename "pxelinux.0"; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; } |

Это динамически назначит IP-адреса из диапазона 192.168.0.10 до 192.168.0.49 вашим клиентским компьютерам; шлюз 192.168.0.1. Конечно, вы должны настроить эту конфигурацию под свою среду!

Важно, чтобы у вас была строка

filename "pxelinux.0";

в вашей конфигурации!

Затем перезапустите ваш DHCP сервер:

/etc/init.d/dhcp3-server restart 

Если у вас уже есть DHCP сервер в вашей сети, вы должны изменить его конфигурацию. Предположим, у вас есть что-то вроде

| subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.49; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; } |

в конфигурации. Вы должны добавить

filename “pxelinux.0”;
next-server 192.168.0.100;

к ней (где 192.168.0.100 - это IP-адрес нашего Ubuntu PXE сервера), чтобы она выглядела так:

| subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.49; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; filename "pxelinux.0"; next-server 192.168.0.100; } |

Затем перезапустите ваш DHCP сервер.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.