Как установить ubuntu по сети

Обновлено: 03.07.2024

Немножко особняком здесь стоят операционные системы. Действительно, скачать и установить обычную программу несложно: компьютер с работающей операционной системой и сайт покажет, и инсталлятор скачает, и установит. Пользователю нужно только кнопочки Yes да Next нажимать время от времени. А вот как установить саму операционку, да еще и на чистый компьютер? Раньше без специальной загрузочной дискеты было не обойтись. Причем даже когда операционки стали распространяться на компакт-дисках, все равно нужна была работающая операционка, которая могла бы создать загрузочную дискетку с образа, расположенного на компакт-диске. Потом появились загрузочные компакт-диски, и процесс установки стал значительно легче: всунул диск, включил компьютер, инсталлятор сам запустился, нашел все диски, спросил, куда будем ставиться - и понеслась.

Но диски тоже потихоньку сходят с арены, уступая более компактным и надежным (а в последнее время еще и более объемным) USB-флешкам.
И хотя сейчас CD/DVD-привод пока еще есть практически в каждом компьютере, многие ноутбуки (а в особенности - нетбуки) уже жертвуют этой громоздкой железякой для экономии места. Действительно, а зачем он нужен, если все необходимое можно скачать через Интернет, в крайнем случае - передать через флешку?

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

На самом деле, технология запуска рабочей станции по программе, загружаемой из локальной сети, не так уж и нова - ей уже лет тридцать, но до сих пор она использовалась преимущественно коммуникационными железками вроде маршрутизаторов или мини-АТС. Видимо, как раз нетбуки и стали тем спусковым крючком, который породил спрос на включение в материнские платы возможность установки операционной системы путем скачивания инсталлятора с сервера. А что - удобно: подключил к специальному загрузочному серверу несколько десятков ноутбуков (на сколько портов хватило), сервер раздал каждому по загрузчику, операционка сама поставилась, ноутбуки готовы к продаже, подключаем следующую партию. Вот оно, массовое производство.

Эволюция материнских плат

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

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

От теории к практике

Недавно мне довелось попробовать это все на личном опыте. Я устанавливал Debian Linux на свой домашний сервер. И, поскольку материнка поддерживает старт через сеть, я решил, что этим грех не воспользоваться. В теории все выглядит очень заманчиво: при включении компьютера крохотный инсталлятор скачивается с соседнего компьютера, после чего инсталлятор выходит в Интернет и скачивает последнюю-распоследнюю версию операционки (т.е. не надо никаких сервиспаков, обновлений, драйверов и прочей фигни). Пользователю остается только выбрать режим установки, указать, куда поставить систему, какие компоненты ставить - в общем, стандартный набор простейших действий.

В конечном итоге у меня все получилось, хотя грабли я собрал, кажется, все, какие только возможно - в процессе даже возникала крамольная мысль: "а не проще ли скачать образ DVD и поставить с него?". Но в итоге все трудности были успешно преодолены, а о встреченных граблях мне хотелось бы рассказать - вдруг кому будет полезно.

Итак, топология сети проста и незатейлива, как и в большинстве домов, где больше одного компьютера: роутер, раздающий интернет, к нему подключены два компа (мой и Юлькин), и туда же был воткнут сервер. Теперь задача: один из компов (очевидно, мой) должен стать устройством, с которого сервер получит инсталлятор Линукса.

Почитав мануалы, я узнал, что загрузка осуществляется по протоколу TFTP. TFTP - это упрощенный FTP, там нет авторизации и есть только две команды: get и put. Гугл мне подсказал, что в винде встроенного TFTP-сервера нет, но его можно установить в виде отдельной приблуды под названием Tftpd32. Скачал, установил. Убедился, что команда tftp localhost put aaa.txt действительно заливает файлик aaa.txt из текущего каталога в рабочий каталог Tftp32. "Полдела сделано", - подумал я оптимистично и распаковал в рабочий каталог файлы инсталлятора Debian.

А дальше началось самое веселое - нужно было как-то дать понять стартующему серверу, куда лезть за загрузчиком. Сначала я наивно подумал, что он сам просканирует сеть и найдет там TFTP-сервер. Надо ли говорить, что ничего подобного не случилось. Включившись, сервер некоторое время показывал мне вот такую надпись:

после чего добавил:

На этом загрузка по сети закончилась.

Ну, логично, подумал я. В настройках Tftp32 есть вкладка DHCP, и там есть поле Boot File - куда, очевидно, надо вписать pxelinux.0 (это имя загрузчика, я узнал об этом из мануала по установке Debian). Но вот что меня смущало: то, что это поле находится во вкладке DHCP означает, что Tftpd32 должен выступать еще и в роли DHCP-сервера? Так у меня уже есть один, на роутере, зачем мне еще один?

Но поскольку поле Boot File попросту не прописывалось без прочих настроек, очевидно было, что Tftpd32 все-таки придется сделать DHCP-сервером. Получается, "кто девушку ужинает, тот ее и танцует" - т.е. кто айпишник выдал, тот и инструкции по загрузке выдает, иначе никак.

Мне очень не хотелось отключать DHCP на роутере, поэтому я попробовал прямо так - а вдруг не подерутся? Но они, естественно, подрались. Ладно, выставил на всех компах статические адреса, отключил DHCP на роутере, попробовал заново. Включаю опять сервер - кажется, дело сдвинулось с мертвой точки. Tftp32 даже написал, что у него запросили файлик pxelinux.0, и показал прогресс-бар загрузки. который замер на нуле и больше не двигался.

Еще поползал по Интернету, покурил различные мануалы. Осознал, что старт происходит не просто по протоколу TFTP, а по некоей его модификации под названием PXE. Нашел в настройках Tftpd32 неприметную галочку PXE Compatibility. Поставил. Еще раз стартовал сервер. Опять ничего не грузится: No boot filename received.

Главный экран инсталлятора Debian Linux

Оказывается, Tftpd32 после каждого изменения настроек сбрасывает рабочий каталог на каталог по умолчанию (тот, куда он сам установился). Я выругался, вернул каталог на место и снова стартовал сервер. Помогло. Пискнув, сервер гордо отобразил экран инсталлятора Debian Linux.

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

А причиной недоступности, очевидно, было то, что я в настройках DHCP в Tftpd32 забыл указать адрес DNS-сервера - поэтому загрузчик не мог разрешить ни одного доменного имени, и, как следствие, не мог достучаться ни до одного зеркала. После того, как я эту проблему исправил, инсталляция прошла успешно.

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

Настройка сервера для установки

Прежде всего вам потребуется компьютер с Ubuntu или с другим дистрибутивом Linux (данная инструкция написана для Ubuntu), с которого вы будете устанавливать систему (сервер загрузки по сети), и ISO образ Alternate диска с необходимой версией Ubuntu.

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

Для установки всего необходимого лучше использовать aptitude, которая не входит в стандартную поставку Ubuntu начиная с версии 10.10. Поэтому сначала ставим aptitude через любую программу установки пакетов или командой

Далее ставим всё необходимое:

Ключ -R нужен для того, чтобы atftpd поставился без inetd сервера, который вам совершенно не нужен.

Теперь пора настроить все компоненты.

TFTP сервер

Демон, использующий эти файлы - /etc/hosts.allow и /etc/hosts.deny для ограничения доступа.

Откройте файл /etc/default/atftpd в любом текстовом редакторе с правами суперпользователя, например, так:

Измените первую строчку с

Кроме этого запомните каталог, который находится в конце строчки OPTIONS . Скорее всего это будет /srv/tftp , но в старых Ubuntu может быть и /var/lib/tftpboot . Редактируем файл /etc/default/tftpd-hpa:

вписываем, запомненный каталог

Теперь просто запустите atftpd :

Теперь создайте в каталоге из OPTIONS папку ubuntu. Далее везде будем считать, что используется каталог /srv/tftp :

На этом настройка TFTP закончена.

Веб-сервер Apache

DHCP сервер

В этом файле необходимо изменить следующие настройки:

Теперь необходимо перевести второй компьютер в режим загрузки по сети. После этого Вы должны увидеть экран установки Ubuntu.

Установка по при помощи Minimal CD

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

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

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

Вы можете сделать это, используя метод сетевой установки, запустив установку Ubuntu по сети. описано в Netboot Install

Сетевой установщик позволяет вам установить Ubuntu по сети. Этот полезно, например, если у вас старая машина с незагружаемым CD-ROM или компьютер, на котором не работает графический интерфейс установщик, либо потому, что они не соответствуют минимальным требованиям для live CD / DVD или потому, что они требуют дополнительной настройки перед можно использовать графический рабочий стол или, если вы хотите установить Ubuntu на одновременно большое количество компьютеров. Ubuntu

Есть так много способов выполнить это.

Вы должны изменить имена хостов и IP-адреса в этом HOWTO для вашего собственная настройка.Описанные здесь принципы применимы к другим DHCP. и серверы TFTP, чем те, что описаны ниже; с использованием альтернативного сервера программное обеспечение оставлено в качестве упражнения для читателя.

Для получения инструкций по использованию компьютера с Windows в качестве TFTP и DHCP server, зайдите в Installation / WindowsServerNetboot.

Этот HOWTO поможет вам запустить установщик; Если хочешь для автоматической или автоматической установки Ubuntu см. Установка / LocalNet.

Загрузка с компакт-диска (также может быть TFTP или аналогичный) и установка система через SSH.

Краткое руководство по установке Hardy Ubuntu 12.04 на выделенный сервер через ssh.

Ознакомьтесь с полной документацией по Серверные и сетевые установки

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

Вы также должны иметь возможность сделать это с системой, отличной от Ubuntu, в качестве хоста, если у вас уже есть такая настройка и вы знаете, как настроить необходимые серверы на своей системе, отличной от Система Ubuntu.

Введение

Это поможет вам запустить сервер Ubuntu в качестве установки PXE. сервер. Вам нужно будет запустить DHCP-сервер в вашей сети, а не обязательно этот сервер, но он вам нужен.

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

Вам необходимо установить следующие пакеты: inetutils-inetd (ранее netkit-inetd ), tftpd-hpa (см. Установка программного обеспечения ).

  • Для Ubuntu 10.04 есть ошибка с inetutils-inetd . Он слушает только IPv6, но не IPv4. В качестве быстрого обходного пути вы можете использовать openbsd-inetd .

Если это также будет ваш DHCP-сервер, установите DHCP-сервер. содержится в следующем пакете: dhcp3-server (см. Установка программного обеспечения ).

Настройте tftpd-hpa

Вам нужно будет указать tftpd-hpa запустить его демон (что не по умолчанию). Для этого отредактируйте файл / etc / default / tftpd-hpa и сделайте убедитесь, что это выглядит примерно так:

Затем запустите сценарий запуска, чтобы фактически запустить демон:

Настройте dhcpd

Если ваш сервер pxe также является вашим сервером dhcp, вам что-то понадобится как это в /etc/dhcp3/dhcpd.conf :

Если у вас есть существующий DHCP-сервер, вы должны указать его на свой pxe. сервер, выполнив что-то вроде следующего:

Не забудьте перезапустить сервер DHCP, чтобы изменения вступили в силу:

Настройте tftpd-hpa

tftpd-hpa вызывается из inetd . Параметры, переданные в tftpd-hpa при его запуске, таким образом, можно найти в /etc/inetd.conf

. Значения по умолчанию нам подходят, ваш /etc/inetd.conf должен иметь запись вроде этого:

(Хотя вам может потребоваться отредактировать этот файл и заменить udp на udp4 , поскольку tftpd-hpa , похоже, теперь ожидает адрес IPv6.)

Теперь мы скопируем необходимые файлы с компакт-диска Ubuntu:

Если ваш DHCP-сервер выдает правильную информацию о сети и ваших клиентах pxe будет доступ к сети,то на этом этапе вы сможете выполнить Ubuntu устанавливается с использованием интернет-репозиториев.

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

Установить apache

Копирование файлов Ubuntu

Создайте каталог ubuntu в недавно установленном apache. корень документа и скопируйте все содержимое альтернативного компакт-диска Ubuntu в этот каталог:

Настройка установки

Существует пакет под названием system-config-kickstart , который представляет собой графический интерфейс. интерфейс для создания файлов кикстарта. Файл кикстарта сообщает установщик, откуда брать его пакеты, что устанавливать и номер других полезных настроек. См. KickstartCompatibility для получения дополнительной информации. info.

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

Очень минималистичный файл `ks.cfg, который использует только установочные файлы на сервере установки и все остальные вопросы могут выглядеть так: это:

Используйте ваш ks.cfg

То, что у меня сработало при установке Ubuntu 18.04 LTS, было основано на руководстве Изабель Кастелло , которое, похоже, основано на руководстве LocalNet из Ubuntu wiki , но для меня он был гораздо более читаемым и понятным.

Предварительные требования

Вы должны быть в сети с 3 узлами:

  1. Базовый DHCP-маршрутизатор .
  2. Целевой сервер , на который вы хотите установить Ubuntu. Он должен быть подключен к маршрутизатору с помощью кабеля (не WiFi). И, очевидно, поддерживает загрузку по сети в BIOS.
  3. исходный сервер , который будет обслуживать файлы и службы начальной установки. В этом руководстве предполагается, что это также Ubuntu; Конечно, возможны и другие ОС, но команды, очевидно, будут другими.

Убедитесь, что включили сетевую загрузку в целевом BIOS .

Ввод BIOS часто выполняется нажатием или удержанием Del или F2 при загрузке машины. В качестве альтернативы, нажатие F12 часто позволяет изменить последовательность загрузки определенным производителем способом, что может помочь.

Найдите следующие значения:

(Вы можете просмотреть / изменить настройки DHCP на маршрутизаторе , чтобы узнать некоторые из них. Кроме того, если вам удастся войти в этап сетевой загрузки при загрузке целевого компьютера , он, вероятно, покажет по крайней мере MAC-адрес , поэтому вы можете его запомнить вниз.)

  • MAC-адрес цели - свойство его сетевой карты,
  • IP-адрес цели - назначенный ему маршрутизатором ,
  • IP-адрес шлюза - другими словами, IP-адрес маршрутизатора,
  • маска подсети / сети - обычно содержится в источнике и / или параметры сети маршрутизатора.

Установите и настройте tftp на исходном хосте:

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

Установите, настройте и запустите bootp , также на источник хост:

Примечание: замените значения $ TARGET_MAC и т. д. соответствующими значениями, собранными на шаге 2 выше. Адрес $ TARGET_MAC должен быть с двоеточиями, например: 00: 00: 39: 2B: 54: B5 и $ SUBNET_MASK с точками, например 255.255.255.0 .

Перезагрузите целевой компьютер, при этом убедитесь, что функция Сетевая загрузка включена (нажмите F12 , если необходимо, либо ничего, либо что еще требуется для BIOS) .

Текстовый интерактивный установщик Ubuntu 18.04 должен запуститься на целевой машине. Продолжить, как если бы установка Ubuntu была обычным способом.

Дополнительно: в целях безопасности после завершения установки убедитесь, что чтобы переключить функцию Network Boot в BIOS цели обратно на отключенную.

Уже довольно давно, мной была написана статья о сетевой установке 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.04x86, для чего нам понадобится установочный диск соответствующей разрядности. Нам его необходим скачать и примонтировать, для того чтобы извлечь файлы загрузчика инасталятора системы.
Т.к. файл сетевого загрузчика у нас лежат в директории директории /var/lib/tftpboot/ откуда они и подтягиваются TFTP сервером, то в ней нам нужно создать директорию Ubuntu, чтобы в нее сложить файлы с дисков установки, сделаем это:

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

После завершения закачки 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 boot menu


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

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

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

Спасибо за обновление, как раз доработал сетевую загрузку тестовых программ и включил этот вариант инсталяции Ubuntu.
Плюс в том что в таком варианте можно инсталлировать и Kubuntu, Lubuntu и т д, пакеты догружаются из сети.
Я продвинулся дальше и настроил запуск Live-CD для Ubuntu. Для этого пришлось использовать доступную папку на сервере где установлен антивирус (центр управления, доступ через веб-сервер), что бы не поднимать отдельный.
Этим можно дополнить статью или описать процес в отдельной. Здравствуйте.
Лучше сделать в виде отдельной статьи, чтобы было ее проще найти, а я сделаю ссылку из основной статьи. Было бы интересно узнать как вам удалась живая загрузка убунты. Пытаюсь сделать, загрузка идет и попадаю в busybox. Нифига-себе вы там накрутили, только не понятно зачем такие сложности?! Данная схема проверенная и работает как часы, а вот с NFS иногда возникают проблемы, хоть это и промышленный стандарт, но все таки…
Думаю, ваше решение имеет право на жизнь, но оно, реально, сложное. Начал установку все вроде ок, но потом выдало проблема с зеркалом архива ubuntu. Инет есть, машину пингую что может быть не так? В логах я не силен но вроде все норм могу скинуть если вы не против помочь Имеет значение что написано в зеркале архива? Файлы брал из Lubuntu 14-04 Используйте стандартные репозитории которые идут с дистрибутивом, не городите велосипед иначе чтение документации похоронит все изучение системы. еще есть подозрение что локалка есть, а инета нет, хотя проверял на другой шине с под винды все норм dhcp дает в нет ломится. Имеет ли смысл еще настроить DNS сервер? А как система узнает адрес сервера-к которому подключаться?!
ДНС нужен!

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

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

для работы PXE dns сервер не нужен, если нужна статья по настройке, используйте поиск по сайту. Непосредственно для установки дистрребьютива он нужен или нет? чтобы скачать файлы из интернета, естественно нужен.
ставьте dnsmasq, bind слишком большой

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

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

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

IBM ThinkCentre S51 8171

В качестве сервера загрузки решено было использовать домашний сервер под управлением 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".

IBM ThinkCentre S51 8171 Boot Menu

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

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

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