Установка Ubuntu по сети через PXE

()

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

Некоторое время назад автору этих строк в руки попал старенький IBM ThinkCentre S51 8171 с неисправным CD-приводом. С загрузкой с флэшки, созданной с помощью UNetBootin, так же возникли проблемы и осталась последняя надежда: загрузка инсталлятора по PXE. Далее будет кратко описан полученный опыт.

IBM ThinkCentre S51 8171

IBM ThinkCentre S51 8171 имеет очень неплохую начинку для машины 2006-го года выпуска: Pentium 4 540, 2x512MB DDR, 30GB ATA HDD. Но в 2018-м она смотрится блекло, хотя и сейчас ей можно найти множество применений. Основная проблема: процессор не поддерживает EMT64 и потому операционная система должна быть обязательно 32-битной. К счастью Ubuntu 16.04 существует в редакции i386 и было решено ставить её.

В качестве сервера загрузки решено было использовать домашний сервер под управлением Ubuntu 16.04. Для раздачи адресов в локальной сети используется isc-dhcp-server. В остальном конфигурация сервера достаточно типична. Для создания PXE-окружения нам понадобится TFTP-сервер. Мы будем использовать пакет "tftpd-hpa". Установим его, а так же (на всякий случай) tftp-клиент:

apt-get install tftpd-hpa tftp-hpa

По умолчанию tftpd-hpa использует директорию "/var/lib/tftpboot". Если по какой-то причине необходимо это изменить то нужно соответствующим образом отредактировать файл "/etc/default/tftpd-hpa" и перезапустить сервис "tftpd-hpa". Но нас вполне устроит конфигурация по умолчанию.

Список доступным инсталляторов Ubuntu 16.04 для загрузки через PXE и сетевой установки можно найти на этой странице. Нас интересует архив под названием "netboot.tar.gz" для архитектуры i386. Скачиваем и распаковываем его в директорию tftp-сервера:

wget http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-i386/current/images/netboot/netboot.tar.gz
mkdir -p /var/lib/tftpboot/ubuntu/
tar zxfv netboot.tar.gz -C /var/lib/tftpboot/ubuntu/

На этом подготовка TFTP-сервера заканчивается и остаётся настроить DHCP-сервер. Вся конфигурация сводится к добавлению строки:

    # Путь к файлу "pxelinux.0" относительно директории TFTP-сервера
    filename "ubuntu/pxelinux.0";

Эту строку можно добавить в описание подсети, группы хостов или даже конкретного хоста. Главное чтобы машина, ради которой это всё делается, получила нужную конфигурацию. После этого можно включить машину и выбрав загрузку по PXE приступить к установке системы. После загрузки инсталлятора установка будет происходить обычным образом, так, будто бы была произведена загрузка с "MinimalCD".

IBM ThinkCentre S51 8171 Boot Menu

На этом можно было бы закончить, но есть ещё интересный момент: автоматическая установка. Инсталлятор Ubuntu частично поддерживает формат конфигурации kickstart от RedHat Linux. Подробнее можно прочитать тут. Если есть необходимость в использовании сценария автоматической установки то сначала необходимо создать файл сценария и разместить его на веб-сервере в локальной сети, затем надо немного модифицировать файл "/var/lib/tftpboot/ubuntu/ubuntu-installer/i386/boot-screens/txt.cfg":

        #append vga=788 initrd=ubuntu-installer/i386/initrd.gz --- quiet 
        append ks=http://192.168.2.1/ks.cfg vga=788 initrd=ubuntu-installer/i386/initrd.gz --- quiet 

Здесь параметр "ks=" указывает URL, по которому расположен сценарий настройки kickstart. Более детальное изучение этой темы оставим читателю.

На этом всё. Приятной работы!

Ключевые слова: tftp, tftpd, pxe, dhcpd, isc-dhcp-server, ibm thinkcentre, netboot.

Комментарии:

Anonymous 2018-04-10 22:45:41 (#)

Лось, под какие задачи машинка? в одно время игрался, но с diskless вариантами OS. как вариант, если жесткий умрет. насчет флешек - по моему опыту не все флешки воспринимаются как загрузочные, тут надо методом проб и ошибок подбирать флешку, особенно на старых биосах, к счастью у меня на одной такой WinXP стоит загрузочный, недавно пригодилась.

MooSE 2018-04-11 14:19:17 (#)

Под тесты:) Надо пару стендов собрать:) Например интересна миграция с ifupdown на netplan в релизе 18.04 :)

Ladm 2018-04-11 22:34:51 (#)

VirtualBox? или нужно именно живое железо?

MooSE 2018-04-11 23:21:30 (#)

Есть вопросы, которые на VIrtualBox тестировать не очень удобно. Например hotplug :)
Новый комментарий



© 2006-2018 Вадим Калинников aka MooSE