Что такое сетевая загрузка (PXE) и как ей можно пользоваться. Мультизагрузочный PXE-реаниматор Pxe грузим все мультизагрузка по локальной сети
Что такое сетевая загрузка (PXE) и как ей можно пользоваться. Мультизагрузочный PXE-реаниматор Pxe грузим все мультизагрузка по локальной сети
Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!
Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.
О том как подготовить Windows к установке с PXE мы писали ранее.
Различие с данной инсталляцией составляет лишь то, что здесь мы можем установить и Windows 2008R2 и Windows 2012R2(впрочем и Windows 7/8 тоже, нужно только подготовить файлы дистрибутива и winpe соответствующим образом). После загрузки winpe мы монтируем папку /srv/tftp/images/ , где содержаться файлы для установки ОС от Microsoft:
ls -l /srv/tftp/images/ total 8 drwxr-xr-x 6 root root 4096 Фев 17 22:19 w2k12r2 drwxr-xr-x 7 tftp tftp 4096 Фев 17 19:05 w2k8r2
и запускаем нужный инсталятор.
Для автоматизации, через startnet.cmd, я набросал вот такое меню:
Теперь осталось разобраться с VMware.
Как вы заметили, конфиг для установки гипервизоров несколько отличается от остальных — именно тут нам и понадобится HTTP сервер.
В /var/www создадим папки vmw5.5, vmw5.0, а в папках сделаем симлинки на конфиг
# cd /var/www # mkdir vmw5.5 # cd vmw5.5/ # ln -s /srv/tftp/vmw/5.5/ks.cfg # mkdir ../vmw5.0 # cd ../vmw5.0/ # ln -s /srv/tftp/vmw/5.0/ks.cfg
О том как подготовить, например, Debian к установке с PXE написано , но я на этом останавливаться не стану.
Как реализовать загрузку PXE из адаптеров USB-C и Thunderbolt Ethernet
Возможно, эта статья была переведена автоматически. Если вы хотите поделиться своим мнением о ее качестве, используйте форму обратной связи в нижней части страницы.
Симптомы
Предзагрузочное исполнение (Pre-Boot Execution, PXE) дает возможность системе выполнить загрузку с сервера в сети перед загрузкой операционной системы с локального жесткого диска. В этой статье описаны основные положения, необходимые для эффективной работы в этом режиме.
Загрузка PXE
При загрузке PXE может потребоваться включить несколько опций в BIOS (рис. 1).
- Установите для параметра Fastboot (Быстрая загрузка) значение Thorough (Полная), чтобы активировать загрузку UEFI PXE.
- Для Windows 7: необходимо установить флажки «Enable Legacy Option ROM» (Включить устаревшую версию ROM) и «Enable UEFI Network Stack» (Активировать сетевой стек UEFI).
- Для Windows 10: следует отключить устаревшую версию ROM. При необходимости можно включить функцию Secure Boot (Безопасная загрузка).
Рис. 1. Включение опций
- При использовании адаптера USB-C установите все флажки для поддержки загрузки Thunderbolt в BIOS (рис. 2).
Рис. 2. Включение поддержки загрузки Thunderbolt
- Сервер должен поддерживать загрузку PXE UEFI (в большинстве случаев требуется Windows Server 2012).
- Выйдите из BIOS и выберите UEFI PXE Boot IPv4.
Конфигурация WDS для UEFI должна содержать загрузочные образы x86 и x64 (рис. 3).
Рис. 3. Загрузочные образы x86 и x64
Примечание. Для правильной работы функции переопределения MAC-адреса в образе PE Windows 10 требуется драйвер контроллера семейства Realtek USB FE (проверена работоспособность версии 10.9.504.2016, можно использовать более новые версии, но они не проверены).
Рекомендации, допущения и предварительные требования
- Клиентская машина, на которой вы тестируете, поддерживает загрузку PXE и вы знаете, как ее включить.
- Это руководство было написано и протестировано с использованием Debian Squeeze, Ubuntu Server 9.10 и Linux Mint10. Поэтому предполагается, что у вас также есть система на основе Debian.
- У вас есть возможность посмотреть статью «Как настроит программный RAID» для «Простого файл-сервера» и «Как настроить всю сеть (802.3ad)» , поскольку скорость работы диска и пропускная способность для этого варианта сервера должны быть очень высокими. Настоятельно рекомендуется собирать такую сеть с использованием сервера с высокоотказоустойчивыми сетевыми и дисковыми подсистемами.
- Вы увидите, что в качестве редактора мы используем VIM, это только потому, что я привык к нему . Вы можете пользоваться любым другим редактором, который вам нравится.
Добавим способность загружать различные дисковые утилиты и тест памяти
- Memtest86+
- Clonezilla-live
- SystemRescueCD
- MHDD
А я расскажу зачем мы ставили еще и NFS сервер.
Как видно из конфига загрузки SystemRescueCD, необходимые этому LiveCD файлы он подтягивает монтируя каталог по протоколу NFS. Сервер уже установлен, остается только отредактировать /etc/exports и перезапустить серверный демон.
Предполагаю у вас возник резонный вопрос — «Что тут делает LiveCD, если для них есть отдельный пункт?»
SystemRescueCD содержит массу полезных программ для работы с диском(например таких как GParted и testdisk) и поэтому он доступен и здесь и в LiveCD.
Загрузочный носитель
Как бы не хотелось обойтись без загрузочного носителя, у нас это не получится. Потому что для полноценной загрузки нам сначала надо подключиться к беспроводной сети, а для этого нам надо будет иметь какой-то носитель, с которого загрузится базовая система, затем поднимется сеть, а уже после этого будет загружена конечная система. В качестве этого самого первичного носителя отлично подойдет маленькая по размеру и объему флэшка, потому что то, что там будет стоять, будет нужно для того, чтобы загрузить ядро с драйвером беспроводной карты, подключиться к беспроводной сети, получить адрес и загрузиться дальше по протоколу PXE.
Загрузка по сети pxe
Развиваем тему загрузки по сети
На этот раз будем переделывать Grub4Dos на загрузку через syslinux с использованием ipxe
Разбирать начальную установку сервера не станем, так как уже рассматривался в первой статье по сетевой загрузке
Установка тонких клиентов на примере загрузки Thinstation и Grub4Dos
Единственное что нам понадобится, это WEB сервер с модулем просмотра файлов. Любой. Я ставлю lighttpd
Теперь пойдем по порядку
- Качаем и собираем всё необходимое для syslinux
- Создаем структуру каталогов
- Загружаем iso файлы
- Загружаем ipxe
- Пишем и правим конфигурацию до необходимого результата
Возможно порядок будет меняться, это нормаль. Я достаточно много времени потратил, чтобы осознать процесс происходящего.
Syslinux
Создаем в корне tftp сервера папку syslinux
Здесь будет вся наша структура каталогов и прочее
Если кроме данной сборки ничего больше не используется, то можно не дробить на подкаталоги и делать без подпапки syslinux
В моем случае используются и другие загрузочные pxe файлы
В папке syslinux создаем подпапки:
pxelinux.cfg — папка конфигурации загрузчика
utils — папка утилит, можно и без нее кидать всё в корень
В папке pxelinux.cfg создаем файл пустой файл default
Это файл основной конфигурации меню syslinux
Качаем с сайта архив https://cdn.kernel.org/pub/linux/utils/boot/syslinux/
На момент установки syslinux-6.03.zip
Не похоже чтобы он развивался дальше так как версия от 06-Oct-2014 16:33
Распаковываем в любую временную папку и начинаем искать файлы
Файлы необходимы для базовой работы загрузки по сети. Они раскиданы по папкам. Самое простое, воспользоваться поиском.
Как видим файл с одинаковым именем встречается в нескольких подкаталогах.
Нас интересует простой метод, без efi. Берем по пути ./bios/com32/
Если что-то не докопировали, то при загрузке сервер сообщит об этом
Список файлов и структура которую мы должны получить в итоге:
В настройках DHCP сервера, для клиентов указываем файл загрузки
/syslinux/pxelinux.0
ISO IPXE
В корне папки syslinux создаем подпапки
iso — папка с загрузочными образами
ipxe — папка с файлами конфигурации и модулем загрузки ipxe
Закидываем образы для загрузки по сети. Это Live утилиты. С загрузкой больших Live линукс дистрибутивов есть сложности. Для начала рассматриваем что работает без нареканий
Подопытный ноутбук имеет частоту CPU 1533 и на борту 512 памяти
По большей части загрузка по сети делается для старого оборудования, которое не умеет грузиться с USB
В папку ipxe качаем готовый обра IPXE
Для загрузки образом есть несколько вариантов. Можно использовать nfs, можно использовать http.
Так как в начале я ставил lighttpd, то понятно что я использую http
Необходимо настроить путь к папке с образами, а именно путь до папки iso
Не забвайте про права на папки, так как lighttpd работает от имени пользователя www-data, то необходимо предоставить права на iso. В процессе настройки это может понадобиться не один раз
Конфигурация
Основная логика работы такая:
В пункте меню syslinux выбирается пункт, и в зависимости он грузится или сразу в память, или посредством ipxe по сети
Мелкие образы я гружу сразу в память через модуль memdisk. Так как её мало то большие образы уже не загрузить и выдается ошибка, поэтому вызывается файл конфигурации *.ipxe для http через модуль ipxe.lkrn
В папке ipxe создаем файл с параметрами загрузки образа. Под каждый образ, свой файл
Теперь правим основной файл конфигурации syslinux
Для фонового изображения необходимо положить его в папку /syslinux/pxelinux.cfg/back.jpg
Размер изображения должен совпадать с разрешением экрана в конфигурацци
В моем случае это 800×600
В итоге структура каталогов имеет вид:
При попытке загрузить обычный Linux Live дистрибутив, получаем ошибку initramfs
В принципе есть варианты решений http://ipxe.org/appnote/ubuntu_live
Мне удалось загрузить Slax
Сами параметры загрузки можно увидеть распаковав образ Slax iPXE с сайта https://www.slax.org/
Мы будем загружать простой образ Slax 32bit
В папке iso создадим папку slax, в ней подпапку ipxe
В папку ipxe необходимо положить загрузчик slax. Его можно взять из образа или скачать http://ftp.linux.cz/pub/linux/slax/Slax-9.x/ipxe/9.7.0/32bit/
Сам образ кладем в корне папке slax, здесь же будет и файл параметров конфигурации slax-32bit-9.7.0.ipxe
Проделываемые действия, без сокращений чтобы лучше понимать
В меню syslinux создадим пункт меню
Если получили ошибку доступа к файлам, то не забываем править права
IP адрес — это адрес сервер tftp, того где мы все это настраиваем
В итоге все получилось
Скрипты в GitHub
После этого у нас загрузившись через PXE начнется загрузка WinPE:
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.