Настройка pxe сервера ubuntu
У PXE есть одна очень полезная особенность, все что в нем настроено довольно трудно потерять т.к. все это хранится на сервере, а не на съемном носителе, которые имеют обыкновение теряться, вороваться, забываться в приводах DVD/дома, даваться попользоваться и «с концами», так что, вероятность что у вас возьмут попользоваться и «заиграют» стремится к нулю, ну разве что вместе с сервером… Подключив устройство имеющее возможность загрузки PXE, можно делать довольно много полезных вещей, а именно: производить диагностику оборудования, развертывать операционные системы, загрузить Live систему и т.п. на что хватит знаний и фантазии.
Для этого нам понадобится настроить DHCP сервер и TFTP сервер.
Ранее я уже писал о том как настроить сервер для установки Ubuntu по локальной сети, крайне рекомендую для ознакомления, основные моменты перекочевали из нее.
Что мы получим на выходе?!
А получим меню загрузки с возможностью выбора приложения которое мы будем загружать на клиентскую машину, а также действия, по умолчанию, которые будут произведены системой-если не поступит команд от пользователей.
Для работы нам понадобится:
1) Установленный Ubuntu server
2) Настроенный DHCP сервер, пример настройки можно взять в статье: Настройка DHCP сервера под управлением Ubuntu
3) Диск или ISO-образ, установочного дистрибутива Ubuntu — разрядность значения не имеет, а вот версию лучше брать посвежее.
Все остальное мы установим по ходу дела… Я не буду останавливаться на настройках DHCP, предполагая что он у вас настроен, согласно статье, ссылка на которую представлена в требованиях к системе.
Установка tftp сервера
Установим необходимый пакет:
Поднимаем права до root:
Установим необходимый пакет
Теперь все файлы которые относятся к нашему tfpt серверу, должны находиться в директории /var/lib/tftpboot/, все пути указываются относительно нее.
Переходим к созданию меню загрузки
Первым делом, нам нужно добыть зам загрузчик, как это сделать?! Его можно найти на любом диске с ubuntu, в остальных дистрибутивах Linux, расположение почти всегда такое же. Нам потребуется установочный ISO образ или диск вставленный в привод DVD, в котором мы идем в следующею директорию:
Если установочный диск х86 архитектуры:
Нас интересует файл pxelinux.0 это и есть загрузчик, забираем его и копируем в директорию:
Тогда путь к нему выглядит:
Также, нам понадобится, само boot-меню, которое можно взять на том же диске, в директории boot-sccreens нас интересует файл с именем vesamenu.c32
Копируем его в туже директорию что и загрузчик чтобы путь выглядел:
Настраиваем содержимое PXE меню
В качестве примера, мы сделаем меню загрузки, состоящее из 2х пунктов.
Пункт первый: Загрузка с локального жесткого диска. Этот пункт будет пунктом по умолчанию, если пользователь загрузил ПК по PXE и в течении 15 сек. не выполнил никаких действий, то система автоматически загрузится с локального диска.
Пункт второй: назовем его Testing Внутри данного меню будет находиться, пункт с возможностью загрузки Memtest x86+. Данная программа всегда будет полезна в диагностике проблем рабочих станций и серверов, в общем, вещь нужная, в хозяйстве пригодится всем…
Для начала, нам нужно создать директорию для конфигурационных файлов с именем pxelinux.cfg — имя критично для работы!
Теперь создадим конфигурационный файл с параметрами пунктов меню, с именем default
Со следующим содержимым:
Наиболее наблюдательные, заметили что в предыдущем файле у нас появилась запись которая касается другого файла testing.menu, в нем у нас будут находиться параметры настройки пункта Testing
Создадим данный файл:
Со следующим содержимым:
Первый пункт меню, будет отвечать за возврат в предыдущее меню, а второй за загрузку Memtest86+ v4.20
Все ничего, но мы не создали директорию где хранится файл Memtest, это мы сейчас исправим, давайте создадим соответствующую директорию.
Сделаем это:
Нам осталось добавить исполняемый файл самого Memtest86+, его можно найти на установочном диске, в директории /install/ нас интересует файл mt86plus нам него необходимо скопировать в директорию memtest, чтобы путь к нему выглядел:
На этом мы закончили с tftp сервером, нам осталось немного допилить DHCP сервер.
Настриваем DHCP сервер
Этот пункт, настройкой можно назвать только с натяжкой, если вы настроили DHCP сервер по статье, то вам необходимо добавить только одну запись в:
Находим пункт с настройками пула IP адресов, который имеет вид:
И в него добавляем запись указывающую на наш PXE загрузчик:
Путь к файлу указан относительно директории /var/lib/tftpboot/ т.е. она считается корневой директорией, о чем я писал ранее…
Вся запись имеет вид:
Сохраняем изменения и перезагружаем DHCP сервер:
Теперь мы можем подключить к нашей локальной сети устройство которое поддерживает загрузку PXE и в котором эта функция включена( смотрите документацию к своему оборудованию) или подключить виртуальную машину, а адаптометром подключенным в режиме моста и без загрузочного носителя.
Если вы все сделали правильно, то меню будет иметь следующий вид:
А если зайти в меню Testing:
Если выбрать пункт с Memtest то запустится тест памяти.
Другие пункты меню добавляются соответствующим образом.
Представим ситуацию, что вам требуется предоставить доступ к одному из меню, ограниченному кругу лиц, например там у вас лежит дистрибутив, который стоит кучу денег. С этой целью на пункт меню можно установить пароль, как это сделать?!
Представим ситуацию, вам нужно установить пароль (например: password) на Memory Test, делается это просто
Нам необходимо добавить запись:
MENU PASSWD password
Тогда файл принимает вид:
Защита конечно, так себе, но от обычных пользователей может помочь.
Тогда при попытке запуска выйдет окно:
если ввести правильный пароль, то запустится Memtest.
Таким способом можно скрывать целые меню или блокировать доступ к отдельным его пунктам.
В случае внесения изменения в эти конфигурационные файлы, DHCP сервер перезапускать нет необходимости, достаточно перезагрузить клиентский ПК если он загрузился по PXE.
По поводу скорости работы tftp, скорость работы не высока, и если вы решите перекачивать большие объемы информации, сторайтесь использовать для этого WEB или FTP сервер, готовьтесь затратить на это некоторое количество времени. Если есть необходимость загрузить какой-то дистрибутив, то лучше загрузить ОС небольшого размера, примером может служить Windows PE, ну или миниатюрный дистрибутив Linux.
На этом я пожалуй и закончу…
В этой статье будет рассказано, как запилить сервер, который будет при включении грузиться по PXE, потом монтировать корневую файловую систему по iSCSI и спокойно жить дальше.
Что необходимо?
Для загрузки системы нужны три компонента: ядро, initramfs и корневая файловая система.
Ядро и initramfs мы передадим по TFTP, а корневую файловую систему — по iSCSI.
iSCSI-таргеты
iSCSI — реализация протокола SCSI поверх TCP. Сам протокол SCSI весьма универсален, теоретически с его помощью можно подключить устройство любого типа. Тем не менее, в большинстве случаев SCSI используется для доступа к тем или иным устройствам хранения данных (жёсткие диски, приводы CD и DVD и т. п.). Для примера Mass Storage Device, использующийся в USB-устройствах, является реализацией SCSI поверх USB. Поэтому, кстати, флешки в Linux опознаются как /dev/sdX-устройства. Использующаяся на серверах шина SAS также является реализацией SCSI (собственно, это видно из названия — Serial Attached SCSI).В iSCSI различаются понятия таргета (target, целевое устройство, осуществляет приём и выполнение запросов) и инициатора (initiator, порождает запросы). В более привычных терминах таргет — это сервер, а инициатор — клиент.
Таргеты и инициаторы бывают разных видов. iSCSI-таргетом может выступать обычный компьютер, сервер или система хранения данных. Инициаторами обычно выступают сетевые карты (в их ROM бывает прошит необходимый код) или software-реализации.
Вариант, предлагаемый ниже, состоит из двух серверов: таргета, который дополнительно к iSCSI-таргету содержит на себе DHCP и tftp-сервер, необходимые для начальной загрузки и инициатора, у которого дисков нет, а есть только сетевая карта.
На таргете желательно использовать LVM для нарезания томов, но можно использовать и обычные файлы.
1. Образ целевой системы
Создадим том размером 16 ГиБ, который будет отдаваться по iSCSI (моя VolumeGroup называется vg00, том будет называться client):
1.1. Разделы и файловые системы
Я люблю и уважаю LVM за его гибкость и удобство в работе, поэтому использую сетап, не требующий таблицы разделов на образе client. Вместо этого сразу на client создаётся еще одна VolumeGroup, которая потом режется на lv-тома.
Создадим файловую систему и разметим раздел под swap:
1.2 Сам образ системы
Примонтируем файловую систему и развернем туда с помощью debootstrap минимальный образ:
Приведем fstab к нужному виду:
Чтобы не оказаться в глупом положении, нужно изменить пароль в новой системе.
Отмонтируем rootfs и деактивируем группу томов, чтобы случайно ее не задеть:
Образ системы готов! Загрузчик ему не нужен, ядро будет запускаться с помощью pxelinux.
2. iSCSI-таргет
Установим userspace-утилиты для управления таргетом:
И запустим утилиту управления таргетом — targetcli:
2.1. Backstore
Находясь в консоли targetcli необходимо выполнить следующие команды:
Таким образом будет создан backstore для нашего тома vg00-client.
2.2. iSCSI
Назначим предварительно созданный backstore этому таргету:
Назначим таргету интерфейс для работы (без указания параметров назначатся все активные интерфейсы):
Настроим права доступа (документация по правам доступа доступна на официальном сайте:
2.3. Сохранение настроек
Несмотря на то, что действия в targetcli выполняются немедленно, они не сохраняются и после перезагрузки все таргеты не вернутся. В этом поведение LIO похоже на поведение любых других ядерных служб (iptables, ebtables, ipvsadm и т. п.). При сохранении настроек targetcli компилирует всю конфигурацию в shell-скрипт, который просто скармливает нужные данные в configFS.
Сохраним все настройки:
Таргет готов! Перейдем к настройке DHCP + TFTP.
3. DHCP-сервер
Предполагаем следующую конфигурацию:
Серверы живут в сети 10.0.0.0/24, таргет живет на 10.0.0.2, клиент получает по DHCP адрес 10.0.0.5.
Мануалов в сети море, поэтому коротко:
4. TFTP-сервер
Опять же, мануалов в сети море.
5. Syslinux
Копируем pxelinux.0 в /var/lib/tftpboot:
Также нам необходим образ ядра (можно взять с хост-системы). Сейчас у меня используется ядро от Ubuntu версии 3.2.0.37:
Дальше нужно собрать правильный initramfs. Для этого нам нужен модуль iSCSI:
Pxelinux будет искать файл с конфигурацией в директории pxelinux.cfg относительно корня tftp-сервера. Создадим ему конфигурацию:
Вместо XX необходимо подставить MAC-адрес сетевой карты client'а, записанный в нижнем регистре через минусы, а не через двоеточия.
Логин и пароль здесь необходимо использовать те же, что были указаны при настройке прав доступа к таргету.
Настройка Syslinux закончена. Теперь можно насладиться загрузкой :)
Мой лог загрузки выглядит примерно так:
Итоги:
Можно вполне использовать iSCSI для загрузки серверов, не имеющих своих дисков (актуально для виртуализации, самопильных систем хранения данных, серверов, которые не должны долго жить и т.п.).
Есть другой вариант, использовать инициатор, встроенный в сетевую карту. Такой подход иногда бывает невозможен по различным причинам (самая банальная — отсутствие необходимого функционала в самой карточке), а также обладает несколько меньшей гибкостью.
Присутствует security-hole, поскольку /proc/cmdline доступен любому желающему в системе и этот любой желающий может получить доступ к экспортированному тому. Поэтому можно на таргете закрыть фаерволом все адреса, кроме необходимого.
Описанная схема — по большей части драфт и основа для инфраструктуры сетевой загрузки.
Долой флешки, dvd-ромы — уже все устройства давно поддерживают удаленную установку по сети.
Вот на этой ноте, точнее мне как-то понадобилось дома вместо ранее использовавшихся ригов для майнига взгромоздить не Windows , а ось Ubuntu 18.04 Desktop но тут я столкнулся, то нет USB носителя, то нет привода, а если внешний привод есть, но нет болванок. Но во всех компьютерах (по крайней мере что есть у меня дома и на работе) имеется поддержка загрузки системы по сети.
Раз у меня есть мое хранилище HP MicroServer Gen8 то пусть в дополнении к сервисам которые обслуживают мои нужды будет еще один — это PXE сервис для удаленной инсталляции.
Но прежде чем разворачивать сервис на одной из VM моего хранилища все действия должны быть отрепетированы, а значит мне на помощь приходит Ubuntu 18.04 Server развернутая внутри моего полигона Virtualbox.
$ apt-cache search tftpd-hpa
tftpd-hpa - HPA's tftp server
Устанавливаю в систему пакет tftpd-hpa:
$ sudo apt-get install tftpd-hpa -y
$ sudo mkdir /media/pxeboot
$ sudo chmod -R 777 /media/pxeboot/
$ sudo chown -R nobody:nogroup /media/pxeboot/
$ sudo cp /etc/default/tftpd-hpa /etc/default/tftpd-hpa.backup
Создаю конфигурационный файл для работы сервиса tftpd-hpa:
$ sudo nano /etc/default/tftpd-hpa
TFTP_OPTIONS="--secure --create --verbose"
Перезапускаю сервис tftpd-hpa:
$ sudo service tftpd-hpa restart && sudo service tftpd-hpa status | head -n 5
● tftpd-hpa.service - LSB: HPA's tftp server
Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
Process: 4208 ExecStop=/etc/init.d/tftpd-hpa stop (code=exited, status=0/SUCCESS)
Проверяю, что сервис tftp ожидает подключение:
$ ss -l4 | grep tftp
udp UNCONN 0 0 0.0.0.0:tftp 0.0.0.0:*
Копирую с основной системы на данную образ Ubuntu 18.04 Server amd64
$ scp /media/ekzorchik/iso/ubuntu-18.04.1-server-amd64.iso [email protected]:/home/ekzorchik
Монтирую образ Ubuntu 18.04 Server который был передан с основной системы в каталог /mnt:
$ sudo mount -o loop ubuntu-18.04.1-server-amd64.iso /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
Копирую файлы netboot в каталог откуда будет стартовать загрузка системы при текущем настраиваемом PXE сервиса на данной системе:
$ sudo cp -fr /mnt/install/netboot/* /media/pxeboot/
ldlinux.c32 pxelinux.0 pxelinux.cfg ubuntu-installer version.info
$ sudo apt-get install apache2 -y
$ sudo mkdir -p /var/www/html/ubuntu/server/preseed
$ sudo nano /var/www/html/ubuntu/server/preseed/oem.seed
d-i auto-install/enable boolean true
d-i debconf/priority string critical
d-i pkgsel/update-policy select none
d-i debian-installer/locale string en_US
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i console-setup/ask_detect boolean false
d-i netcfg/get_hostname string srv-bionic
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Moscow
d-i mirror/suite string bionic
d-i passwd/user-fullname string Ubuntu 18.04 test user
d-i passwd/username string ekzorchik
d-i passwd/user-password password 712mbddr@
d-i passwd/user-password-again password 712mbddr@
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false
d-i live-installer/enable boolean false
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i tasksel/first multiselect standard
d-i preseed/late_command string apt-install tmux mercurial vim build-essential multipath-tools lsscsi lvm2 htop net-tools openssh-server
d-i finish-install/reboot_in_progress no
Создаю файл где будет указано поведение загрузки системы:
$ sudo nano /media/pxeboot/pxelinux.cfg/default
label Ubuntu 18.04 Server
label Boot from first hard disk
$ sudo chown -R nobody:nogroup /media/pxeboot/
$ sudo chown -R www-data:www-data /var/www/html/
Теперь нужно на сервисе DHCP указать порядок загрузки при обращении широковещательным запросом кто является сервисом удаленной загрузки. В моем случае сервис DHCP развернут на базе оборудования Mikrotik RB2011UiAS-2HnD
$ ssh -l ekzorchik 172.33.33.100
[ekzorchik@router] > ip dhcp-server network print
[ekzorchik@router] > ip dhcp-server network set numbers=0 next-server=172.33.33.25 boot-file-name=pxelinux.0
[ekzorchik@router] > quit
Это сейчас все кажется простым в настройке, а до этого я думал что нужна вот такая запись и что я делал чтобы понять почему она не работает:
[ekzorchik@router] > ip dhcp-server option add code=66 name=tftp66 value="'172.33.33.25'"
Но в момент когда пытался по сети запустить установку Ubuntu системы получал ошибку: PXE-E32: TFTP open timeout
Включив расширенное логирование:
winbox —host:port - user&pass — System — Logging — Add
увидел в логах на Mikrotik запись: _dhcp: Unknown(66) = AC-21-21-19
и тут я задумался, ведь запись 66 я использовал когда настраивал загрузку телефонов (Cisco CP-7925G), а тут у меня другое.
В роли подопытной системы, чтобы проверить что загрузка по сети отработает я использую Virtualbox по аналогии, как я создавал систему когда тестировал самосборный образ для Destkop & Server. В свойствах виртуальной машины выставляю что первым загрузку следует производить по сети, а уже далее «Оптический диск», «Диск».
Нажимаю ОК окна настройки виртуальной машины UT и запускаю загрузку и после того, как VM обратилась широковещательным запросом со шлюза получила направление на развернутую систему где поднят PXE сервис. И вот меня встречает мое окно с именованием выбора загрузки Ubuntu 18.04 Server:
Install → это обычная загрузка в интерактивном режиме
На заметку: Важно чтобы в системы которая загружается с PXE сервиса был доступ в интернет.
По окончании я получаю установленную ось Ubuntu 18.04 Server amd64 выполненную через PXE сервис при загрузке по сети. В следующей заметке я разберу, как объединить/настроить загрузку обоих систем ( Desktop & Server ).
Если перезагрузиться и не убрать загрузку по сети первым пунктом то опять выйду на меню выбора, либо опять запустить установку, но система установлена — как же быть, а загрузиться в диска вот для этого я добавил меню « label Boot from first hard disk » выбираю его и нажимаю клавишу Enter и система ожидает авторизации:
Проверяю, а установлены дополнительные пакеты которые указаны у меня в oem.seed:
$ dpkg -l | grep "tmux\|mercurial\|htop" | awk ''
ii htop
ii mercurial
ii mercurial-common
ii tmux
Ответ да они успешно установлены.
Данная заметка это не сколько построенная заметка в лабораторный условиях, но и также проверенная на физическом компьютере.
На этом я прощаюсь, заметка по разворачиванию PXE сервиса на базе Ubuntu 18.04 выполнена и теперь ее можно перенести на мое хранилище HP MicroServer Gen8 где развернуты мои боевые сервисы, такие как: Asterisk, DokuWiki, Mercurial(WEB), OwnCloud, NAS. С уважением, автор Олло Александр aka ekzorchik.
Хочу написать эту очень полезную заметку, которая может пригодиться как и начинающему системному администратору, так и обычному пользователю, который хочет автоматизировать процесс установки операционных систем. Сейчас я наведу пример установки по сети ОС семейства Linux. Но, в ближайшее время, добавлю установку Windows подобных систем.
Установка операционной системы по сети (по PXE) понадобиться в случае:
- неработоспособности USB портов
- неработоспособности/отсутствии DVD/CD приводов
- работе с удаленными серверами (в качестве сетевого live cd)
- и т.п.
В данном случаи, в качестве хостовой ОС я взял Ubuntu 12.04.2 LTS.
Для детального изучения и понимания, можете ознакомиться с PXE и узнаете что к чему.
Теперь, будем считать, что ознакомление прошло успешно, и Вы узнали, что PXE это Preboot eXecution Environment и это весьма нужная и полезная штука которая позволяет установить ОС при использовании сетевой карты (по сети).
Теперь разберем как работает PXE подробнее:
Следовательно, нам нужно настроить на Ubuntu 12.04 PXE сервер с DHCP, TFTP и образами нужных ОС.
Настройка TFTP-сервера.
Устанавливаем нужные пакеты
Создаем папку для конфигов и заливаем в нее boot-файлы.
Замечание! Загрузчики есть разные (gPXE, SYSLINUX, etc.), я же использовал syslinux, который можно скачать здесь.
Файл конфигураций TFTP должен иметь такой вид.
Настройка DHCP-сервера.
Устанавливаем нужные пакеты
Теперь нужно прописать конфиг. Он должен быть такого вида.
Настройка меню и гостевой ОС
Теперь нужно настроить меню, для выбора операционной системы и загрузить образы нужных ОС. Внешний вид и пункты меню описаны в файле (в данном случае) /tftpboot/pxelinux.cfg/default.
Теперь осталось закачать все образы Debian и Centos, которые мы перечислили.
Все настройки сделано. Дерево каталогов должно иметь следующий вид.
Теперь тестим проделанное. Включаем комп-жертву, которая находить в той же сети, что и PXE сервер (для примера, я взял виртуальную машину на Vbox) и сразу при загрузке жмем F12.
Как видим, мы попадем в меню, где нам предлагают выбрать тип загрузки. Выбираем LAN (т.е. нажимаем клавишу l).
Если Вы все правильно настроили должно выдать такое окно, с которого видно, что DHCP-сервер выдал ІР – 192.168.1.102 и шлюз. Это свидетельствует о том, что DHCP было настроено верно.
Если проблема решена и загрузилось меню, просто нужно выбрать нужную ОС и перейти к процессу установки.
Как установить виртуальную машину Ubuntu с помощью загрузочного сервера PXE?
Мне нужны все детали конфигурации и что нужно изменить в файлах конфигурации.
PXE (Preboot eXecution Environment, ярко выраженный пикси)
Как это устроено?
Это моё понимание!
-
Клиентский компьютер включен. BIOS сканирует устройства. Затем следует попытаться загрузить загрузчик с требуемого устройства, как указано в разделе «Порядок / последовательность загрузки» . Он загружает PXE из ПЗУ сетевой карты.
PXE (клиентская сторона) передает запрос на IP. Ответ DHCP-сервера с необходимой информацией: IP, IP-адрес следующего сервера (IP-адрес TFTP-сервера), pxelinux.0 (имя файла загрузчика PXE), . и т. Д.
PXE (на стороне клиента) запрашивает pxelinux.0 файл с TFTP-сервера, загружает его в оперативную память и передает управление pxelinux.0 .
pxelinux.0 получает файл конфигурации загрузки с TFTP-сервера с именем как:
(если он не существует, он пытается со следующим)
- UUID
- MAC
- IP в Capital Hex
- Часть IP
- Удаляет в default файл
Выбор пользователя или запись по умолчанию. pxelinux.0 запрашивает соответствующее ядро и RAMDisk с TFTP-сервера и загружает их в RAM.
Затем передает параметры загрузки и управление загруженному ядру.
Ядро загружает оставшиеся части с TFTP-сервера или любого другого протокольного сервера в зависимости от его функций / свойств.
Настройка сервера
Существует много способов настройки PXE-сервера, это один из них.
Эти инструкции были протестированы на Ubuntu 9.10 и Ubuntu 10.04 на реальной машине. Они должны быть действительны только с некоторыми изменениями. (Обновлен и протестирован для Ubuntu 14.04 на VirtualBox, проверьте редактирование версий для старых выпусков)
Моей целью был PartedMagic 4.5 , он должен быть похож на Ubuntu или любой дистрибутив Linux.
Установите пакеты DHCP и TFTP
Edit /etc/default/isc-dhcp-server , интерфейс Ethernet для службы DHCP
Редактировать /etc/dhcp/dhcpd.conf или /etc/ltsp/dhcpd.conf он существует, настройка службы DHCP
Конфигурации PXE: filename & next-server
Установите статический IP-адрес для eth0 , 192.168.10.123 в моем случае, сетевого менеджера для версии для настольных компьютеров или /etc/network/interfaces для версии для серверов.
Повторно инициализируйте сетевой интерфейс:
Включить службу загрузки для inetd
Настройка загрузочных файлов PXE
Разархивируйте pmagic-pxe-4.5.zip . Если pxelinux.0 нет, получить его из sysliux-common пакета , установленного на /usr/lib/syslinux/pxelinux.0 , Syslinux Project или Ubuntu образ сетевой .
Поместите их в аналогичную структуру.
Отредактируйте /var/lib/tftpboot/pxelinux.cfg/default , если необходимо, пример пути: pmagic/bzimage & pmagic/initramfs
Настройте правильные разрешения
Настройка клиента
Измените порядок загрузки BIOS за один раз, используя F9 или F12 , для постоянной настройки из конфигурации BIOS DEL , F2 или F12 . (В зависимости от марки машины)
Перейти к началу страницы: [PXE | NIC | LAN | Ethernet | Network] .
Примечания
inetutils-inetd или xinetd могут быть использованы вместо openbsd-inetd , некоторые inetd шаги отличаются.
Корневой каталог TFTP может быть изменен с /etc/default/tftpd-hpa . Не забудьте обновить /etc/inetd.conf тоже.
Многие дистрибутивы поддерживают загрузку RAMDisk через множество протоколов: SSH (SFTP), SMB, NFS . Пример Ubuntu с поддержкой NFS.
Некоторые старые сетевые карты не поддерживают PXE, можно использовать iPXE ( например, gPXE или Etherboot ) на дискете, USB-накопителе, жестком диске (в /boot разделе) или даже в виде флэш-памяти на ПЗУ (поддерживается только несколько сетевых карт ). GRUB2 имеет модуль для поддержки загрузки с использованием PXE.
Большинство пользователей ищут загрузку живого изображения через PXE. Этот вопрос был только для настройки PXE-сервера. Смотрите Ubuntu Wiki: Установка - LocalNet
Меню PXE можно настроить, лучший шаблон для изучения - Ubuntu NetBoot . Смотрите Pxeboot Несколько изображений
memdisk может использоваться для прямой загрузки образов ISO или гибких дисков через PXE. syslinux-common Пакет имеет копию. Клиент должен иметь достаточно ОЗУ для хранения образа плюс часть для запуска загруженной ОС.
Пакеты PartedMagic были удалены с официального сайта после того, как оригинальный разработчик решил сделать его коммерческим, некоторые выпуски можно было найти через торрент-сеть. Мой ответ здесь - резюме первой установки PXE, которая работала для меня. Ubuntu Netboot Image должен работать с теми же инструкциями.
Читайте также: