Установка Linux по сети.

Большинство современных компьютеров умеют загружаться по сети — BIOS компьютера находит загрузочный PXE (Preboot Execution Environment) сервер и загружает с него операционной систему. Установка по сети используется в двух случаях:

  • При установке Linux на ПК, на котором нет доступа к USB портам или приводам дисков. А может это старенький ноутбук, на котором есть только CD-привод.
  • При установке на целый парк компьютеров. Тут все просто: компьютеров много, а установщик один, поэтому установка по сети может значительно сократить время.

В этой статье рассмотрим настройку и использование PXE-сервера, предназначенного для загрузки программы установки Linux.

Подготовка загрузочного сервера.

Настройку загрузочного сервера рассматривать будем на примере Ubuntu. Поскольку установка по сети — довольно специфическая операция, и она нужна далеко не всем пользователям, то рассматривать установку на разных дистрибутивах пока не буду — ведь в другом дистрибутиве все можно сделать по аналогии.

Установка DHCP-сервера.

Первым делом надо установить DHCP-сервер — в Ubuntu это можно сделать следующей командой:

$ sudo apt-get install isc-dhcp-server

Первым делом отредактируем файл /etc/default/isc-dhcp-server, и добавим в него следующую строку, заменив имя интерфейса на ваше:

INTERFACES="enp0s3"

Затем открываем файл /etc/dhcp/dhcpd.conf и добавляем следующее

host pxeinstall {
  hardware ethernet xx:xx:xx:xx:xx:xx:xx;
  filename "pxelinux.0";
}

Об инструкции hardware следует сказать особо. По большому счету — она не нужна. Но если вы запускаете DHCP-сервер в реальной сети, где уже наверняка есть другой DHCP-сервер, а вам надо установить Linux всего на один компьютер, тогда замените символы xx в инструкции hardware MAC-адресом сетевого адаптера, установленного на компьютере, на который нужно поставить Linux.

С другой стороны, указать MAC-адреса потенциальных клиентов — это хорошая идея с точки зрения безопасности. Но если вы разворачивайте свой PXE-сервер только для установки операционной системы, нет никакой необходимости тратить время на определение MAC-адресов всех компьютеров сети. Вот, когда надо настроить полноценный PXE-сервер, может и нужно указать адреса клиентов, чтобы никто другой не смог использовать ваш сервер для загрузки. Тут уже решать вам…

Сохраните файл конфигурации DHCP-сервера и перезапустите сервер:

$ sudo /etc/init.d/isc-dhcp-server restart

Настройка TFTP-сервера

Следующий шаг — настройка TFTP-сервера (Trivial File Transfer Protocol), на котором будет размещен образ операционной системы. В нашем случае — это установочный образ Ubuntu.

Установить TFTP-сервер можно командой:

$ sudo apt-get install tftpd-hpa

После установки сервера отредактируйте ваш файл /etc/inetd.conf. Убедитесь, что в нем есть следующая строка ( и что она раскомментирована).

tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/kib/tftpboot

Поскольку TFTP-сервер работает не автономно, а через сервер inetd, то для запуска TFTP-сервера нужно перезапустить сервер inetd.

$ sudo /etc/init.d/inetd restart

В современных дистрибутивах вместо сервера inetd может использоваться суперсервер xinetd. Установить его можно следующей командой.

$ sudo apt-get install xinetd

Потом надо будет отредактировать его конфигурационный файл /etc/xinetd.conf. Добавьте в него следующие строки.

service tftp
{
    socket_type = dgram
    protocol = udp
    wait = yes
    user = tftp 
    server = /usr/sbin/in.tftpd
    server_args =  -l /var/lib/tftpboot
    only_from = client.test.net
}

И перезапустить xinted.

$ sudo /etc/init.d/xinetd restart

Загрузка установочного образа.

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

$ mkdir netboot
$ sudo lftp -c "open http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-i386/current/images/; mirror netboot/"

Первая команда создаст каталог netboot, а вторая — загрузит в нее установочный образ Ubuntu.

Почти все готово, и в каталог netboot загружены файлы, необходимые для установки Linux по сети. Но давайте вспомним наш файл /etc/inetd.conf (или xinetd.conf). Конфигурация TFTP предполагает, что все файлы, доступные по протоколу TFTP, должны быть расположены в каталоге /var/lib/tftpboot. Поэтому нам нужно скопировать туда файлы из каталога netboot.

$ sudo cp -a netboot/* /var/lib/tftpboot
$ sudo cd /var/lib/tftpboot
$ sudo tar zxf netboot.tar.gz

Вот и все — ваш PXE-сервер готов к работе.

Настройка клиента.

Настраивать клиент, т.е. компьютер, на который вы будете устанавливать Linux, очень просто, достаточно зайти в его BIOS и установить загрузку по сети. Но загружаться по сети умеют не все компьютеры…

Что делать, если у вас старый компьютер, который не умеет загружаться по сети? Можно попытаться перепрошить BIOS — новая версия наверняка будет поддерживать загрузку по сети. Если перепрошивать BIOS нежелательно, или вы не можете найти подходящую версию BIOS именно для вашего компьютера, тогда вам будет проще изготовить специальную загрузочную флэшку, загрузиться с нее, а загрузчик уже сам найдет PXE-сервер и запустит процесс установки.

Заключение.

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

Was this helpful?

1 / 0

Добавить комментарий 0