PXE-загрузка Ubuntu с Windows Server 2008

TL;DR
PXE-загрузка позволяет запускать Ubuntu со статического образа, раздаваемого с Windows Server 2008 (через WDS + pxelinux + NFS). За несколько шагов вы установите WDS, скопируете бинарники pxelinux в каталог раздачи, настроите меню загрузки, расшарите NFS-папку и подготовите кастомный LiveCD (с помощью виртуальной машины и Remastersys). В статье — подробный план действий, чеклисты, сценарии тестирования и рекомендации по безопасности.
Быстрая навигация
- Почему это нужно
- Требования
- Создание и настройка WDS
- Установка pxelinux
- Конфигурация PXElinux
- Создание NFS-шары
- Создание и кастомизация Ubuntu Live CD
- Методология развёртывания и тесты
- Рекомендации по безопасности и отладке
Почему это нужно
PXE-загрузка упрощает и удешевляет управление парком компьютеров: тонкие клиенты или дисклесс-терминалы загружаются с единого образа. Это удобно для учебных классов, лабораторий, киосков, тестовой среды или диагностических станций. Раздача Ubuntu с Windows Server позволяет централизовать образы Windows и Linux в одной сети.
Важно: PXE опирается на DHCP и сетевую инфраструктуру; перед настройкой убедитесь, что сеть позволяет PXE-загрузку и что IP-адреса/маршрутизация настроены корректно.
Что потребуется
- Windows Server 2008 с ролью Windows Deployment Services (WDS)
- DHCP-сервер в сети (может быть на том же или другом сервере)
- Клиентские машины с поддержкой PXE (BIOS или UEFI с PXE)
- NFS-сервер (в этой инструкции предполагается, что NFS-инстанс размещён на том же Windows Server)
- Набор утилит syslinux (для pxelinux)
- Утилиты для извлечения ISO на сервере (например, PowerISO) и инструменты на клиенте (rpcbind, nfs-common)
- Виртуальная машина (VirtualBox) для создания или кастомизации образа Ubuntu
Ключевые понятия (1‑строчная глоссарная справка)
- PXE: сетевой протокол для загрузки исполняемых образов по сети через DHCP/TFTP.
- WDS: роль Windows Server для развертывания образов по сети.
- pxelinux: загрузчик из пакета syslinux, предоставляющий меню и возможности загрузки Linux через PXE.
- NFS: сетевой файловый протокол, используемый здесь для предоставления корневой файловой системы LiveCD.
Создание WDS-сервера
Установка WDS выполняется стандартными средствами Windows Server (Server Manager). При выборе компонентов отметьте оба сервиса: Deployment Server и Transport Server.
Важно: при настройке роли выберите опцию “Respond to all (known and unknown) client computers” (Отвечать всем клиентам), если у вас нет возможности заранее зарегистрировать все MAC-адреса в Active Directory. Иначе сервер будет отвергать неизвестные устройства.
Следуйте официальным инструкциям Microsoft для установки WDS на Windows Server 2008 и 2008 R2.
![Установка WDS и файловая структура сервера] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0014.jpg)
Примечание: далее мы будем добавлять Linux-образы через pxelinux, а не через механизм добавления образов WDS.
Установка pxelinux (syslinux)
- Скачайте и распакуйте syslinux (версия 5.01 или совместимая).
- Скопируйте необходимые файлы pxelinux в директорию раздачи WDS для нужной архитектуры (например, \RemoteInstall\Boot\x64 или \RemoteInstall\Boot\x86).
Требуемые файлы (пример для pxelinux 5.01):
- Core/pxelinux.0
- Com32/menu/vesamenu.c32
- Com32/lib/libcom32.c32
- Com32/elflink/ldlinux.c32
- Com32/libutil/libutil.c32
- Com32/chain/chain.c32
После копирования папка архитектуры должна содержать pxelinux.0 и вспомогательные C32-модули.
![Структура директорий с файлами pxelinux] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0026.jpg)
После переноса ненужные файлы syslinux можно удалить.
Конфигурация PXElinux
pxelinux позволяет строить гибкие меню загрузки и выбирать конфигурацию по MAC/IP/типу оборудования. Для базовой загрузки LiveCD выполните следующие шаги.
- В каталоге архитектуры создайте подпапку pxelinux.cfg.
- Рядом можно создать папку Images/ для хранения Linux-образов.
- В pxelinux.cfg создайте файл с именем default (без расширения).
Пример содержимого файла default (приведено как корректный Markdown код-блок, сохраните как обычный текст):
DEFAULT vesamenu.c32
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
# Timeout в единицах 1/10 секунды
TIMEOUT 30 # 3 секунды
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44 #20ffffff #00000000 none
MENU COLOR SCROLLBAR 30;44 #20ffffff #00000000 none
MENU COLOR TITLE 0 #ffffffff #00000000 none
MENU COLOR SEL 30;47 #40000000 #20ffffff
MENU TITLE Netboot Menu
# Пример пункта загрузки LiveCD
LABEL Ubuntu-LIVE
KERNEL Images/UbuntuLIVE/casper/vmlinuz # путь до ядра
APPEND boot=casper netboot=nfs nfsroot=:/RemoteInstall/Boot/x64/Images/UbuntuLIVE initrd=Images/UbuntuLIVE/casper/initrd.gz Важно: замените
Содержимое меню можно расширять вариантами (добавлять ядра, initrd, параметры ядра). Подробнее о синтаксисе pxelinux читайте в документации syslinux.
Подробнее и примеры: https://www.howtogeek.com/61263/how-to-network-boot-pxe-the-ubuntu-livecd/
![Пример конфигурационного файла pxelinux.cfg/default] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0034.jpg)
Создание NFS-шары на Windows Server
NFS-шара на Windows Server настраивается через роли и средства управления. Основные моменты:
- NTFS-права на папку должны предоставить группе Everyone (или соответствующей группе анонимных пользователей) права Read & Execute.
- Сам шар должен быть NFS, а не SMB/CIFS.
- Убедитесь, что доступ предоставлен для anonymous (анонимных) подключений, если вы используете NFS без аутентификации.
Примеры экранов управления правами и опций шары:
![Настройка NTFS-разрешений для NFS-шары] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0054.jpg)
![Подтверждение предоставления права всем пользователям] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0064.jpg)
![Выбор типа шары — NFS] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0084.jpg)
![Настройка анонимного доступа для NFS] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0104.jpg)
![Подтверждение прав анонимного пользователя] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0114.jpg)
Важно: после изменения прав и настроек NFS свойства могут распространяться по сети с задержкой — подождите несколько минут и протестируйте подключение.
Тест: смонтируйте NFS-шару с тестовой машины Linux и проверьте чтение файлов.
Создание и кастомизация Ubuntu Live CD
Если вам нужна простая Live-сборка — используйте официальный ISO Ubuntu. Для кастомных настроек проще подготовить виртуальную машину, настроить её под цель и затем экспортировать ISO.
Примерный рабочий процесс (VirtualBox):
- Установите VirtualBox.
- Создайте новую виртуальную машину: Type = Linux, Version = Ubuntu (или Ubuntu (64-bit)).
- Выделите минимум 1024 МБ оперативной памяти.
- Создайте динамический виртуальный диск. Размер: минимум 4 ГБ, рекомендуется 6–8 ГБ.
![Создание виртуальной машины в VirtualBox] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0134.gif)
![Выбор памяти] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0154.gif)
![Создание виртуального диска VDI] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0174.gif)
![Выбор размера диска — 4–8 ГБ рекомендуются] (https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2013/05/image0234.gif)
- Подключите ISO Ubuntu (скачайте с официального сайта) как CD/DVD и установите систему.
- Выполните все настройки: пользователи, автологин, удаление ненужных пакетов, автозапуск нужных сервисов, скрипты xrandr и т.п.
Примеры пользовательских действий, которые авторы делали на своих образах:
- Создать стандартного пользователя с автоматическим входом (если образ для общих пользователей).
- Удалить ненужные приложения: Firefox, LibreOffice, Gwibber, Thunderbird, empathy и игры (aptitude purge или Synaptic).
- Добавить автозапуск для приложений (через “Startup Applications”).
- Изменить разрешение экрана или отключать встроенный дисплей с помощью xrandr-скриптов.
Пример скрипта xrandr (сделайте файл исполняемым и добавьте в автозапуск):
#!/bin/bash
xrandr --output LVDS1 --off
xrandr --output VGA1 --primary --mode 1280x1024Примечание: имена выходов (LVDS1, VGA1) зависят от модели клиента; при наличии разных моделей потребуется логика определения в скрипте.
Упаковывание образа: Remastersys
Remastersys позволяет собрать ISO из настроенной установки.
Шаги установки и создания образа:
- Установите Synaptic: sudo apt-get install synaptic
- Добавьте GPG-ключ репозитория Remastersys:
sudo wget -O - http://www.remastersys.com/Ubuntu/remastersys.gpg.key | sudo apt-key add -- Добавьте в /etc/apt/sources.list строку (замените precise на вашу версию, если нужно):
deb http://www.remastersys.com/ubuntu precise main- Обновите списки, откройте Synaptic и установите пакеты remastersys и remastersys-gui.
- Запустите Remastersys GUI и выберите Backup. В результате получите кастомный ISO (custom-back.iso).
Важно: Remastersys в основном ориентирован на старые версий Ubuntu; при использовании более новых выпусков рассмотрите альтернативы (например, Cubic, live-build), см. раздел “Альтернативные подходы”.
Перенос образа на сервер и развёртывание
- На Ubuntu VM установите NFS-клиент:
sudo apt-get install rpcbind nfs-commonСоздайте точку монтирования: sudo mkdir /NFS
Смонтируйте NFS-шару с правами записи: sudo mount
:/ /NFS Пример: sudo mount 192.168.1.24:/TempNFS /NFS Скопируйте ISO: sudo cp /home/remastersys/remastersys/custom-back.iso /NFS
На Windows Server извлеките содержимое ISO в папку \RemoteInstall\Boot\x64\Images\MyCustomUbuntu (или в аналогичный каталог под вашей архитектурой) с помощью PowerISO или другого инструмента.
В pxelinux.cfg/default добавьте пункт, указывающий KERNEL и initrd из извлечённого ISO, и параметр nfsroot, указывающий на путь каталога образа.
Перезагрузите клиент и выберите пункт меню загрузки.
Если всё настроено корректно, клиент загрузит ядро и подключится к NFS-корню для дальнейшей инициализации Live-системы.
Методология развёртывания: пошаговый SOP
- Подготовка сети
- Убедиться, что DHCP работает и не конфликтует с WDS.
- Проверить, что TFTP порт 69 и NFS порты открыты на межсетевом экране между сервером и клиентами (если применимо).
- Установка WDS
- Установить роль, включить Deployment и Transport Server.
- Проверить служебные каталоги \RemoteInstall.
- pxelinux
- Скопировать pxelinux.0 и C32-модули.
- Создать pxelinux.cfg/default и протестировать простейшую запись boot.
- NFS
- Создать NFS-шару, настроить NTFS-разрешения.
- Тестировать монтирование с Linux-клиента.
- Образ
- Подготовить и запаковать образ локально.
- Копировать ISO на NFS и распаковать в Images/.
- Тестирование
- Проверить загрузку с нескольких моделей клиентов.
- Откат: вернуть оригинальные файлы pxelinux при критических ошибках.
Критерии приёмки
- Клиент успешно PXE-загружает меню pxelinux.
- Пункт загрузки «Ubuntu-LIVE» инициирует загрузку ядра и initrd.
- Клиент монтирует NFS-корень и завершает инициализацию Live-системы.
- Время загрузки в пределах ожидаемого для сети (оценка: зависит от пропускной способности).
Ролевые чек-листы
Сетевой администратор
- Проверить настройки DHCP и отсутствие конфликтов.
- Обеспечить маршрутизацию и доступность TFTP/NFS.
- Настроить брандмауэр и NTFS-права для NFS.
Системный администратор Windows
- Установить WDS и убедиться в доступности \RemoteInstall.
- Скопировать и поддерживать версии pxelinux в каталоге загрузки.
Linux-инженер / Создатель образов
- Подготовить и протестировать виртуальную машину с нужными пакетами.
- Собрать ISO (Remastersys или альтернатива), проверить автологин и автозапуск.
- Тестировать монтаж NFS и запуск службы на клиенте.
Оператор тестовой среды / Пользователь
- Тестировать загрузки на разных моделях устройств.
- Составить отчёт об ошибках и логах dmesg / kernel messages.
Тестовые случаи и приёмка
- TC1: PXE-загрузка чистого клиента — ожидаемый результат: появляется меню pxelinux.
- TC2: Выбор “Ubuntu-LIVE” — ожидаемый результат: загрузка ядра, подключение к NFS, появление рабочего стола.
- TC3: Неправильный путь nfsroot — ожидаемый результат: ядро загружается, но initrd не монтируется (лог в консоли).
- TC4: Повторная загрузка множества клиентов — ожидаемый результат: стабильная работа сети, без блокировок файловой системы.
Отладка и распространённые проблемы
- Клиент не получает IP через PXE: проверьте DHCP и опции PXE.
- pxelinux.0 не загружается: убедитесь, что файл доступен в каталоге WDS и корректно сконфигурирован.
- Ошибка монтирования NFS: проверьте права NTFS и настройки анонимного доступа; проверьте лог на Windows и вывод mount на клиенте.
- Разные модели тонких клиентов имеют различные имена видеовыходов — xrandr-скрипт может не работать; добавьте логику для определения подключённого вывода.
Безопасность и надежность
- Ограничьте доступ к NFS-шаре по IP-адресам или VLAN, если это возможно.
- Рассмотрите использование read-only шара для основного образа и отдельной записи для временных операций.
- Мониторьте загрузку сети и серверных дисков при массовом PXE-запуске.
- Регулярно обновляйте образы и пакеты безопасности в образе Ubuntu.
Важно: NFS v3/4 сам по себе не обеспечивает шифрование; если конфиденциальность трафика важна, используйте VPN или защитную сетевую сегрегацию.
Альтернативные подходы и когда это не подходит
Альтернативы:
- Использование iSCSI для сетевой загрузки корневой FS (подходит для более статичных систем).
- Использование WIM/Windows-образов для Windows-клиентов и отдельно Linux-образов через другое решение.
- Использование специализированных решений для управления тонкими клиентами (LTSP, ThinStation).
Когда PXE+NFS не подходит:
- Когда требуется шифрование всего трафика между сервером и клиентом без VPN.
- При очень высокой нагрузке на сеть и диски — необходимо масштабирование (балансировка, кеширование).
- Если клиенты работают через DHCP, которое вы не контролируете, конфликты или проксирование PXE могут помешать.
Совместимость и миграция
- Для UEFI‑клиентов потребуется адаптация: UEFI PXE-boot использует другую последовательность — возможно, потребуется grub или другая конфигурация.
- Архитектуры x86 и x64 хранятся в отдельных папках; не смешивайте файлы между ними.
Примеры команд и полезный чек-лист команд
- Установить NFS клиент: sudo apt-get install rpcbind nfs-common
- Смонтировать NFS: sudo mount 192.168.1.24:/TempNFS /NFS
- Скопировать ISO на шар: sudo cp /path/to/custom-back.iso /NFS
- Добавить ключ remastersys: sudo wget -O - http://www.remastersys.com/Ubuntu/remastersys.gpg.key | sudo apt-key add -
Короткая галерея возможных пограничных случаев
- Несовместимость Remastersys с очень новыми релизами Ubuntu — используйте альтернативные инструменты.
- Модель thin-client с именами видеовыходов, отличными от LVDS1/VGA1 — xrandr-скрипт не сработает.
- NFS права выглядят корректно, но анонимный доступ блокируется политиками домена — проверьте группу и маппинг анонимных пользователей.
Резюме
- PXE + pxelinux + NFS — надёжный способ централизованной раздачи Ubuntu с Windows Server 2008.
- Подготовка образа в VM и упаковка с помощью Remastersys позволяют быстро создать кастомный LiveCD с автологином и преднастроенным окружением.
- Тщательно протестируйте сеть, права доступа и поведение на разных моделях клиентов.
Ключевые действия: установить WDS, добавить pxelinux, создать pxelinux.cfg, настроить NFS и подготовить кастомный ISO.
Контакты и дополнительные ресурсы
- Руководство HowToGeek по PXE-загрузке Ubuntu: https://www.howtogeek.com/61263/how-to-network-boot-pxe-the-ubuntu-livecd/
- Руководство по созданию кастомного LiveCD: https://www.howtogeek.com/109736/how-to-create-a-custom-ubuntu-live-cd-or-usb/
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента