PXE загрузочный сервер
Настроим загрузочный PXE сервер. Загрузить настроенную операционную систему на компьютере без жесткого диска всегда приятно. Использовать утилиты для диагностики и работы с жесткими дисками удобно и практично. Настройка на любом дистрибутиве Linux.
Введение
Давно хотел иметь в локальной сети загрузочный сервер PXE с помощью которого можно запускать на компьютерах не имеющих жесткого диска нужную мне операционную систему со всеми необходимыми настройками. Использование набора утилит для диагностики и работы с системой загружаемых по локальной сети тоже весьма удобная штука. В дистрибутиве Calculate Linux создание своего загрузочного образа делается просто, понятно и при хорошем знании позволяет творить чудеса.
После всех настроек мы получим возможность используя PXE загрузчик:
- Загружать операционную систему Calculate Linux,
- Проверить память программой Memtest86+,
- Проверить жесткие диски программами MHDD и Victoria,
- Работать с жесткими дисками программой Clonezilla.
Вся настройка производится на операционной система CentOS 7. Настроить можно и на любой другой системе, так как используемые пакеты присутствую во всех операционных системах Linux.
Подготовка системы для работы PXE сервера
Для загрузки по PXE в Bios подключаемого компьютера должна быть включена и настроена данная функция.
Установим необходимые пакеты без вопросов:
Настройка DHCP сервера
В локальной сети должен работать только один сервер DHCP.
Мои настройки будут производится на системе работающей в качестве шлюза локальной сети. Я не буду рассматривать настройку самого шлюза а лишь затрону моменты необходимые для нас.
Параметры сетевой карты которая смотрит во внутреннюю сеть:
Как видна моя внутренняя локальная сеть будет 192.168.1.0/24
Приведем конфигурационный файл DHCP сервера к следующему виду:
Добавляем в автозагрузку:
Использование DHCP сервера очень удобно, так как позволяет указывает различные параметры которые значительно упрощают жизнь при работе с локальной сетью.
Одно из таких возможностей, это закреплении ip адреса компьютера на основании мак адреса сетевой карты. Достаточно зная мак адрес нужного компьютера добавить в файл настройки DHCP строчки:
После перезагрузки службы параметры вступят в силу:
Настройка TFTP сервера
TFTP сервер используется главным образом для первоначальной загрузки без дисковых рабочих систем. Настроим конфигурационный файл:
Добавляем в автозагрузку:
Настройка NFS сервера
Приведем файл настройки к виду:
Например, я использую сервер nfs для размещения бэкапов виртуальных машин Proxmox.
В моем случае необходимо добавить строчку:
Где параметры имеют следующие значения:
- /sevo44/pve/backup — расшариваемая директория;
- 192.168.0.100 — IP адрес клиента с которого может быть подключение (можно указать 192.168.0.0/24 тогда будет возможность подключения для всей под сети);
- rw – доступ на чтение и запись (может принимать значение ro-только чтение);
- sync – синхронный режим доступа(может принимать обратное значение- async). sync (async) — указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных;
- no_root_squash – запрет подмены uid/gid для суперпользователя (root). По умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;
- all_squash / no_all_squash — установка подмены идентификатора от всех пользователей all_squash — подмена запросов от ВСЕХ пользователей (не только root) на анонимного uid/gid, либо на пользователя, заданного в параметре anonuid/anongid. Используется обычно для публичного экспорта директорий. no_all_squash — запрет подмены uid/gid для от всех пользователей.
Создание папки и назначение прав доступа осуществляется командами:
Для полноценной работы необходимо открыть доступ необходимым портам. Для FirewallD команды имеют вид:
Внимательно отнеситесь к указанию зоны! Более подробно можно прочитать в статье FirewallD базовая настройка.
Добавляем в автозагрузку:
Создание загрузочного меню PXE сервера
Скопируем необходимые файлы для работы меню:
Создадим папку для файлов меню загрузки:
Создание главного меню PXE сервера
В главном меню мы будем использовать варианты загрузки системы и переход на подменю с утилитами по паролю.
Создадим файл главного меню:
Файл фонового изображения меню должен быть размером 640х480 пикселей, в формате PNG или JPEG.
Создадим папку для фоновых изображений и папку для загрузочных live образов систем:
Загружаем необходимый iso образ любыми удобными вам способами и копируем содержимое в нужную папку.
При использовании образа с графической оболочкой KDE для стабильной работы необходимо использовать 4 G оперативной памяти!
Приведу лишь команды которые необходимы для монтирования и размонтирования образа iso:
Настройки параметров для загрузки разных операционных систем различаются.
В данной настройке по умолчанию грузится live образ. В случае если вам необходима по умолчанию загрузка с жесткого диска, то разместите необходимый пункт первым в меню.
Создание подменю для PXE сервера
Все утилиты я намеренно вывел в отдельное подменю и закрыл паролем. Так мне спокойней и пользователи не полезут туда куда им не надо.
Мой файл подменю для utilits выглядит так:
Скачать необходимый iso образ Clonezilla вы на сайт разработчика. На сайте вы можете найти всю необходимую информацию для настройки и работы с этой замечательной системой.
Моё меню с утилитами:
Видео
На видео показано как работает система Calculate Linux которую я настроил под свои нужды запускаемая с помощью PXE сервера.
Вывод
Имея под рукой такой сервер я без труда могу запустить на любом компьютере, с возможностью PXE загрузки, операционную систему и поработать в ней. Можно загрузить ClineZilla и произвести любые манипуляции с жесткими дисками. Конечно система с KDE тяжеловата и я обязательно настрою образ с XFCE, для работы на компьютерах со слабыми техническими параметрами.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Читая их я получаю информацию которая позволяет мне улучшить качество написания статей. Кроме того, оставляя комментарии вы помогаете сайту получить более высокий рейтинг у поисковых систем. Давайте общаться.
4 комментариев для статьи “ PXE загрузочный сервер ”
Я как-то игрался с rdp сервером но некоторые сложности заставили меня отказаться от этой идеи. А по этой схеме можно подключаться к нормально работающей системе в локальной сети. (Ну чтоб с другого компа например более слабого пользоваться всеми перимуществами более мощного стоящего в другой комнате)?
Сложности конечно есть. В моем варианте меня всё устраивает на все 100% ну а дальше покажет время. Linux очень динамично развивается и порой то с чем бился год назад в новых версиях настраивается на раз два. По такой схеме я и подключаюсь. Настроил RDP сервер на машине где установлена программа 1С:Предприятие 8.3. Один раз был случай что полетел жесткий диск на рабочем ноутбуке а мне надо было срочно сделать в ней один документ. Достал какой то древний компьютер без диска загрузился по PXE и подключившись по RDP сделал всё что мне было нужно.
По такой схеме у меня в одном офисе работали пользователи в терминале. Для них был собран дистрибутив с голыми иксами и автозапуском rdp клиента. Вариант вполне рабочий и функционировал более ли менее сносно. Но мелкие баги то с разрешением экрана, то с переключением раскладки, то с невозможностью подключаться после обновления rdp и смены версии протокола, привели к тому, что было решено использовать самые простые неттопы с windows starter. На них все работало без проблем и не требовало вообще никакого обслуживания.
Configuring PXE Network Boot Server on Ubuntu 18.04 LTS
In this article, I am going to show you how to configure PXE boot server on Ubuntu 18.04 LTS and boot into Ubuntu 18.04 LTS Desktop Live installer and install it on a computer over the network. So, let’s get started.
Network Topology:
Here, I will configure a PXE boot server in the network. The boot server will also work as a DHCP server. Then, I will boot a Linux Live OS (Ubuntu 18.04 LTS Desktop) on the PXE-client and install Ubuntu 18.04 LTS Desktop there over the network.
Configuring the Network:
I’ve configured the PXE boot server with a fixed IP address 192.168.50.1 using netplan. I’ve configured netplan as follows:
As you can see, the fixed IP address 192.168.50.1 is configured on ens38 interface.
Installing and Configuring dnsmasq:
In this article, dnsmasq will act as a DHCP server and TFTP server of the network.
dnsmasq is not installed on Ubuntu 18.04 by default. So, install dnsmasq with the following command:
dnsmasq should be installed.
Now, rename the original /etc/dnsmasq.conf file to /etc/dnsmasq.conf.backup as follows:
Now, create an empty dnsmasq.conf file with the following command:
Now, type in the following lines:
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-server,192.168.50.1
dhcp-option=option:dns-server,8.8.8.8
enable-tftp
tftp-root= / netboot / tftp
dhcp-boot=pxelinux.0,linuxhint-s20,192.168.50.1
pxe-prompt= «Press F8 for PXE Network boot.» , 2
pxe-service=x86PC, «Install OS via PXE» ,pxelinux
The final configuration file should look as follows. Once you’re done typing in everything, save the configuration file by pressing + x followed by y and .
Now, create the tftp-root directory /netboot/tftp with the following command:
Now, restart the dnsmasq server as follows:
Now, check whether dnsmasq service is running as follows:
As you can see, dnsmasq service is running. So, it’s configured correctly.
Installing and Configuring NFS Server:
Ubuntu 18.04 LTS Desktop uses casper to boot into Live DVD mode. casper supports network boot via NFS only. So, in order to boot Ubuntu 18.04 LTS and any Ubuntu derivatives via PXE, you need to have a fully functional NFS server accessible over the network.
To install NFS server, run the following command:
NFS server should be installed.
Now, create a new directory /netboot/nfs to share via NFS as follows:
Now, open the /etc/exports configuration file as follows:
Now, add the following line at the end of the file:
The final configuration file should look as follows. Once you’re done, save the file.
Now, make the share available with the following command:
Installing Required PXE Boot Files:
Now, you have to install all the required bootloader files for PXE booting. To do that, run the following command:
Now, you have to copy all the required files to the /netboot/tftp/ directory.
Copy the pxelinux.0 file to the /netboot/tftp directory as follows:
Now, copy ldlinux.c32, libcom32.c32, libutil.c32, vesamenu.c32 files to the /netboot/tftp directory as follows:
Now, create PXE bootloader configuration directory /netboot/tftp/pxelinux.cfg/ as follows:
Now, create PXE bootloader’s default configuration file /netboot/tftp/pxelinux.cfg/default as follows:
TFTP server is now able to serve all the required bootloader files over the network.
Preparing Ubuntu 18.04 LTS Desktop for PXE Boot:
Now, download the Ubuntu 18.04 LTS Live Desktop ISO image with the following command:
It will take a while to complete.
Once the ISO image file is downloaded, mount the ISO file on the /mnt directory as follows:
Now, create dedicated directories for Ubuntu 18.04 LTS /netboot/nfs/ubuntu1804/ and /netboot/tftp/ubuntu1804/ as follows:
Now, copy the contents of the ISO file to the NFS directory /netboot/nfs/ubuntu1804/ as follows:
The contents of the ISO file should be copied.
Now, copy the vmlinuz and initrd files to the /netboot/tftp/ubuntu1804/ directory as follows:
Now, change the permission of the /netboot directory as follows:
Now, you can unmount the Ubuntu 18.04 LTS ISO image and delete it if you want.
Adding PXE Boot Entry for Ubuntu 18.04 LTS:
Now, you have to add a boot entry for Ubuntu 18.04 LTS on the /netboot/tftp/pxelinux.cfg/default file.
Open the PXE boot menu configuration file /netboot/tftp/pxelinux.cfg/default for editing as follows:
Now, add the following lines to the file.
label install1
menu label ^Install Ubuntu 18.04 LTS Desktop
menu default
kernel ubuntu1804 / vmlinuz
append initrd =ubuntu1804 / initrd boot =casper netboot =nfs nfsroot =192.168.50.1: /
netboot / nfs / ubuntu1804 / splash toram —
The final configuration file should look as follows. Now, save the configuration file.
Installing Ubuntu 18.04 LTS via PXE:
Now, on the PXE client where you want to install Ubuntu 18.04 LTS over the network via PXE, go to the BIOS and network Network Boot.
When you see the following message, press on your keyboard.
Now, select Install OS via PXE and press .
You will only have one option. So, just press .
As you can see, Ubuntu 18.04 LTS splash screen is displayed. It’s loading. It may take a while depending on the speed of your network connection.
Ubuntu 18.04 LTS should be loaded. Now, you can install it on your client machine.
So, that’s how you configure PXE network boot server on Ubuntu 18.04 LTS. Thanks for reading this article.