Установка линукс по сети

Установка линукс по сети

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

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

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-клиент:

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

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

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

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

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

Читайте также:  Не работает гарнитура на андроиде что делать

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

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

Под разные требования, должны быть и разные решения, главная загвоздка в том, что зачастую, нам требуется не одна операционная система, а несколько. Вот я и решил написать на эту тему статью. С предыдущей статьей, можно ознакомиться по ссылке, Установка Ubuntu по сети.
Главная идея заключаться в том что у нас появится возможность, выбирать какую операционную систему мы будем устанавливать, а также ее разрядность, фактически, у нас появится меню загрузки, после загрузки системы по локальной сети.
Все это мы реализуем, на примере, только что вышедшей Ubuntu 14.04

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

Для работы нам понадобится:

Обязательно!
1) Настроенный шлюз, для примера, воспользуйтесь статьей: Настройка шлюза локальной сети, на базе Ubuntu
2) DHCP сервер, для примера, можно воспользоваться статьёй: Настройка DHCP сервера под управлением Ubuntu
3) Настроенный TFTP сервер, загружающий PXE загрузчик, воспользоваться статьёй: Настройка PXE Boot меню с мемтестом и паролями

Опционально!
3) Дополнительным, но не обязательным моментом, может быть настроенный DNS сервер, пример есть в статье Настройка DNS сервера для локальной сети

Предполагается что у вас настроен шлюз, DHCP, TFTP севрер, а также добавлено меню загрузки PXE т.к. на этом моменте я останавливаться не буду.

Переходим к настройке инсталлируемой системы.

Для начала мы создадим пункт установки для Ubuntu 14.04×86, для чего нам понадобится установочный диск соответствующей разрядности. Нам его необходим скачать и примонтировать, для того чтобы извлечь файлы загрузчика инасталятора системы.
Т.к. файл сетевого загрузчика у нас лежат в директории директории /var/lib/tftpboot/ откуда они и подтягиваются TFTP сервером, то в ней нам нужно создать директорию Ubuntu, чтобы в нее сложить файлы с дисков установки, сделаем это:

Читайте также:  Как найти себя в интернете

В директории Uubntu мы создаем дополнительные директории для файлов загрузчика инсталлятора ОС для x86 разрядных систем и ADM64-соответсвенно.

Теперь нам требуется скачать установочный диск посмотреть можно тут mirror.yandex.ru/ubuntu-releases/14.04/
Мы качнем версию х86 для сервера т.к. она меньше весит

После завершения закачки ISO образа, нам нужно его смонтировать, чтобы извлечь нужные нам файлы, а для этого, в директории /media мы создадим директорию iso, давайте сделаем это:

Монтируем образ диска в эту директорию:

Система выдаст что диск смонтирован в режиме чтения:

mount: warning: /media/iso/ seems to be mounted read-only.

Идем забирать загрузчик и ядро инсталятора:

Нас интересуют 2 файла linux и initrd.gz, которые нам нужно забрать и перенести в директорию /var/lib/tftpboot/ubuntu/x86
давайте скопируем их:

Все, установочный образ нам больше не нужен, для начала отмонтируем его из директории iso:

После этого ISO-образ можно удалить.
Похожие действия проводим для образа установочного диска с разрядностью x64, я не буду расписывать что и куда, просто приведу листинг команд, действия все те же, только пути немного отличаются, там прописано amd64

С файлами установки закончили, теперь настроим PXE меню загрузки.

Настройка меню загрузки PXE

Для начала добавим пункт меню с названием Linux Install, для этого нам нужно отредактировать файл:

В конец файла добавим запись:

Как видно из записи, у нас будет другая страница с выбором дисирибутивов для установки, создадим ее:

Добавим в нее названия пунктов для загрузки с возможностью выбора операционной системы для установки, пока это будет Ubuntu 14.04 x86 и amd64 архитектуры:

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

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

Читайте также:  Роза дельфи фото и описание

21 комментарий

Опционально!
3) Дополнительным, но не обязательным моментом, может быть настроенный DNS сервер, пример есть в статье Настройка DNS сервера для локальной сети

вот это пункт я пропустил, его тоже настраивать?

dnsmasq и на тесте с виндой пашет все норм
а при установки ubuntu дохожу до проверки зеркала архива ubntu затем выдает ошибку проблема с зеркалом архива убунту

Установить и настроить пакеты isc-dhcp-server и vsftpd (инструкции по настройке имеются в статьях по ссылкам)

Установить пакет tftpd-hpa. Установить его можно из графического менеджера пакетов, или из командной строки командой:

Настройки пакета хранятся в файле /etc/default/tftpd-hpa. Приведём его к следующему виду (жирным шрифтом выделены рекомендованные к добавлению параметры):

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="–secure"
TFTP_OPTIONS="—ipv4 —secure —create —umask 027 —permissive"

В настройках указаны дополнительные опции:

Опция Значение
Разрешает серверу создавать новые файлы, необязательный параметр, может быть нужен для автоматического сохранения конфигураций
Предписывает серверу ожидать подключений только на адресах IPv4, необязательный параметр.
Предписывает сбрасывать бит записи для группы и все биты доступа для остальных пользователей , необязательный параметр.
Предписывает не проводить никаких проверок прав доступа к файлу сверх производимых операционной системой , необязательный параметр.

Можно также поменять домашний каталог пользователя tftp в файле /etc/passwd на /srv/tftp.

Чтобы сервис начал работу с новыми настройками, его нужно перезапустить:

Создать директорию с репозиторием и примонтировать туда установочный диск:

В примере выше предполагается, что IP-адрес сервера для загрузки 10.0.2.254

Подготовленный файл ответов preseed.cfg положить в директорию /srv/ftp.

В файле preseed.cfg с помощью текстового редактора указать источник, из которого должны будут скачиваться пакеты при установке, например репозиторий на сервере Яндекс (адрес сервера и путь к репозиторию выделены жирным шрифтом):

# Если вы выберете ftp, то mirror/country string устанавливать не нужно.
d-i mirror/protocol string ftp
d-i mirror/country string manual
d-i mirror/ftp/hostname string ### mirror.yandex.ru

d-i mirror/ftp/directory string /astra/current/orel/repository
d-i mirror/ftp/proxy string

Выставить права на этот файл:

Получить файл ответов можно выполнив команду:

На машине, на которую будет произведена установка ОС, выставить загрузку по сети.

Ссылка на основную публикацию
Уравнение плоскости по двум пересекающимся прямым
УСЛОВИЕ: Составить уравнение плоскости, проходящей через две параллельные прямые x-2/3=y+1/2=z-3/-2 x-1/3=y-2/2=z+3/-2 Добавил yelymcheav , просмотры: ☺ 1976 ⌚ 2019-05-14 15:35:56....
Тест соловея штрассена c
Символ Якоби отличается от символа Лежандра тем, что в первом знаменатель – составное число, а во втором – простое. Алгоритм...
Тест стиральной машины bosch maxx 5
Самодиагностика – это очень важная функция, которая отличает современные стиральные машины с электронным управлением от старой аналоговой техники. Запустив сервисный...
Уравнение баланса мощностей формула
При решений электротехнических задач, часто нужно проверить правильность найденных значений. Для этого в науке ТОЭ, существует так называемый баланс мощностей....
Adblock detector