Настройка сервера pxe ubuntu

Обновлено: 02.07.2024

В этом руководстве я поделюсь пошаговыми инструкциями по настройке загрузочного сервера PXE с помощью cloud-init в Ubuntu 20.04.

Почему бы не использовать кикстарт для автоматической установки в Ubuntu?

Если вы работаете с Red Hat или CentOS, то, скорее всего, вы знакомы с использованием Kickstart для автоматической установки. Теперь мы также можем выполнить автоматическую установку Ubuntu 20.04 или более ранней версии с помощью Kickstart, но это не полностью поддерживается. В официальной документации Ubuntu об этом говорится очень кратко, без четких инструкций о том, как это можно сделать.

Теперь все параметры кикстарта Red Hat не поддерживаются в Ubuntu, поэтому вам придется использовать preseed для многих вещей, таких как настройка разделов, работа в сети и т. д.

Но самая большая проблема с использованием Kickstart для Ubuntu заключается в том, что обычный рабочий стол Ubuntu и образ Live не поддерживают установку на основе кикстарта, поэтому вам приходится использовать их устаревшую серверную версию. Эти устаревшие образы выпусков серверов будут выпущены только для Ubuntu 20.04 и не будут выпущены для каких-либо будущих выпусков Ubuntu, поскольку они хотят продвигать свою внутреннюю функцию облачной инициализации для выполнения автоматической установки.

Что такое облачная инициализация или автоматическая установка в Ubuntu?

Это недавно добавленная функция в Ubuntu 20.04, которая заменяет режим предварительной установки, который выполнялся с помощью debian-installer. Одно большое преимущество использования cloud-init по сравнению с debian-installer заключается в том, что вам не нужно указывать ответ для каждого варианта установки в cloud-init. По умолчанию cloud-init примет значение по умолчанию и продолжит установку. Он завершится ошибкой только в том случае, если не назначены значения по умолчанию, в отличие от debian-installer (preseed), который остановит установку при любом отсутствующем вводе.

Хотя, поскольку это новая функция, отсутствует хорошая документация, а отладка может занять довольно много времени. Подробнее об этом можно прочитать на официальной странице cloud-init.

Краткие шаги по настройке сервера загрузки PXE с помощью cloud-init

Мы выполним следующие шаги, чтобы настроить наш загрузочный сервер PXE для автоматической установки Ubuntu 20.04 с помощью cloud-init.

Лабораторная среда

У меня есть два физических сервера с Legacy BIOS, на одном из которых я вручную установил Ubuntu 20.04, который будет действовать как наш сервер, на котором мы установим все службы TFTP, DHCP и другие службы. В то время как мы будем использовать другой сервер в качестве нашего клиента, где мы будем выполнять загрузку PXE для автоматической установки.

Технические характеристики сервера следующие:

  • IP-адрес: 10.43.138.8
  • Имя хоста: ubuntu
  • Выпуск: Ubuntu 20.04.3 LTS
  • Версия: 20.04.3 LTS (фокальная ямка)

Предварительное условие

Шаги по настройке загрузочного сервера PXE с помощью cloud-init в Ubuntu 20.04

Шаг 1. Установите и настройте сервер Apache

Прежде всего, давайте поднимем наш сервер Apache, так как он понадобится нам для размещения нашего образа Ubuntu и наших файлов конфигурации, необходимых для выполнения загрузки PXE.

Затем мы создали новый файл ks-server.conf в каталоге /etc/apache2/sites-available/ со следующим содержимым:

Итак, здесь мы в основном настроили виртуальный хостинг для 2 каталогов, т.е. /ks, который будет содержать наши файлы облачной инициализации, и /images, где мы разместим iso-образ нашего живого сервера Ubuntu.

Затем убедитесь, что эти каталоги существуют (вы можете создать, если их нет) и имеют разрешение на чтение для всех:

Следующий запуск/перезапуск и включение автоматического запуска службы apache при перезагрузке:

Проверьте статус службы, чтобы убедиться, что она успешно запущена:

Настройте загрузочный сервер PXE с помощью cloud-init для Ubuntu 20.04 [Пошагово]

Если у вас возникнут какие-либо проблемы, вы можете проверить файл журнала ошибок, который вы добавили в блок конфигурации вашего виртуального хостинга в каталоге /var/log/apache2/.

Включить брандмауэр для веб-сервера Apache:

Проверьте статус:

Для тестирования я создал еще один подкаталог внутри /images:

Настройте загрузочный сервер PXE с помощью cloud-init для Ubuntu 20.04 [Пошагово]

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

Настройте загрузочный сервер PXE с помощью cloud-init для Ubuntu 20.04 [Пошагово]

Итак, мы знаем, что наш сервер Apache работает правильно

Шаг 2. Подготовьте файл автоматической установки cloud-init

Это самая сложная часть автоматизации установки Ubuntu с помощью cloud-init, поскольку, в отличие от Red Hat, у нас нет образца файла конфигурации cloud-init, с которого можно было бы начать. Например, в Red Hat или CentOS мы выбирали /root/anaconda.cfg в качестве базового шаблона, а затем изменяли необходимые параметры для нашей сетевой установки. Но здесь у нас нет такого шаблона, который можно было бы выбрать по умолчанию.

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

Вот мой пример файла /ks/user-data, который я буду использовать для этой установки:

Далее мы создадим файл /ks/meta-data с именем хоста нашего сервера, который мы назначим клиенту. Вы также можете просто создать пустой файл и поместить его в каталог /ks.

Шаг 3. Установите и настройте TFTP-сервер

Далее мы установим и настроим TFTP-сервер для размещения загрузочных файлов PXE, необходимых для запуска сетевой установки.

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

Вы можете проверить конфигурацию по умолчанию для TFTP в файле /etc/default/tftpd-hpa:

Итак, по умолчанию сервер TFTP будет просматривать /srv/tftp , поэтому, если вы хотите использовать какой-либо альтернативный путь, вы можете обновить его здесь. Убедитесь, что этот путь уже существует, если нет, вы можете создать его и назначить разрешение 755 для этого каталога, чтобы каждый мог получить к нему доступ.

Запустить/перезапустить Nest и включить автоматический запуск службы при перезагрузке сервера:

Проверьте состояние службы, чтобы убедиться, что она запущена и работает успешно:

Настройте загрузочный сервер PXE с помощью cloud-init для Ubuntu 20.04 [Пошагово]

Шаг 4. Настройте загрузочный сервер PXE

Дальше, чтобы выполнить автоматическую установку по сети, нам потребуются некоторые загрузочные файлы PXE. Эти файлы можно получить из образа живого сервера Ubuntu, который мы уже загрузили и сохранили на нашем сервере.

Подключите образ к некоторому временному пути монтирования, чтобы иметь доступ к содержимому:

Следующий поиск initrd , vmlinux и ldlinux.c32 внутри этого образа.

Теперь нам также нужен pxelinux.0 для завершения настройки нашего PXE-сервера. Этот файл поставляется с пакетом pxelinux, поэтому вы можете установить его с помощью команды apt:

Далее найдите файл pxelinux.0 с помощью команды find.

Теперь, когда у нас есть путь к pxelinux.0, мы можем скопировать его на наш TFTP-сервер:

Вот окончательное содержимое нашего пути TFTP, и все они имеют разрешение на чтение для всех:

Шаг 5. Создайте загрузочное меню для автоматической установки

Далее вы можете решить использовать загрузочное меню Ubuntu по умолчанию, для чего потребуются файлы libcom32.c32 , libutil.c32 , vesamenu.c32 . Вы можете получить эти файлы из /usr/lib/syslinux/modules/bios/. В некоторых случаях рекомендуется просто скопировать все файлы из этого места на случай, если вы обнаружите проблемы с графическим интерфейсом.

Лично я предпочитаю создавать собственное загрузочное меню, вот содержимое моего файла boot.msg, который я поместил в /srv/tftp:

Шаг 6. Создайте файл конфигурации PXE

Мы создадим новый каталог /srv/tftp/pxelinux.cfg

Создайте файл конфигурации PXE /srv/tftp/pxelinux.cfg/default . Ниже приведен пример содержимого моего файла по умолчанию:

Давайте разберемся с отдельными параметрами, используемыми в нашем меню ядра

Шаг 7. Установите и настройте DHCP

Нам также понадобится один DHCP-сервер, чтобы предоставить нашему клиенту IP-адрес. Итак, давайте продолжим и установим необходимый пакет:

Это установит пакет dhcp на ваш хост Ubuntu. Затем вы можете обновить файл /etc/dhcp/dhcpd.conf, указав детали конфигурации. Вот пример входного файла из моей установки:

Здесь мы в основном определили значение нашей подсети и сетевой маски. Вы можете получить это, используя различные команды Linux, такие как:

Здесь eno49 — наш основной интерфейс, который имеет 10.43.138.0 в качестве подсети и 255.255.255.224 в качестве значения сетевой маски. Опция routers содержит IP-адрес шлюза вашего сервера, который мы снова можем получить с помощью следующей команды:

Здесь 10.43.138.30 — это наш шлюз по умолчанию, который будет действовать как маршрутизатор для всех входящих запросов DHCP.

Директива имени файла используется для определения файла PXE, который будет использоваться для выполнения автоматической установки, например, pxelinux.0 для устаревшей версии BIOS. Если вы создали какой-либо подкаталог внутри /srv/tftp, например, /srv/tftp/pxelinux, вам следует добавить имя файла как "pxelinux/pxelinux.0"

Мы определили диапазон от 10.43.138.20 до 10.43.138.26 для назначения IP-адресов нашим узлам назначения, которые будут установлены в сети. Этот диапазон должен быть свободен и не должен использоваться каким-либо другим сервером.

Далее включите и запустите службу DHCP-сервера:

Проверьте состояние службы DHCP, чтобы убедиться, что она успешно запущена:

Шаг 8. Настройте брандмауэр

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

Добавьте следующее правило, чтобы разрешить TFTP

Добавьте следующее правило, чтобы разрешить DHCP

Проверьте статус (у меня есть еще несколько правил брандмауэра для других функций):

Шаг 9. Выполните загрузку PXE с помощью cloud-init

Теперь мы закончили настройку и готовы выполнить автоматическую установку с использованием файла конфигурации автоматической установки.

Загрузите клиентский узел и выполните установку по сети. Теперь кнопка быстрого доступа для загрузки по сети может различаться для разных аппаратных средств, но в большинстве случаев мы должны нажать F12 для загрузки по сети:

Если конфигурация вашего PXE Boot Server правильная, вы должны увидеть содержимое файла boot.msg:

Настройте загрузочный сервер PXE с помощью cloud-init для Ubuntu 20.04 [Пошагово]

Затем нажмите 1, чтобы начать установку, и файлы TFTP должны быть успешно загружены, как показано ниже

Настройте загрузочный сервер PXE с помощью cloud-init для Ubuntu 20.04 [Пошагово]

Далее установщик выберет изображение из URL-адреса, который мы добавили в наш файл grub, и если все в порядке, начнется установка:

Настройте загрузочный сервер PXE с помощью cloud-init для Ubuntu 20.04 [Пошагово]

Теперь мы ждем некоторое время, пока установка завершится, а затем мы, наконец, получим приглашение для входа в систему:

Настройте загрузочный сервер PXE с помощью cloud-init для Ubuntu 20.04 [Пошагово]

Шаг 10. Проверка подключения к целевому узлу

Попробуйте подключиться к целевому узлу с помощью SSH:

Итак, наша автоматическая установка с использованием PXE Boot Server, настроенного с помощью cloud-init, прошла успешно.

Устранение неполадок, связанных с автоустановщиком

Возможно, у вас могут возникнуть проблемы с файлом конфигурации автоустановки, и в этом случае вы, скорее всего, получите оболочку для устранения проблемы. Вы можете перейти в /var/log/installer/, где вы можете найти все файлы журнала автоустановщика, которые довольно подробные и полезны при устранении неполадок.

Обзор

В этом руководстве я рассмотрел пошаговые инструкции по установке и настройке загрузочного сервера PXE для выполнения автоматической установки Ubuntu 20.04 с использованием файла конфигурации cloud-init. Нам удалось запустить наш Linux-сервер с помощью файла конфигурации автоматической установки из cloud-init без какого-либо ручного вмешательства.

Теперь файл конфигурации автоматической установки cloud-init — это обширная тема, и я только что рассмотрел основные шаги автоматической установки, мне еще предстоит проанализировать части, в которых мы можем дополнительно настроить файл пользовательских данных, чтобы добавить или удалить пакеты, выполнить предварительные и размещать скрипты или команды и т. д., о которых я буду постепенно рассказывать в следующих статьях.

Сообщите мне о своих успехах или неудачах в разделе комментариев.

Дополнительная литература

Похожие сообщения

Не нашли то, что искали? Выполните быстрый поиск в GoLinuxCloud

Если мои статьи о GoLinuxCloud помогли вам, пожалуйста, купите мне кофе в знак признательности.

Купить кофе GoLinuxCloud

Для любых других отзывов или вопросов вы можете использовать раздел комментариев или форму обратной связи.

Спасибо за поддержку!!

Подписаться на GoLinuxCloud

21 мысль о «Настройка загрузочного сервера PXE с помощью cloud-init для Ubuntu 20.04 [шаг за шагом]»

Отлично, брат,
Попробую. Сообщений о настройках PXE очень мало. Ваш лучший
Спасибо за пост

Оставайтесь с нами, я планирую написать несколько руководств по дальнейшей настройке пользовательских данных для различных сценариев.

Именно. Это было бы намного полезнее
Заранее большое спасибо

Привет. При извлечении iso-файла пишет
(initramfs) wget: короткая запись: на устройстве не осталось места
готово.
Не удается найти работающую файловую систему в сети

Почему вы пытаетесь выполнить wget на этапе initramfs? Это должно быть сделано на вашем хост-сервере.initramfs является частью памяти.

Но опять же, почему клиент использует wget и загружает ISO. Его надо использовать напрямую с сервера? Или у вас очень мало памяти на вашем клиенте? Но на самом деле я никогда не видел эту ошибку

Привет, админ!
Отличная работа,
подойдет ли это для настольной версии Ubuntu?

PXE с cloud-init работает только с LIVE-версией образа. Вы можете использовать раздел пакетов, чтобы указать пользовательские пакеты для установки.

Можете ли вы попробовать пакетный сеанс?
Потому что, когда я использую раздел пакета или позднюю команду/раннюю команду, моя автоматическая установка не работает. Показывает ручную установку

Кого это может касаться, я новичок в Linux, я следовал пошаговому руководству, и оно у меня не сработало. Даже базовые результаты настройки apache были не такими, как вы описали на скриншотах. Возможно, вам следует указать более конкретные относительные пути для создания папок. Я пытаюсь воспроизвести вашу конфигурацию на сервере Ubuntu 20.04.03 на рабочей станции VMware, и она не работает. Проверяли ли вы свои действия и документацию по новой установке сервера?

В статье уже есть все необходимое для настройки cloud-init. Статья не об apache.

Я также упомянул, где искать, если у вас возникнут проблемы с конфигурацией Apache.

Что касается вашего последнего комментария, нет, я не проверял шаги. Я только что написал, и скриншоты волшебным образом появились с рабочей настройкой.

Бросьте спам.

Если вы столкнулись с проблемами, опишите проблему, если вам нужна помощь, иначе не нужно давать меньше комментариев.

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

Прежде всего, я приношу свои извинения, если мой откровенный отзыв каким-либо образом оскорбил вас. Тот факт, что вы заняли оборонительную позицию, говорит о другом. Спам?
Что я делаю, чтобы спамить вас? Предоставление отзыва теперь является спамом?
При всем уважении. Будьте добры и профессиональны со всеми вами, ребята. Скорее они будут хромать, когда кто-то дает вам честный отзыв. В дальнейшем, если я использую Google, чтобы найти что-то и появляется ваш веб-сайт, я обязательно нажимаю на следующий URL-адрес. Там много профессиональных людей, которые вежливы и помогают. Хорошего дня, сэр.

Просто сказать, что статья не сработала без подробностей, — это, по сути, спам. А потом идти дальше и спрашивать, проверена статья или нет, это не грубо по-вашему?
Вы понимаете, сколько времени и усилий мы вкладываем в написание и тестирование этих статей, меньшее, что вы можете сделать, это оценить их. Вы случайно не проверили скриншоты, прежде чем сказать, что это не тестировалось? Вы ожидаете, что я буду тестировать каждую дополнительную версию Ubuntu? на каждой платформе? Рабочая станция VMware, виртуальный бокс?

Вы просите меня уточнить, где создавать папки? Вы проверили файл конфигурации виртуального хостинга. Он явно содержит путь, который я использовал для своей установки. Вывод ls -l также содержит то же самое и добавлен, чтобы вы могли проверить требуемое разрешение. Если вы все еще сталкиваетесь с проблемой, просто опишите проблему, а не давайте ненужные отзывы.

Вы никогда не просили о помощи, вы в основном давали осуждающий отзыв, основанный на том, что вы поняли.

Я прекращу обсуждение в этой ветке, все дальнейшие комментарии будут удалены.

Здравствуйте, администратор, я не получаю домашний каталог для пользователя, которого мы создали в разделе идентификации в cloud-init. Даже вручную я не могу создать его, когда использую «usermod -m -d /home/ubuntu ubuntu» (пробовал с root). В нем говорится, что процесс выполняется с идентификатором процесса 1916. Также пытался убить процесс безуспешно. Не могли бы вы помочь мне, я сильно застрял

Это странно. Итак, вы можете войти с консоли, используя указанного пользователя? Если да, после входа в систему вы не входите в какой-либо домашний каталог (я полагаю)?
Существует ли /home? Если да, то правильные ли права доступа к /home ?
Можете ли вы поделиться выводом команд ls -ld /home и df -h
Какой процесс выполняется с PID 1916?

Да, из консоли (ctrl+alt+f3) я могу войти. Да, после входа в систему я не захожу ни в один домашний каталог. Отсутствие входа в каталог с помощью HOME=/

Процесс 1916 — это не что иное, как сеанс входа в систему пользователей (тестовой лаборатории). По моему мнению, в ubuntu нет отдельного root-логина. мы входим в систему с пользователем, а затем идем root. Следовательно, если я убью процесс, я выйду. Не могу сделать usermod.

Какой домашний каталог назначен вашему пользователю? можете ли вы предоставить вывод

Что, если вы вручную создадите домашний каталог, назначите необходимое разрешение, а затем выполните переключение пользователя?

Переменная HOME должна быть установлена ​​в /home внутри /etc/default/useradd
Я не вижу другой проблемы как таковой.

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

В этой статье я покажу вам, как настроить загрузочный сервер PXE в Ubuntu 18.04 LTS, загрузить установщик Ubuntu 18.04 LTS Desktop Live и установить его на компьютер по сети. Итак, приступим.


Здесь я настрою загрузочный сервер PXE в сети. Загрузочный сервер также будет работать как DHCP-сервер. Затем я загружу ОС Linux Live (Ubuntu 18.04 LTS Desktop) на PXE-клиенте и установлю Ubuntu 18.04 LTS Desktop там по сети.

Настройка сети:

Я настроил сервер загрузки PXE с фиксированным IP-адресом 192.168.50.1 с помощью netplan. Я настроил сетевой план следующим образом:


Как видите, фиксированный IP-адрес 192.168.50.1 настроен на интерфейсе ens38.


Установка и настройка dnsmasq:

В этой статье dnsmasq будет действовать как DHCP-сервер и TFTP-сервер сети.

dnsmasq не установлен в Ubuntu 18.04 по умолчанию. Итак, установите dnsmasq с помощью следующей команды:


Должен быть установлен dnsmasq.


Теперь переименуйте исходный файл /etc/dnsmasq.conf в /etc/dnsmasq.conf.backup следующим образом:


Теперь создайте пустой файл dnsmasq.conf с помощью следующей команды:


Теперь введите следующие строки:

interface = ens38
bind-interfaces
domain =linuxhint.local

dhcp-range=ens38,192.168.50.100,192.168.50.240,255.255.255.0,8h
dhcp-option=option:router,192.168.50.1
dhcp-option=option:dns-сервер ,192.168.50.1
dhcp-option=option:dns-сервер,8.8.8.8

enable-tftp
tftp-root= / netboot / tftp
dhcp-boot=pxelinux.0,linuxhint-s20,192.168.50.1
pxe-prompt= "Нажмите F8 для PXE Сетевая загрузка." , 2
pxe-service=x86PC, "Установка ОС через PXE",pxelinux

Окончательный файл конфигурации должен выглядеть следующим образом. Когда вы закончите вводить все, сохраните файл конфигурации, нажав + x, а затем y и .

Теперь создайте корневой каталог tftp /netboot/tftp с помощью следующей команды:


Теперь перезапустите сервер dnsmasq следующим образом:


Теперь проверьте, работает ли служба dnsmasq следующим образом:

Как видите, служба dnsmasq запущена. Значит, все настроено правильно.


Установка и настройка NFS-сервера:

Ubuntu 18.04 LTS Desktop использует casper для загрузки в режиме Live DVD. Каспер поддерживает сетевую загрузку только через NFS. Таким образом, для загрузки Ubuntu 18.04 LTS и любых производных Ubuntu через PXE вам потребуется полнофункциональный сервер NFS, доступный по сети.

Чтобы установить сервер NFS, выполните следующую команду:


Должен быть установлен сервер NFS.


Теперь создайте новый каталог /netboot/nfs для общего доступа через NFS следующим образом:


Теперь откройте файл конфигурации /etc/exports следующим образом:


Теперь добавьте следующую строку в конец файла:

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


Теперь сделайте общий ресурс доступным с помощью следующей команды:


Установка необходимых загрузочных файлов PXE:

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

Теперь вам нужно скопировать все необходимые файлы в каталог /netboot/tftp/.

Скопируйте файл pxelinux.0 в каталог /netboot/tftp следующим образом:


Теперь скопируйте файлы ldlinux.c32, libcom32.c32, libutil.c32, vesamenu.c32 в каталог /netboot/tftp следующим образом:


Теперь создайте каталог конфигурации загрузчика PXE /netboot/tftp/pxelinux.cfg/ следующим образом:


Теперь создайте файл конфигурации загрузчика PXE по умолчанию /netboot/tftp/pxelinux.cfg/default следующим образом:


Сервер TFTP теперь может обслуживать все необходимые файлы загрузчика по сети.

Подготовка рабочего стола Ubuntu 18.04 LTS к загрузке PXE:

Теперь загрузите ISO-образ Ubuntu 18.04 LTS Live Desktop с помощью следующей команды:


Это займет некоторое время.


После загрузки файла образа ISO смонтируйте файл ISO в каталоге /mnt следующим образом:


Теперь создайте выделенные каталоги для Ubuntu 18.04 LTS /netboot/nfs/ubuntu1804/ и /netboot/tftp/ubuntu1804/ следующим образом:


Теперь скопируйте содержимое файла ISO в каталог NFS /netboot/nfs/ubuntu1804/ следующим образом:


Содержимое файла ISO должно быть скопировано.

Теперь скопируйте файлы vmlinuz и initrd в каталог /netboot/tftp/ubuntu1804/ следующим образом:


Теперь измените права доступа к каталогу /netboot следующим образом:


Теперь вы можете размонтировать ISO-образ Ubuntu 18.04 LTS и удалить его, если хотите.

Добавление загрузочной записи PXE для Ubuntu 18.04 LTS:

Теперь вам нужно добавить загрузочную запись для Ubuntu 18.04 LTS в файл /netboot/tftp/pxelinux.cfg/default.

Откройте файл конфигурации меню загрузки PXE /netboot/tftp/pxelinux.cfg/default для редактирования следующим образом:


Теперь добавьте в файл следующие строки.


метка install1
метка меню ^Установить Ubuntu 18.04 LTS Desktop
меню по умолчанию
kernel ubuntu1804 / vmlinuz
добавить initrd =ubuntu1804 / initrd boot =casper netboot = nfs nfsroot =192.168.50.1:/
netboot/nfs/ubuntu1804/splash toram ---

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


Установка Ubuntu 18.04 LTS через PXE:

Теперь на PXE-клиенте, где вы хотите установить Ubuntu 18.04 LTS по сети через PXE, перейдите в BIOS и загрузку по сети по сети.


Когда вы увидите следующее сообщение, нажмите на клавиатуре.


Теперь выберите Установить ОС через PXE и ​​нажмите .


У вас будет только один вариант. Итак, просто нажмите .


Как видите, отображается экран-заставка Ubuntu 18.04 LTS. Он загружается. Это может занять некоторое время в зависимости от скорости вашего сетевого подключения.


Должна быть загружена Ubuntu 18.04 LTS. Теперь вы можете установить его на свой клиентский компьютер.

Итак, вот как настроить сетевой загрузочный сервер PXE в Ubuntu 18.04 LTS. Спасибо, что прочитали эту статью.

В наших предыдущих сообщениях (см. здесь, здесь и здесь) о технологии PXE и ​​о том, как развернуть компьютер Ubuntu через сеть, мы видели, что с момента внедрения технологии UEFI и безопасной загрузки процесс немного изменился. и необходимо объединить технологии, чтобы иметь возможность развертывать операционную систему Ubuntu. Кажется, что стандартный и хорошо принятый подход состоит в том, чтобы объединить технологию pxelinux для систем на основе BIOS и использовать загрузчик grub для систем на основе UEFI.

Технически можно использовать только решение PXELinux для развертывания операционных систем в системах на основе BIOS или UEFI. Однако существуют некоторые существенные ограничения. Эти ограничения

  • pxelinux нельзя использовать с системами UEFI, когда включен параметр безопасной загрузки (загрузчик не подписан для поддержки безопасной загрузки UEFI!!)
  • У pxelinux в системах UEFI есть проблемы с низкой производительностью (связанные с размером блока tftp, и это, похоже, еще не исправлено…)

С другой стороны, также представляется возможным полностью избавиться от технологии pxelinux и заменить ее технологией grub. Решение Grub можно использовать для развертывания операционных систем в системах на основе BIOS и UEFI. Преимущество Grub в том, что все необходимые файлы подписаны и могут использоваться при включенной опции безопасной загрузки. В некоторых будущих сообщениях (может быть), просто для эксперимента мы могли бы предоставить руководство по настройке сервера PXE, используя только технологию PXELinux и/или используя только технологию grub.

В этом посте (или серии постов) мы снова предоставим своего рода пошаговое руководство по настройке PXE-сервера, который может одновременно обслуживать системы на основе BIOS или UEFI… Это должно быть довольно просто. поскольку большинство аспектов уже обсуждалось в некоторых предыдущих сообщениях.

В этом руководстве объясняется, как настроить инфраструктуру сервера dhcp/pxe/tftp для поддержки сетевой установки систем на основе BIOS и UEFI. В этом руководстве будут смешаны технологии PXELinux и grub. Эта комбинация кажется той, которая обеспечивает наилучшие результаты, когда необходимо развернуть операционные системы в системах на основе UEFI или BIOS. Поскольку файлы grub подписаны, эта установка также поддерживает UEFI и включена безопасная загрузка

Загрузчик pxelinux будет использоваться, когда необходимо установить системы на основе BIOS. Подход загрузчика Grub будет использоваться, когда необходимо развернуть системы UEFI. Выбор загрузчика будет сделан автоматически при загрузке клиента. Процесс загрузки включает информацию о пакете, которая сообщает PXE-серверу, какой загрузчик использовать….

Чтобы развернуть операционную систему Ubuntu через сеть, в сети должна присутствовать необходимая инфраструктура и серверные службы. DHCP, DNS, TFTP, веб-службы и файловые службы необходимы для создания необходимой инфраструктуры PXE.

Предположения

Чтобы этот сценарий работал, были сделаны следующие предположения

  • Платформа Hyper-v используется для эмуляции виртуальных машин на базе UEFI
  • Виртуальная машина поколения 2 будет использоваться для включения UEFI и параметра SecureBoot (подробные инструкции можно найти здесь)
  • У вас есть подключение к Интернету, чтобы загрузить дополнительные необходимые пакеты
  • У вас есть Ubuntu 18.04 Server ISO или установочные файлы
  • У вас есть Ubuntu 18.04 Desktop ISO или установочные файлы

Шаг 0. Установите Ubuntu 18.04.2 Server Edition

В этом посте мы будем использовать сервер Ubuntu 18.04.2 в качестве PXE-сервера. Ubuntu 18.04.2 была выбрана, потому что это выпуск с долгосрочным обслуживанием (LTS). В этом посте не объясняется, как установить сервер Ubuntu. Когда установка будет завершена, перейдите к следующему шагу

Шаг 1. Установите статический IP-адрес на вашем сервере Ubuntu

Ubuntu Server по умолчанию не имеет интерфейса рабочего стола. Нам нужно будет выполнять большинство действий через командную строку. Не бойтесь, вы увидите, что на самом деле это довольно просто. Чтобы установить статический IP-адрес на вашем сервере Ubuntu, вам нужно будет отредактировать следующий файл /etc/netplan/50-cloud-init.yaml.

Чтобы отредактировать этот файл, введите следующую команду

Замените содержимое файла следующим (возможно, вам потребуется обновить информацию в зависимости от вашей инфраструктуры

Чтобы применить изменения, нам также нужно выполнить эту команду

Наконец, проверьте правильность установки IP-адреса, введя следующую команду

Шаг 2. Создайте свой PXE-сервер

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

  • dnsmasq (предоставляет службы DHCP, DNS и TFTP),
  • Apache Web для хранения и
  • Пакеты NFS, если вы планируете развернуть Ubuntu Desktop через инфраструктуру PXE.

Шаг 2.1. Установите веб-сервер Apache

Чтобы установить пакет apache, введите следующую команду

Шаг 2.2. Установите пакеты NFS

Пакеты NFS предоставляют возможности файловых служб. Чтобы установить пакеты nfs, выполните следующие команды

Шаг 2.3. Установите пакеты dnsmasq

Чтобы установить пакет dnsmasq, введите следующую команду

Шаг 3. Создайте структуру папок TFTP

Мы создадим папку с именем tftp в корне файловой системы (/tftp). В этой папке будет создана следующая структура

Чтобы создать эту структуру, вам потребуется выполнить следующие команды

Шаг 4. Загрузите исходные файлы на свой PXE-сервер

Поскольку вы используете веб-сервер Apache, мы будем копировать все исходные файлы в каталог /var/www/html. Мы скопируем содержимое iso-файлов Ubuntu 18.04 Desktop и Ubuntu Server в это место. Сначала мы создадим следующую структуру

Очевидно, что вы можете добавить другую версию файлов Ubuntu, и ваша структура может выглядеть следующим образом

Итак, смонтируйте ваш iso-файл на сервер Ubuntu. Чтобы смонтировать его, введите следующую команду

Скопируйте файлы из iso-образа в правильный каталог. Вы можете использовать следующий синтаксис для выполнения операции

Когда копирование будет завершено, размонтируйте образ iso/DVD с вашего компьютера, выполнив следующую команду

Повторите операцию для всех исходных файлов операционной системы, которые вы хотите скопировать на свой PXE-сервер

Шаг 5. Настройка параметров сервера NFS

Поскольку наша структура папок готова, мы можем приступить к настройке различных служб, используемых сервером PXE. Чтобы убедиться, что наша структура каталогов доступна через сеть и через протокол nfs, нам нужно будет отредактировать следующий файл, выполнив следующую команду

Вставьте внизу файла путь, по которому вы сохранили свои установочные файлы, какая подсеть может получить к ним доступ и какие права вы хотите предоставить. В нашем сценарии мы хотим предоставить доступ к следующему каталогу /var/www/html/bionic/desktop через сетевую подсеть 192.168.1.0/24, и мы предоставляем доступ только для чтения (ro). Итак, в конец файла мы добавим следующую строку

После этого пришло время перезапустить службу nfs. Для этого просто выполните следующую команду

Шаг 6. Настройка служб dnsmasq

Почти готово! Теперь нам нужно настроить службу dnsmasq, которая обеспечит связь между различными службами. Файл конфигурации dnsmasq будет использоваться для предоставления необходимой информации клиенту pxe при его загрузке. Этот файл определяет, где искать загрузчик pxe в зависимости от архитектуры клиента (UEFI или BIOS). Итак, давайте отредактируем файл /etc/dnsmasq.conf и добавим внизу следующую информацию

Чтобы отредактировать файл конфигурации, введите следующую команду

Скопируйте и обновите следующую информацию внизу файла

Чтобы изменения вступили в силу в вашей системе, вам потребуется перезапустить службу dnsmasq. Чтобы выполнить такую ​​задачу, вы выполните следующую команду

Затем вы должны убедиться, что dnsmasq запущен правильно и что нет сообщений об ошибках, введя команду

Шаг 7. Загрузка всех необходимых файлов в структуру папки TFTP

Мы почти готовы! Теперь нам нужно поместить необходимый файл в вашу папку tftp, чтобы иметь возможность pxe.

Шаг 7.1. Заполнение папки BIOS

Вам также потребуется создать символическую ссылку на папку /tftp/boot. Вам нужно будет ввести следующую команду

Нам также потребуется создать папку с именем pxelinux.cfg в папке /tftp/bios. Внутри этой папки мы создадим пустой файл с именем default. Этот файл управляет поведением pxelinux. Мы заполним его следующим кодом

Вы готовы перейти к следующему разделу

Шаг 7.2. Заполнение загрузочной папки

На этом шаге нам нужно разместить правильный загрузчик, чтобы процесс установки начался соответствующим образом. В папке /tftp/boot мы создадим 2 подпапки, чтобы различать файлы загрузчика сервера и рабочего стола. Таким образом, структура папок будет выглядеть следующим образом

Мы скопируем необходимые файлы из папки /var/www/html. Выполните следующие команды, чтобы скопировать необходимые файлы в нужное место

Шаг 7.3. Заполнение папки grub

Наконец, нам нужно заполнить папку grub. Эта папка содержит файлы, необходимые для загрузки систем uefi. Итак, в вашей системе вы будете выполнять следующие команды. Приведенные ниже команды в основном загружают необходимые подписанные файлы загрузчика и файлы grub, необходимые PXE-серверу, и извлекают содержимое в их выделенные папки (shim и grub)

Когда это будет сделано, мы можем просто скопировать нужный файл в загрузочную папку tftp. Итак, выполните следующие команды. Измените путь соответствующим образом в соответствии с вашими настройками…

Наконец, мы скопируем два дополнительных файла из исходного iso-образа. Они будут служить базой для следующего шага. Итак, выполните следующие команды

Шаг 7.4. Создайте/обновите файл grub.cfg

Мы почти закончили! Теперь нам нужно также создать загрузочное меню и получить доступную и работающую правильную опцию. Загрузчик grub считывает информацию из файла grub.cfg. Если вы следовали этому пошаговому руководству, содержимое файла grub.cfg должно выглядеть следующим образом

Шаг 8. Проверьте свою конфигурацию

Это самое интересное! Если все работает должным образом, при загрузке клиента Bios вы должны увидеть появление загрузчика pxelinux. Как вы можете видеть на снимке экрана ниже, мы немного изменили внешний вид меню загрузки, чтобы оно соответствовало меню загрузки grub.

ultimate_pxe_09

Нажмите на картинку, чтобы увеличить разрешение

Сделав то же самое для компьютеров с UEFI, вы должны увидеть меню загрузки, подобное следующему.

ultimate_pxe_10

Нажмите на картинку, чтобы увеличить разрешение

Это все для этого поста! Мы предоставили здесь пошаговое руководство по настройке сервера PXE на сервере Ubuntu. Это руководство по установке содержит много информации и может быть использовано во множестве сценариев. Наша реализация предлагает следующие преимущества

  1. может использоваться для развертывания Ubuntu Server или Ubuntu Desktop
  2. может использоваться против систем BIOS или UEFI
  3. с использованием минимально необходимых файлов, необходимых для обеспечения функций загрузки pxe
  4. предоставить основу для настройки меню загрузки, чтобы оно соответствовало вашему фирменному стилю

Возможно, мы еще не закончили изучение решений PXE, PXELinux и Grub. В следующем посте мы, возможно, захотим предоставить некоторые рекомендации по созданию сервера PXE, используя только файлы PxELInux или только файлы Grub

PXE или Preboot eXecution Environment — это серверно-клиентский механизм, предписывающий клиентскому компьютеру загрузиться из сети.

Требования:

Шаг 1. Установите и настройте сервер DNSMASQ

<р>1. Чтобы настроить сервер PXE, на первом этапе войдите в систему с учетной записью root или учетной записью с привилегиями root и установите пакет Dnsmasq в Ubuntu, выполнив следующую команду.

<р>2. Затем сделайте резервную копию основного файла конфигурации dnsmasq, а затем начните редактировать файл со следующими конфигурациями.

Добавьте следующую конфигурацию в файл dnsmasq.conf.

В приведенном выше файле конфигурации замените следующие строки соответствующим образом.

  • Интерфейс Замените сетевым интерфейсом вашего собственного компьютера.
  • домен — замените его своим доменным именем.
  • dhcp-range — определите свой собственный сетевой диапазон для DHCP, чтобы выделить IP-адреса этому сегменту сети и как долго должен предоставляться IP-адрес для клиента.
  • dhcp-option=3 – IP-адрес вашего шлюза.
  • dhcp-option=6 IP-адреса DNS-сервера — можно определить несколько IP-адресов DNS.
  • server – IP-адрес сервера пересылки DNS.
  • dhcp-option=28 — широковещательный адрес вашей сети.
  • dhcp-option=42 — NTP-сервер — используйте адрес 0.0.0.0 для самостоятельной проверки.
  • dhcp-boot — загрузочный файл pxe и IP-адрес сервера PXE (здесь pxelinux.0 и IP-адрес той же машины).
  • pxe-prompt: пользователи могут нажать клавишу F8, чтобы войти в меню PXE, или подождать 2 секунды, прежде чем автоматически переключиться в меню PXE.
  • pxe=service — используйте x86PC для 32-разрядных/64-разрядных архитектур и введите подсказку описания меню в кавычках. Другими типами значений могут быть: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI и X86-64_EFI.
  • enable-tftp — включает встроенный TFTP-сервер.
  • tftp-root — системный путь для сетевых загрузочных файлов.
<р>3. Кроме того, после того, как вы закончите редактирование файла конфигурации dnsmasq, создайте каталог для файлов сетевой загрузки PXE, введя приведенную ниже команду, и перезапустите демон dnsmasq, чтобы применить изменения. Проверьте статус службы dnsmasq, чтобы убедиться, что она запущена.

Шаг 2. Установите файлы сетевой загрузки TFTP

<р>4. На следующем шаге получите последнюю версию ISO-образа сервера Ubuntu для 64-битной архитектуры, выполнив следующую команду.

<р>5.После загрузки ISO-образа сервера Ubuntu смонтируйте образ в каталог /mnt и выведите список содержимого смонтированного каталога, выполнив следующие команды.

Проверить Ubuntu Файлы ISO» ширина = «594» высота = «149» /><br /></p>
<р>6. Затем скопируйте файлы сетевой загрузки из смонтированного дерева Ubuntu в системный путь tftp, введя следующую команду. Кроме того, укажите системный путь tftp, чтобы увидеть скопированные файлы.</p>
<p> <img class=

Шаг 3. Подготовьте исходные файлы для локальной установки

<р>8. Затем скопируйте содержимое смонтированного DVD-диска Ubuntu в корневой каталог веб-сервера Apache, выполнив приведенные ниже команды. Перечислите содержимое корневого веб-пути Apache, чтобы проверить, было ли полностью скопировано смонтированное дерево Ubuntu ISO.

Проверить источники HTTP Ubuntu

Шаг 4. Настройте файл конфигурации PXE-сервера

<р>10. Чтобы иметь возможность развернуть rootfs через PXE и ​​локальные источники, Ubuntu необходимо проинструктировать через файл preseed. Создайте следующий файл local-sources.seed в корневой папке документа вашего веб-сервера со следующим содержимым.

Добавьте следующую строку в файл local-sources.seed.

Здесь убедитесь, что вы заменили IP-адрес соответствующим образом. Это должен быть IP-адрес, на котором расположены веб-ресурсы. В этом руководстве веб-источники, сервер PXE и ​​сервер TFTP размещаются в одной системе. В переполненной сети вам может понадобиться запустить PXE, TFTP и веб-службы на отдельных машинах, чтобы повысить скорость сети PXE.

<р>11. Сервер PXE считывает и выполняет файлы конфигурации, расположенные в корневом каталоге TFTP pxelinux.cfg, в следующем порядке: файлы GUID, файлы MAC и файл по умолчанию.

Каталог pxelinux.cfg уже создан и заполнен необходимыми файлами конфигурации PXE, поскольку ранее мы скопировали файлы сетевой загрузки из смонтированного ISO-образа Ubuntu.

Чтобы добавить указанный выше файл инструкции preseed на установочную метку Ubuntu в файле конфигурации PXE, откройте следующий файл для редактирования, введя приведенную ниже команду.

В файле конфигурации Ubuntu PXE txt.cfg замените следующую строку, как показано в приведенном ниже отрывке.

Файл /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg должен иметь следующее глобальное содержимое:

<р>12. Если вы хотите добавить предварительно заданный URL-адрес в меню Ubuntu Rescue, откройте приведенный ниже файл и убедитесь, что вы обновили содержимое, как показано в приведенном ниже примере.

Добавьте следующую конфигурацию в файл rqtxt.cfg.

<р>13. Наконец, откройте файл Ubuntu pxe menu.cfg и прокомментируйте первые три строки, чтобы расширить экран загрузки PXE, как показано на снимке экрана ниже.

Прокомментируйте следующие три строки.

Конфигурация меню PXE

Шаг 5. Откройте порты брандмауэра в Ubuntu

<р>14. Выполните команду netstat с правами суперпользователя, чтобы определить открытые порты dnsmasq, tftp и веб-порты в состоянии прослушивания на вашем сервере, как показано в приведенном ниже отрывке.

Проверить открытые порты

<р>15. После того, как вы определили все необходимые порты, введите приведенные ниже команды, чтобы открыть порты в брандмауэре ufw.

Шаг 6. Установите Ubuntu из локальных источников через PXE

<р>16. Чтобы установить сервер Ubuntu через PXE и ​​использовать локальные сетевые источники установки, перезагрузите компьютер-клиент, укажите BIOS для загрузки из сети и на первом экране меню PXE выберите первый вариант, как показано на изображениях ниже.

Выбрать загрузку по сети
Выберите вариант загрузки PXE
Установить Ubuntu с помощью PXE
<р>17. Процедура установки должна выполняться как обычно. Когда установщик дойдет до настройки страны-зеркала архива Ubuntu, используйте стрелку вверх на клавиатуре, чтобы перейти к первому варианту, который гласит: введите информацию вручную.

Выберите зеркальный архив Ubuntu

<р>18. Нажмите клавишу [enter], чтобы обновить этот параметр, удалите строку зеркала и добавьте IP-адрес зеркальных источников веб-сервера, а затем нажмите клавишу ввода, чтобы продолжить, как показано на рисунке ниже.

 Введите имя хоста зеркального архива Ubuntu

<р>19. На следующем экране добавьте каталог зеркального архива, как показано ниже, и нажмите клавишу ввода, чтобы продолжить процесс установки и обычно.

 Выберите «Каталог зеркального архива Ubuntu» width=

<р>20. Если вы хотите просмотреть информацию о том, какие пакеты загружены с локального зеркала вашей сети, нажмите клавиши [CTRL+ALT+F2], чтобы изменить виртуальную консоль машины, и введите следующую команду.

Проверить сеть Зеркальные журналы

21. После завершения установки сервера Ubuntu войдите в только что установленную систему и выполните следующую команду с привилегиями root, чтобы обновить пакеты репозиториев из локальных сетевых источников на официальные зеркала Ubuntu.

Необходимо изменить зеркала, чтобы обновить систему с помощью интернет-репозиториев.

Изменить Ubuntu Сетевые источники

Убедитесь, что вы заменили IP-адрес в соответствии с IP-адресом ваших собственных локальных веб-источников.

Официальный Ubuntu Сетевые источники

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

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Поддержите нас

Мы благодарны за вашу бесконечную поддержку.

Похожие сообщения

Установка нескольких дистрибутивов Linux с использованием сетевой загрузки PXE

Установить Windows 7 через PXE в CentOS

Настройка предварительных условий для установки Windows 7 через PXE

Добавить Ubuntu в загрузку Pxe в CentOS

Автоматический множественный Установка Linux

 Настройка сетевой загрузки PXE в CentOS

9 мыслей о «Как установить Ubuntu через PXE-сервер с использованием локальных источников DVD»

После этого было бы здорово, если бы мы могли настроить автоматическую установку (без необходимости ручного ввода). Каковы будут шаги для этого?

В Ubuntu 18.04 нет файловой системы.squashfs. исо отличается. Кто-нибудь знает, как загрузить 18.04?

Я нашел filesystem.squashfs в каталоге casper

Отличная статья, хотя если вы хотите установить рабочий стол Ubuntu, вам понадобится:

<р>1. Найдите файлы/папки сетевой загрузки для вашего дистрибутива, а затем создайте папку под «установкой» под названием «netboot», которая упоминается в статье.

<р>2. Поэкспериментируйте с именами каталогов, которые в моем случае называются «ubuntu_i» вместо «ubuntu_installer» и то же самое с «boot_screen»

Я хочу установить Ubuntu Desktop через PXE. я могу это сделать.

Я использую ваш учебник, чтобы создать сервер pxe, но я обнаружил, что что-то действительно сбивает с толку, когда вы загружаете ISO-образ сервера и монтируете ISO-образ рабочего стола, как это возможно, я немного запутался, пожалуйста, предоставьте мне решение для них.< /p>

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

Кроме того, было бы очень полезно для ваших читателей (в том числе и для меня) показать пример использования, подобный этому: это руководство можно использовать, если у вас есть лабораторная сеть, когда вам нужно много раз установить/переустановить ОС Ubuntu. .

И последнее. Если я хочу установить новую ОС Ubuntu, я использую Clonezilla или Urbackup, которые быстрее и проще по сравнению с PXE.

Хорошего дня!

Если установка PXE вам не нужна, не используйте ее. Установите Ubuntu классическим способом. Просто так!

Почему мне следует устанавливать Ubuntu или что-то еще через PXE? И если мой хост не может использовать PXE (на некоторых материнских платах есть ошибки, связанные с pxe). А если у меня уже есть DHCP? Я уверен, что вам нужно поставить эти наблюдения на необходимые вещи.

Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

Читайте также: