PXE — грузим всё! Осваиваем мультизагрузку по локальной сети

У любого системного администратора в заначке есть универсальный USB-диск для экстренной реанимации компьютера. Согласись, было бы куда лучше иметь ту же функциональность, используя одну лишь сетевую карту. Нельзя при этом не отметить возможность одновременной работы с несколькими узлами сразу. Итак, исходя из наших потребностей у нас есть два пути решения: использовать PXE или LTSP.

Введение

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

После всех настроек мы получим возможность используя PXE загрузчик:

  • Загружать операционную систему Calculate Linux,
  • Проверить память программой Memtest86+,
  • Проверить жесткие диски программами MHDD и Victoria,
  • Работать с жесткими дисками программой Clonezilla.

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

Подготовка PXElinux

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

и в нём два пустых файла:default . В результате получится вот такая структура.

  • /
  • /
  • /
  • /
  • /
  • /
  • /pxelinux.0
  • /

Файл default

: DEFAULT PROMPT 0 MENU INCLUDE TIMEOUT 100 MENU TITLE PXE Boot menu LABEL bootlocal menu label Boot Local HDD menu default localboot 0x80 LABEL wininstall64 menu label Установка MS Windows OS (x64) kernel pxeboot.0 Второй файл содержит информацию о настройке графического режима. Так сложилось исторически из-за того, что у меня на «боевом» сервере используется разветвлённое меню загрузчика и это вполне оправдано. В маленьких проектах нет необходимости во вложенных меню, но если вы следили за моими статьями, то читали статью о PXE загрузке компьютеров. Возможно для вас подобный подход станет необходимым и каждодневным инструментом.

Файл

Подготовка PXElinux

Создаем последовательность задач (Task Sequence) для сетевой установки Windows

Последовательность задач SCCM (task sequence) обеспечивает пошаговое выполнение команд и действий по установке ОС, ПО, драйверов, обновлений. Для её создания зайдите в Software Library -> Operation System -> Task Sequences и в контекстном меню выберите Create Task Sequence. В появившемся окне мастер предлагает несколько вариантов:

  • Install an existing image package –создание очереди задач для имеющегося wim образа;
  • Build and capture a reference operating system image –захват эталонного образа;
  • Create a new custom task sequence – создание нового пустого задания (настройка выполняется вручную). Отсутствует очередь задач по умолчанию.
Создаем последовательность задач (Task Sequence) для сетевой установки Windows

Так как эталонный образ wim образ у вас уже есть, выберите первый пункт. Далее мастер предлагает поэтапно произвести большое количество настроек, но можете указать только минимально необходимые параметры:

  1. Укажите название задачи и выберите загрузочный PXE образ Boot image ;
  2. Выберите созданный ранее эталонный образ Windows 10;
  3. Установите пароль локального администратора (можно автоматически сменить пароль после добавления компьютера в домен с помощью LAPS);
  4. Настройте параметры автоматического присоединения в домен AD, выбрав домен и OU, в которую нужно поместить новый компьютер;
  5. Выберите пользователя, под которым будет осуществляться добавление в домен;
  6. На шаге State Migration убрать все флажки (Capture user settings and files, Capture network settings, Capture Microsoft Windows settings).
Читайте также:  Как почистить диск C от мусора на Windows 10

Последовательность задач создана, но она требует от вас корректировки и проверки. Перейдите в режим редактирования Task Sequence, выбрав в контекстном меню пункт Edit.

Создаем последовательность задач (Task Sequence) для сетевой установки Windows

В дереве справа указан список действий, которые автоматически будут выполнены с компьютером при установке Windows 10 по сети. На 2 и 3 шаге указываются параметры разбиения дисков на разделы. На шаге 2 вы можете удалить все разделы жёсткого диска, созданные по умолчанию, если вы их не используете для восстановления Windows. Далее создаёте новый раздел, называете “C:”, выбираете тип Primary, устанавливаете фиксированный размер 50 Гб (или другой объём), выбрав опцию Use specific size. Выберите что диск нужно отформатировать в файловой системе NTFS (флажок Quick format).

Далее создаёте второй диск, называете “D”, выбираете тип Primary. Чтобы он занял все оставшееся неразмеченное пространство выберите опцию Use a percentage of remaining free space, выберите значение 100, файловую систему NTFS и флажок Quick format.

Таким образом у вас будет создан диск С: с фиксированным размером, а всё оставшееся место уйдёт диску D: (если объём жёсткого диска большой, то можно разбить его на большее количество разделов), которые будут отформатированы автоматически.

Создаем последовательность задач (Task Sequence) для сетевой установки Windows

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

На следующем шаге – Apply Operating System – нужно выбрать раздел для установки операционной системы. Проверяете наличие эталонного образа, а внизу окна выбираете установку Windows на:

  • Specific disk and partition — конкретный номер диска и номер раздела;
  • Specific logical drive letter – указанный логический диск;
  • Logical drive letter stored in a variable —
Создаем последовательность задач (Task Sequence) для сетевой установки Windows

Например, будет второй пункт и диск С: .

Читайте также:  Как вернуть Windows 8 в исходное состояние

Остальные шаги проверяете на отсутствие ошибок. На шаге Apply Windows Settings нужно указать лицензионный ключ (можно указать ключ KMS активации), пароль администратора и часовой пояс. Корректировка доменных (сетевых) настроек происходит в Apply Network Settings, а Apply Device Drivers позволяет добавить драйвера в установку.

Далее новое задание нужно опубликовать. Для этого в контекстном меню выберите пункт Deploy, на первом шаге мастера выбираете коллекцию устройств All Unknown Computers, на 2м шаге параметру Purpose присваиваете значение Available (Available – доступно для выбора, Required – принудительная установка), в параметре Make available to the following выберите Configuration manager clients, media and PXE, остальные шаги можно оставить по умолчанию.

Создаем последовательность задач (Task Sequence) для сетевой установки Windows

В SCCM коллекцию All Unknown Computers попадают все компьютеры, о которых в SCCM нет никакой информации. Такими ПК могут быть новые или не подключенные к домену.

На этом основные действия по подготовке эталонного образа и настройке SCCM завершены.

Настройка MDT 2013

Приступим к настройке MDT 2013. Запустим консоль Deployment Workbench, щелкнем ПКМ по Deployment Share и создадим новый каталог (New Deployment Share).

Настройка MDT 2013

В окне мастера создания нового каталога распространения укажите путь к папке (C:\DeploymentShare в нашем случае).

Укажите сетевое имя каталога (мы оставили имя по умолчанию DeploymentShare$) и нажмите Next.

Настройка MDT 2013

Совет. Знак “$” в имени сетевой папки означает, что она будет скрыта от пользователей.

После окончания работы мастера перейдите в папку C:\DeploymentShare.

Настройка MDT 2013

В этой папке хранятся образы ОС, драйвера, настройки, пакеты с приложениями и т.д. Папка является портабельной и может быть легко перенесена на другой MDT сервер.

Чтобы все сетевые клиенты (в том числе анонимные) могли обращаться к содержимому этой папке, в свойствах сетевой папки DeploymentShare$, нужно добавить группу Everyone с разрешением на чтение.

Настройка MDT 2013

На следующем шаге нам нужно импортировать образ Windows 10. MDT поддерживает импорт образа операционной системы непосредственно с диска дистрибутива, wim файла или образа wds.

Разверните Deployment Shares -> MDT Deployment share. ПКМ по разделу Operating systems и в меню выберите Import Operating System.

Настройка MDT 2013

Выберите пункт Full set of source files и укажите имя драйва, на который был смонтирован iso образ Windows 10.

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

Настройка MDT 2013

Мастер скопирует файлы дистрибутива Windows 10 в каталог C:\DeploymentShare\Operating Systems\Windows10Prox64, а в разделе Operating Systems появится новый запись, указывающая на образ Windows 10 Pro x64.

Читайте также:  Оптимизация операционной системы Windows XP

Настройка MDT 2013

Windows PE

Windows-образы грузить несколько сложнее. В реализации загрузки практически любого WinPE-образа с любым содержимым внутри нам поможет загрузчик WIMBoot. WIMBoot — это системный загрузчик WIM-образов по сети. Довольно хорошо о самом продукте рассказывается на сайте, там же есть ссылка на скачивание. На сайте Microsoft есть инструкция по созданию WIM-образов. Образ, с которым я работал, был щедро вручен мне нашим системным администратором с продуктами Акронис. Назывался он Acronis_WinPE_Sergei_Strelec_ Распаковав его, увидел в папке source заветный образ Для WIM-образов для большего порядка использую отдельный каталог wim. Чтобы не путаться, внутри сделал еще один каталог winpe. В него копируем Еще нам потребуются два файла из каталога BOOT этого же образа: BCD, и файл BOOTMGR из корня образа. На этом образ можно закрыть, удалить, больше он не пригодится. Переходим к подготовке загрузчиков (WIMBoot и syslinux). Распаковываем куда-нибудь архив Копируем загрузчик WIMBoot на сервер TFTP, для удобства в каталог boot. Поскольку образ содержит Windows PE и различное программное обеспечение, в том числе и Acronis, то отнести можно в любой раздел меню. Я расположил его в главном меню. Итак, в файл вносим изменения:

label winpe menu label WinPE & Acronis menu passwd qwerty com32 boot/wimboot APPEND initrdfile=wim/winpe/BOOTMGR,/wim/winpe/BCD,/wim/winpe/,/wim/winpe/

Собираем все в кучу и взлетаем

В качестве дистрибутива для сервера выбор пал на Ubuntu Server LTS. Можно остановиться на любой другой ОС, разница будет только в синтаксисе. Итак, приступим. Нам потребуется TFTP, DHCP (необязательно установленный на этом же сервере, в роли DHCP-сервера может выступить роутер), сервис для организации сетевой файловой системы NFS. Рассматривать будем только те настройки, которые нас интересуют в рамках темы. Первым делом установим все необходимое, предварительно сделав все обновления:

Параметр -y означает, что на все вопросы отвечаем согласием. Настройка TFTP сводится к правке пары строк в соответствующем месте:

Обрати внимание, параметр TFTP_DIRECTORY=»/var/lib/tftpboot» указывает место расположения корневого каталога TFTP-сервера. После сохранения перезапускаем удобным для себя способом:

Далее настроим DHCP-сервер. Приведу простую конфигурацию файла /etc/dhcp/:

Данная конфигурация говорит о том, что DHCP-сервер работает в локальной сети Клиенту присваиваются адреса из диапазона –, им будут присвоены параметры шлюза — , DNS-сервера — и Класс pxeclients, а именно параметр filename — это имя файла загрузчика, расположенного в корневой папке TFTP-сервера, в нашем случае /var/lib/tftpboot/pxelinux.0, на сервере с адресом