бездисковая загрузка Windows 10 по сети

бездисковая загрузка Windows 10 по сети Компьютер
Содержание
  1. Что понадобится?
  2. Что получаем?
  3. Что будем реализовывать?
  4. 2 Сам образ системы
  5. 3. Сохранение настроек
  6. Syslinux
  7. Acronis
  8. Citrix xenserver 5.6.0
  9. Iscsi-таргеты
  10. Syslinux. ставим загрузчик
  11. Xakep #201. как стать киборгом
  12. Бездисковая загрузка windows 10 по сети
  13. Добавление linux дистрибутивов
  14. Есть и минусы
  15. Загрузка по сети | для системного администратора
  16. Задача:
  17. Заключительные слова
  18. Запуск загрузочного образа на компьютере-сервере
  19. Запуск клиентских компьютеров по сети
  20. Интеграция сетевых драйверов в среду предустановки
  21. Интеграция скрипта запуска установки ос
  22. Как загрузить компьютеры с помощью iso по локальной сети
  23. Как настроить загрузку по сети в bios
  24. Конфигурируем tftpd32.exe
  25. Конфигурируем загрузку
  26. Начнем с плюсов моего метода
  27. Общие примечания
  28. План действий
  29. Поехали!
  30. Послесловие
  31. Предисловие
  32. Проверка файла ответов
  33. Размещаем среду предустановки на tftp
  34. Репозитории
  35. Собираем все в кучу и взлетаем
  36. Создание файла ответов
  37. Среда предустановки
  38. Универсальный сервер сетевой загрузки и установки. часть 2.
  39. Шаг 6
  40. Шаг 7
  41. Проверка итогового результата
  42. Заключение
  43. Итоги:
  44. Initramfs

Что понадобится?

Совсем немного времени и трафика на скачивание нескольких небольших программ, а так же немного времени на
настройку (при наличии знаний по сетям). Помимо этого:

  1. Компьютер с Windows и сетевой картой (линейку 9х не проверял, но и с ней не должно быть проблем, а под NT
    семейством и подавно). Как соединять два компа и настраивать сетку описывать не буду — и так много написано.
    Априори считается, что вы можете соединить между собой два и более компа по сетке.
  2. Компьютер, который будет загружаться по сети с наличием сетевой карты с поддержкой загрузки по сети (PXE)
  3. tftpd32 (вводим в Google и тыкаем на первую ссылку)
  4. pxelinux — часть пакета syslinux — (гуглим по «syslinux» или берем zip-архив тут)
  5. Программа для создания образа дискет. Например, WinImage
    или что-то подобное.
  6. рюмочка коньяка для храбрости 🙂

Что получаем?

Компьютер грузится по сетке, подключается к вашему компьютеру, скачивает загрузчик и ждет вашего ввода команды. Ну
а там смотря что ввели:

Ну и далее только от фантазии зависит 🙂 Можно, например, известные утилиты от Paragon тоже так грузить, но это уже сложнее (надо выковыривать из загрузочных дисков ядра и
образы линукса), можно тот же thinstation terminal client и т.д.

Что будем реализовывать?

Началось все с необходимости иметь под рукой инструмент для удаленной установки Ubuntu/Debian Server по сети, с возможностью загрузки Live CD маленькой системы, вроде SliTaz или Kolibri OS. Как говорится, аппетит приходит во время еды: намеченное не успели реализовать, а к плану добавился еще ряд «хотелок». В итоге список получился весьма внушительным.

2 Сам образ системы

Примонтируем файловую систему и развернем туда с помощью debootstrap минимальный образ:

Стоит слегка подправить получившуюся систему:

Обратите внимание, мы заменили initiatorname.iscsi. IQN — это iSCSI Qualified Name, он обязательно должен быть уникальным. IQN нашего инициатора — iqn.2022-02.org.example.client:default.

Приведем fstab к нужному виду:

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

Отмонтируем rootfs и деактивируем группу томов, чтобы случайно ее не задеть:

Образ системы готов! Загрузчик ему не нужен, ядро будет запускаться с помощью pxelinux.

3. Сохранение настроек

Несмотря на то, что действия в targetcli выполняются немедленно, они не сохраняются и после перезагрузки все таргеты не вернутся. В этом поведение LIO похоже на поведение любых других ядерных служб (iptables, ebtables, ipvsadm и т. п.). При сохранении настроек targetcli компилирует всю конфигурацию в shell-скрипт, который просто скармливает нужные данные в configFS.

Сохраним все настройки:

Таргет готов! Перейдем к настройке DHCP TFTP.

Syslinux

Копируем pxelinux.0 в /var/lib/tftpboot:

Также нам необходим образ ядра (можно взять с хост-системы). Сейчас у меня используется ядро от Ubuntu версии 3.2.0.37:

Дальше нужно собрать правильный initramfs. Для этого нам нужен модуль iSCSI:

Pxelinux будет искать файл с конфигурацией в директории pxelinux.cfg относительно корня tftp-сервера. Создадим ему конфигурацию:

Вместо XX необходимо подставить MAC-адрес сетевой карты client’а, записанный в нижнем регистре через минусы, а не через двоеточия.

Acronis

Продукты Acronis загружаются аналогично инсталляторам Linux-систем. Скачал в Сети первый попавшийся образ Acronis, исключительно в научных целях. Распаковал. Нас интересуют только два каталога: ADD12 и ATI2022. Внутри каждого каталога видим по два файла с одинаковым именем и разным расширением.

Это сделано для загрузки на 32-битных и x64-системах. Если открыть файл menu.lst того же образа, можно посмотреть, что чему соответствует. Для удобства складываем True Image и Disk Director аналогичным образом. Создаем папку acronis в рабочем каталоге ( /var/lib/tftpboot ).

Файл acronis приводим к такому виду:

Citrix xenserver 5.6.0

Citrix XenServer является одной из самых популярных платформ виртуализации инфраструктуры масштаба предприятия. Популярность ей обеспечивает отличное средство управления и настройки — Citrix XenCenter, а так же возможность использовать редакцию Free XenServer бесплатно. Рассмотрим установку этой операционной системы в качестве первого примера.

В документации к дистрибутиву в файле installation.pdf [8] приведен пример, готовый к использованию совместно с PXE. Для использования в созданной нами сетевой конфигурации его необходимо немного изменить:

После всех изменений содержимое должно принять такой вид:

#default xenserver # Эта директива установки по умолчанию. Нам она не нужна — есть меню выбора установок

label xenserver # наименование загрузки (на ваш выбор)

menu label Install — ^Citrix XenServer # Название пункта меню

kernel xensrv/mboot.c32 # Ядро-загрузчик установки (xensrv/ — директория на сервере установки)

append xensrv/xen.gz dom0_mem=752M com1=115200,8n1 console=com1,tty — xensrv/vmlinuz console=ttyS0,115200n8 console=tty0 — xensrv/install.img # параметры установки рекомендованные Citrix

Рассмотрим за что отвечает каждый параметр:

xen.gz — сжатая файловая система инсталлятора;

dom0_mem=752M — использование памяти хост-машиной;

com1=115200 — виртуальный com-порт;

n1 console=com1 — «привязка» порта к терминалу 8 бит с проверкой четности;

vmlinuz — ядро системы;

console=ttyS0,115200n8 console=tty0 — параметры загрузки ядра ;

install.img — образ установочного диска.

Меню создано, осталось скопировать файлы. Для этого последовательно выполняем:

# mount /media/dvd /mnt # Монтируем DVD или

# mount -o loop /distrib/CitrixXS56.iso /mnt # iso-образ Citrix XenServer 5.6.0

Далее создаем папку /tftpboot/xensrv на сервере и скопируем в нее из /mnt/boot/ файлы ядра vmlinuz и xen.gz. Затем скопируем из /mnt/boot/isolinux папку packages.main и файл install.img.

В папке packages.main находятся: dom0fs.tar.bz2 он содержит корневую файловую систему и архивы дополнительных пакетов, разработанных в Citrix, необходимые серверу. Можно включить в установку пакеты которые вам нужны, достаточно просто добавить их в dom0fs.tar.bz2, взяв из соответсвующего репозитория CentOS.

В Citrix XenServer так же предусмотрена возможность автоматической установки. Такой вариант удобен при создании большого количества однотипных серверов, например фермы Citrix App. В этом случае необходимо использовать предварительно созданный файл ответов, путь к которому указываем в параметрах /tftboot/pxelinux.cfg/default перед указанием параметра install.img:

Iscsi-таргеты

Вариант, предлагаемый ниже, состоит из двух серверов: таргета, который дополнительно к iSCSI-таргету содержит на себе DHCP и tftp-сервер, необходимые для начальной загрузки и инициатора, у которого дисков нет, а есть только сетевая карта.

На таргете желательно использовать LVM для нарезания томов, но можно использовать и обычные файлы.

Syslinux. ставим загрузчик

В качестве загрузчика будем использовать Syslinux. Последнюю версию можно взять здесь. Распаковываем и кладем в /var/lib/tftpboot следующие файлы: ldlinux.c32, libcom32.c32, pxelinux.0 и lpxelinux.0 и каталог boot, в который складываем chain.c32, ldlinux.c32, libcom32.c32, libcom32.elf, libutil.c32, linux.

На этом этапе загрузчик должен работать и иметь единственный пункт меню «Загрузка с первого жесткого диска». Далее необходимо создать подменю. Чтобы не путаться и не городить огромные файлы, рекомендую вынести подпункты в отдельные файлы меню, например так:

Все, что относится к разделу меню Install/Boot Linux, вынесем в отдельный файл /var/lib/tftpboot/linux. Аналогично выносятся другие пункты меню. Остальные параметры загрузки рассмотрим при добавлении каждого пункта/продукта.

Xakep #201. как стать киборгом

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

LTSP нам не очень подходит: он призван грузить по сети ОС, установленную на самом сервере, что позволяет использовать приложения сервера LTSP. Это не совсем то, что нам нужно. PXE — инструмент для загрузки компьютера по сети без использования локальных носителей данных, так же как и LTSP. PXE позволяет организовать мультизагрузочное меню загрузки, аналогичное универсальному «USB-реаниматору».

Главное меню загрузки PXE, графический режим

Бездисковая загрузка windows 10 по сети

В этом небольшом посте я расскажу вам о практических способах реализации загрузки бездисковых устройств через PXE. Скажем так, что до определенного момента я совсем не интересовался этой проблемой и о PXE имел весьма посредственное представление, также, наверное как и у большинства. Т.е. все из нас знают, что в современных ПК есть возможность загрузки по сети, каждый видел в BIOS’е собственного ПК такую возможность (PXE Boot, LAN Boot), но мало кто использовал ее на практике.

Наша «тестовая лаборатория» включает в себя:

бездисковая загрузка Windows 10 по сети

Затем скачиваем заранее подготовленный архив

pxe-mikrotik-disk1.rar

и распаковываем его содержимое в корень флешки. Сделать это можно как в меню Files в web-интерфейсе Mikrotik’а, так и через FTP в Mikrotik, ну или просто вставив отформатированную USB Flash в ПК и распаковав в корень содержимое архива. В результате там должна получиться следующая структура файлов (смотреть скриншот справа).

Добавление linux дистрибутивов

Добавить в загрузку Linux-дистрибутив не составляет большого труда. Обычно сборщики популярных дистрибутивов таких как CentOS, Ubuntu, openSuSe и т.д. Включают в поставку текстовый файл с описанием установки ОС с сетевого ресурса.

Общий принцип одинаков: загрузка ядра системы установки и передача ему параметров с указанием пути по которому располагается дистрибутив. Так как этот вопрос подробно рассматривался в первой части статьи , то останавливаться на нем не будем. Дополнительную информацию можно найти по адресу [6].

Есть и минусы

  • У tftpd32 есть баг — при одновременном обращении к нему больше одного клиента — жуткие тормоза на этапе
    загрузки pxelinux’а и образов. Если кому-то надо грузить, скажем, сразу много клиентов, то tftpd32 придется оставить
    только как DHCP, убрав в настройках галочку про TFTP Server (если, конечно, нет другого DHCP), а сам TFTP сервер взять другой (к сожалению, те
    серверы что я видел — коммерческие). Однако, при последовательном обращении клиентов — все летает. Так что как
    вариант просто грузить компы по очереди.

Загрузка по сети | для системного администратора

Технология PXE опирается на стандартные протоколы, в том числе TCP/IP и Dynamic Host Configuration Protocol.

Много лет назад для того, чтобы сконфигурировать пользовательский компьютер или устранить на нем возникшую неисправность, кому-то из специалистов ИТ-службы или корпоративной службы HelpDesk приходилось брать установочные диски для программных продуктов, а также диски со средствами диагностики и драйверами, и идти к этому проблемному ПК.

С созданием корпоративных сетей было найдено и решение этой задачи. В середине 90-х годов Intel, наряду с множеством других производителей аппаратного и программного обеспечения, начала поддерживать спецификации, созданные на основе открытых стандартов и получившие название Wired for Management (WfM).

Эти спецификации, направленные на снижение общей стоимости владения, позволяли системным администраторам по сети обращаться к ПК для проведения мониторинга, обновления и конфигурирования, используя стандартизованное коммуникационное программное обеспечение и приложения удаленного управления. Потребовалась стандартизация аппаратного обеспечения (в том числе микросхем, BIOS, памяти, источников питания и сетевых плат) в пользовательских ПК. Спецификация WfM поддерживает широкий спектр сетевых технологий для ПК, в том числе Desktop Management Interface, удаленный запуск (также называемый запуском по локальной сети или сервисной загрузкой) и Preboot Execution Environment (PXE).

PXE возвращает нас к тому времени, когда не все компьютеры имели внутренние жесткие диски. Как правило, PXE предусматривает загрузку компьютера из микропрограммы, то есть из памяти, доступной только на чтение, или из микросхемы ROM, а не с магнитного носителя. Загрузка из микропрограммы позволяет избавиться от проблем, связанных с использованием электромеханического устройства (физического диска), что увеличивает надежность, избавляет от ошибок чтения диска и ускоряет процесс загрузки. Кроме того, PXE может использоваться для загрузки компьютера по сети.

Несмотря на то что WfM была вытеснена более новыми стандартами на управление, такими как Intel Active Management Technology, возможности, которые поддерживала PXE, сетевые администраторы по-прежнему считают весьма полезными.

Технология PXE предназначена для автоматизированного дистанционного управления пользовательскими ПК и рабочими станциями. Она опирается на стандартные для отрасли Internet-протоколы, в том числе TCP/IP и Dynamic Host Configuration Protocol (DHCP). Компьютеры, поддерживающие PXE, как правило, имеют сетевую плату, которая остается активной и подключенной к локальной сети даже тогда, когда питание самого ПК выключено. Эта плата просматривает трафик локальной сети в поисках специальной последовательности данных — уникального для ПК адреса контроля доступа к носителю, повторенного шесть раз. Когда сетевая плата получает этот «волшебный пакет», она включает ПК. Для того чтобы это произошло, поддержка запуска по локальной сети должна быть активирована в BIOS данного ПК. Запуск по локальной сети в некоторых очень старых ПК может не поддерживаться, поскольку он требует электрического соединения между сетевой и системной платами — обязательное аппаратное требование, которое не может быть выполнено одним только обновлением BIOS. Однако большинство корпоративных ПК отвечает этому требованию к аппаратному обеспечению.

Как только включается локальный ПК, сетевая плата активизируется и выполняется конфигурация. Для того чтобы можно было использовать PXE, необходима соответствующая инфраструктура сервера. Когда загружается клиент PXE, происходит следующее. Во-первых, клиент получает IP-адрес от сервера DHCP. К сожалению, PXE требует наличия некоторых функций, которые могут работать не на всех серверах DHCP, поэтому большая часть программного обеспечения, которая поддерживает PXE, также включает в себя сервис-посредник DHCP. Этот сервис-посредник не предоставляет IP-адреса напрямую, но позволяет работать DHCP.

После подключения к серверу DHCP, система определяет местонахождение сервера загрузки PXE, который посылает ему необходимые файлы. Сервер DHCP предоставляет имя загрузочного файла, а ПК затем загружает его с сервера Trivial File Transfer Protocol (TFTP).

Как только PXE активирован (то есть всегда, когда ПК загружается), на экране появляется сообщение, предлагающее пользователю выбрать: загрузить PXE или продолжить нормальную последовательность загрузки с локального жесткого диска или оптического носителя. PXE предлагает список опций загрузки, в состав которого могут входить разнообразные инструментальные средства поддержки и диагностики, выполняющие такие операции, как сканирование в поисках вирусов, проверка целостности жестких дисков, инвентаризация установленного программного обеспечения, обновление драйверов или даже установка совершенно новой операционной системы на ПК. Все это может делаться удаленно и в основном в автоматическом режиме, практически не требуя выполнения каких-то действий вручную.
Загрузка при помощи PXE

Технология PXE предусматривает загрузку компьютера из микропрограммы, то есть из памяти, доступной только для чтения, или из микросхемы ROM, а не с магнитного носителя. Это ускоряет процесс загрузки, увеличивает его надежность и позволяет осуществлять ее по сети.

  1. Сетевая плата прослушивает трафик локальной сети на предмет наличия определенных последовательностей данных
  2. Сетевая плата фиксирует в передаваемых данных «магический пакет» и подает питание на ПК через разъем питания на системной плате
  3. Клиент PXE запрашивает IP-адрес у DHCP или прокси-сервера
  4. DHCP передает имя загрузочного файла
  5. PXE запрашивает файл с сервера загрузки
  6. Клиент PXE загружает файл с сервера TFTP. Клиент PXE выполняет загрузку с полученного файла

Рассел Кей
Взято с Computerworld

Задача:

Нужно удаленно установить операционную систему на сервере или провести восстановительные работы.

PXE (англ. Preboot Execution Environment) — средство загрузки компьютеров с помощью сетевой карты без использования жёстких дисков, компакт-дисков и других устройств, применяемых при загрузке операционной системы.

Заключительные слова

Если вы администратор сети, и ищите простой и эффективный способ (и без излишеств) для удаленного развертывания и управления ОС, AOMEI PXE Boot может быть именно тем, что вам нужно. Это качественный инструмент, который до смешного прост в настройке и работает на удивление хорошо.

Источник

Запуск загрузочного образа на компьютере-сервере

Устанавливаем программу AOMEI PXE Boot на компьютер-сервер, запускаем. Программа очень простая, предусматривает только две опции: первая – это загрузка по сети загрузочных образов продуктов самой компании AOMEI, вторая – загрузка образов любого иного самозагружаемого ПО.

В окне обзора указываем путь к ISO-образу MSDaRT. Важно: образ самозагружаемого ПО в названии не должен содержать пробелов, их можно заменить нижним подчёркиванием. И имя должно быть латиницей. После указания пути ISO-образа кликаем «Start Service», это действие по запуску сервера.

Кликаем «Ок» в окошке, предупреждающем нас, что для старта работы сервера программа должна быть запущена от имени администратора.

И ожидаем немного, пока в окне AOMEI PXE Boot не появится сообщение о том, что сервер запущен и ожидает соединения.

Запуск клиентских компьютеров по сети

Что мы делаем на клиентских компьютерах? Мы входим в BIOS и настраиваем загрузку по сети. Рассмотрим, как это делается на примере интерфейса UEFI DualBIOS материнской платы Gigabyte. Мы идём в раздел настроек BIOS. И если мы на сервере запустили загрузочный ISO-образ, то первым делом смотрим настройку фильтра опции загрузки, чтобы у нас стоял режим совместимости UEFI и Legacy. Значение этой настройки должно быть «UEFI и прежняя версия».

Но не в каждой версии BIOS UEFI можно выставить режим совместимости, на ноутбуках часто такой возможности. В таком случае просто временно активируем режим Legacy.

Дальше мы ищем настройку включения загрузки по сети (PXE-загрузки). В DualBIOS она называется «ПЗУ для загрузки по сети», включаем эту настройку.

Теперь сохраняем внесённые настройки, перезагружаемся, запускаем Boot-меню BIOS и в нём выбираем PXE-загрузку с использованием сетевой карты.

На экране клиентского компьютера увидим уведомление о загрузке по сети с использованием запущенного на сервере ISO-образа.

На этапе загрузки придётся немного подождать, загрузка больших ISO-образов может занять какое-то время, может даже несколько минут. Разработчики программы рекомендуют при её использовании в рамках администрирования по сети множества компьютеров загружать одновременно небольшие группы компьютеров, дабы процесс загрузки был более производительным. Ну и после загрузки образа мы уже можем приступать к работе с его программным обеспечением.

Интеграция сетевых драйверов в среду предустановки

Перед интеграцией драйверов в образ boot_x86.wim, его предварительно необходимо смонтировать. Делается это с помощью команд dism.exe /get-imageinfo /imagefile: D:TFTPImageboot_x86.wim (получение информации о указном *.wim образе, чтобы определить индекс монтируемого содержимого)

и dism.exe /mount-wim /wimfile: D:TFTPImageboot_x86.wim /index: 2 /mountdir: E:mnt (монтирование указанного *.wim образа к указанному каталогу).

Этим действием мы интегрировали сетевые драйвера из директории LAN_x86 в образ boot_x86.wim. Для образа boot_x64.wim все будет идентично, разница будет лишь в имени подключаемого файла и директории с драйверами.

Интеграция скрипта запуска установки ос

Для того чтобы организовать запуск скрипта, во время загрузки среды предустановки, нам потребуется создать файл winpeshl.ini (текстовый файл) в директории E:mntWindowsSystem32 с следующим содержимым:

Файл winpeshl.ini, является конфигурационным файлом для среды предустановки. Он позволяет задать программу(ы) выполняемые вместо стандартной оболочки. Подробнее о нем можно почитать тут.

Теперь создадим сам скрипт установки init.cmd (текстовый файл) в той же директории. Исходный текст init.cmd:

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

Все вышеописанное нужно будет проделать и для файла образа boot_x64.wim.

Как загрузить компьютеры с помощью iso по локальной сети

Теперь, когда вы знаете о AOMEI PXE Boot достаточно много, пришло время увидеть, как эта штука работает. Процесс, по сути, состоит из двух этапов. Первая часть включает в себя настройку клиентского компьютера для загрузки по сети, а вторая состоит из настройки и запуска приложения на системе, действующей в качестве сервера.

Обратите внимание, что оба компьютера должны быть подключены к одной сети. В моем случае сервер был подключен к сети по беспроводному каналу, но клиентская машина была подключена проводом.

Как настроить загрузку по сети в bios

Загрузка по сети — старая идея. Ключевая идея в том, что компьютер содержит некоторый код начальной загрузки в энергонезависимой памяти, такой как микросхема ПЗУ, что позволяет соединиться с сервером и получить системные файлы по сети.

Для загрузки по сети, компьютер должен получить

образ операционной системы и

обычно, рабочую файловую систему.

Рассмотрим бездисковый компьютер (DC) у которого есть загрузочная сетевая ПЗУ. Возможно наличие нескольких идентичных бездисковых компьютеров. Как же их различать? У этих компьютеров (фактически у их сетевых карт) есть некоторая уникальная информация, это — сетевой Ethernet адрес.

Каждая Ethernet карта в мире имеет уникальный 48 битный Ethernet адрес, так как каждый производитель Ethernet аппаратуры зарезервировал для себя блок адресов. По соглашению эти адреса записываются в виде шестнадцатеричных чисел разделенных двоеточием по группам, в каждой группе по две цифры, например — 00:60:08:C7:A3:D8 .

Используемые для получения IP адреса по данному Ethernet адресу протоколы называются Boot Protocol (BOOTP) и Dynamic Host Configuration Protocol (DHCP) . DHCP — развитие BOOTP. В наших рассуждениях, если не указано иное, все что применимо к BOOTP также применимо к DHCP.

Пример обмена информацией BOOTP выглядит подобным образом:

DC: Привет, мой аппаратный адрес 00:60:08:C7:A3:D8 , дай мне мой IP адрес.

BOOTP сервер: (Смотрит в базу данных адресов.) Твое имя aldebaran, твой IP адрес 192.168.1.100, твой сервер 192.168.1.1, твой предполагаемый загрузочный файл /tftpboot/vmlinux.nb (и еще несколько частей информации).

Вы удивитесь, как бездисковый компьютер изначально находит адрес BOOTP сервера. Ответ таков — он его не ищет. Запрос BOOTP широковещательный по локальной сети и любой BOOTP может ответить на запрос.

Конфигурируем tftpd32.exe

Запустили, нажали Settings, в «страшном» окне указываем Base Dirrectory – C:TFTP. Потом выставляем галочки как на
картинке:

Жмем на ОК, еще раз ОК, и перезапускаем tftpd32.

Далее настраиваем наш DHCP сервер:

  1. Выбираем сетевую карточку, к которой подключен пациент
  2. Ставим начало адресов, которые получит первый клиент (этот адрес и количество клиентов не должно пересекаться с
    вашим IP)
  3. Количество адресов (минимум 1)
  4. Имя загрузчика (pxelinux.0)
  5. Маска сети (мат-часть по сетям)
  6. Сохраняемся….

Далее на всякий случай перезапускаем tftpd32. Почти закончили 🙂

Конфигурируем загрузку

Создаем текстовый файл C:TFTPPXELINUX.CFGdefault и редактируем его, скажем, так:

default local
prompt 1
label local
    localboot 1
label dos
    kernel memdisk
    append initrd=dos.imz
label pqpm8
    kernel memdisk
    append initrd=pqpm8.imz
label mem
    kernel memtest

Подробную информацию можно найти в pxelinux.doc из syslinux’a.

Ну и наконец, устанавливаем на компе загрузку с сетевого адаптера по PXE.

Начнем с плюсов моего метода

  • Не надо иметь выделенный RIS сервер (вообще не надо сервер) — не всегда он есть под рукой, а иногда за него
    надо платить…
  • Грузить можно любой 1.44, 2.88 и 5.76 (ага, и такие бывают!) образ дискеты как он есть, без изменений
    (единственное если прога на 2-х дискетах 1.44, то ее надо слить в один образ 2.88), плюс образ любого размера,
    который поместится в память клиента (речь уже об образе диска, а не дискеты)
  • Можно грузить различные линуксы, которые работают с RAM диска (например, thinstation — это RDP клиент, или те же
    утилиты от Paragon)
  • Можно грузить различные линуксовые бинарники (например memtest86 )
  • Легко модифицировать любую сеть для такой работы. Надо всего лишь на DHCP сервере сети указать IP нашего PXE
    сервера и имя загрузчика. Это в моей статье не описывается, так как уже было описано в первой статье (два параметра для DHCP — 066, 067), и админам думаю проблем не составит сделать нужные
    изменения)
  • Можно все нужные файлы таскать с собой на Flash диске — и тогда любой комп быстро превращается в PXE сервер
    (только надо перенастроить в tftpd32 — путь к файлам и IP адреса, и перезапустить его)

Общие примечания

Для редактирования/создания образа дискеты можно пользоваться WinImage, плугином к Total Commander Virtual Disk или другими утилитами. Если у вас один компьютер, и нет
серверной платформы, вы можете использовать одну из виртуальных машин (например, VMWare), установить на ней сервер и
настроить на взаимодействие с другим компом. Судя по отзывам на форумах, это вполне реально.

Также в сети можно найти DOS стек TCP/IP. Или настроить NetBios/NetBEUI. В таком случае вы можете загрузить
дистрибутив с шары.

План действий

1. Устанавливаем TFTP и DHCP сервера для организации сетевой загрузки. 2. Устанавливаем загрузчик Windows Boot Manager на TFTP сервер. 3. Создаем общий сетевой ресурс на котором будут размещаться установочные файлы. Общий доступ может быть организован по протоколу CIFS или SMB. 4.

Первые два пункта представлены с ссылками, так как данные темы уже рассматривались ранее. Рекомендую ознакомиться с ними.

Поехали!

  1. Распаковываем tftpd32.exe, скажем, в С:TFTP
  2. Распаковываем файл pxelinux.0 (из архива syslinux’а), memdisk (из sysylinux.zip/memdisk) а
    так же (опционально) memtest (sysylinux.zip/memtest) в C:TFTP.
  3. Tуда же (C:TFTP) кладем образ любимой загрузочной дискетки (можно и не только дискетки – но об этом ниже).
    Например, dos.imz (для экономии места и/или ускорения загрузки можно даже сжатый (winimage) образ класть –
    imz, a можно и не сжатый ima). Образов может быть сколько угодно.
  4. Проверяем, что у нас в сети нету DHCP серверов. Например, если включен ICS (шара интернета), то его выключить
    на время экспериментов.

Послесловие

В статье делается упор на tftpd32, так как он бесплатен, не требует установки, и включает в себя 2 сервера в 1 (DHCP и TFTP), а также запускается под Windows любой версии. Но сам принцип — загрузка и запуск бинарника pxelinux (с последующей загрузкой нашего образа) — не привязан к tftpd32, а требует наличия в сети DHCP сервера с двумя дополнительными параметрами — 067 (имя загружаемого бинарника — pxelinux.0)

и 066 (IP адрес TFTP сервера который нам и выдает искомый бинарник), а также собственно TFTP сервер, на который ссылается DHCP. Какими системами, сервисами или железками это реализовано нам совершенно неважно, потому можно использовать любой находящийся в сети сервер (Linux, Windows, Novell). Ну а если его нет, то tftpd32, запущенный на любой машине. Главное — это добраться по сети до PXELINUX.

Предисловие

Возникла у меня такая ситуация. Принесли компьютер, еле живой, Asus S200, та еще штучка как оказалось
впоследствии. Диск был разбит по грамотному (два раздела), и на втором был дистрибутив Windows, спасибо предыдущему
настройщику, облегчил задачку.

Итак, имеем компьютер без флоппа и CDROM. Есть сетевая карта SIS900. В BIOS есть возможность загрузиться с HDD,
USB Floppy, USB Flash, USB CDROM и по сети.

На момент начала мучений с ним была только флешка, но грузиться с нее он отказался. Достать USB СD или Floppy не
удалось. Оставалась только сетевая загрузка. Кстати, как оказалось впоследствии, что реально помог бы только USB
флоп. USB СD не опознался.

Читая доки MS и форумы по автоустановке, натыкался на сокращение RIS и упоминание того, что можно загрузиться с сетевой
карты и установить ось. Вот и решил проверить. Поставил RIS, создал образ, настроил DHCP и … получил огромный
облом. Система действительно загружалась, проходила текстовую часть установки и вываливалась в BSOD с кодом
0x000000BB.

Согласно толкованиям, найденным на просторах Интернета, для исправления  нужно всего ничего, заменить
драйвера сетевой карты в дистрибутиве или заменить сетевую карту. Скачал новую версию драйверов, прочитал KB315279 и ссылки по ней, сделал все как описано, и
танцы с бубном окончились продолжительным BSOD-ом с тем же кодом.

Ладно, если не получается с наскока давайте читать инструкции. Изучал, изучал и наткнулся на возможность
использования практически любого образа диска для загрузки по сети.

Проверка файла ответов

После добавления всех необходимых параметров и компонентов в меню Сервис выбираем Проверка файла ответов. Все значения сравниваются с доступными параметрами выбранного образа Windows. Если проверка прошла успешно, в области Сообщения в нижней части окна Диспетчер установки Windows появляется сообщение Ошибок и предупреждений нет.

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

Повторяем это действие, пока файл ответов не будет годным к эксплуатации. И только после этого сохраняем файл под именем autounattend.xml. Осталось скопировать этот файл в корневую папку сервера сетевой загрузки и исправить вызов setup.exe в файле install_menu.

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

Размещаем среду предустановки на tftp

Корень TFTP сервера на данный момент выглядит так (конкретно, это состояние на момент завершения предыдущей статьи).

Расположим в папке Image образы boot_x86.wim и boot_x64.wim (то есть это обычные boot.wim, взятые из папки sources, скопированные и переименнованные). Данные образы, это не измененные, образы сред предустановок соответствующих дистрибутивов ОС Windows.

Общая файловая структура TFTP на следующем скриншоте.

Репозитории

Centos и Oracle Linux используют локальные репозитории. Для этих систем это примечание несущественно.

Источник

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

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

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

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

Данная конфигурация говорит о том, что DHCP-сервер работает в локальной сети 192.168.0.0/24. Клиенту присваиваются адреса из диапазона 192.168.0.150–192.168.0.200, им будут присвоены параметры шлюза — 192.168.0.1, DNS-сервера — 192.168.0.2 и 192.168.0.5.

Создание файла ответов

Автоматическая установка обеспечивается при наличии в дистрибутиве Microsoft Windows XP текстового файла настройки системы winnt.sif и диспетчер установки setupmgr.exe. В последующих версиях Windows (Microsoft Windows Vista и старше) эту роль играет файл ответов autounattend.xml. Как понятно из расширения он представляет собой простую XML-структуру (рис.1).

Рисунок 1. Структура файла autounattend.xml

В нем можно указать используемые по умолчанию параметры Internet Explorer, настройку сети, принадлежность к домену и т.д. В связи с тем, что теперь в Windows используется модульная архитектура, появилась возможность тонкой настройки каждого компонента устанавливаемой системы, за счет вложенных элементов структуры XML.

Создать файл ответов можно в любом текстовом редактором, но лучше все действия производить при помощи диспетчера установки Windows (Windows Automated Installation Kit или сокращенно WAIK) [4]. Кроме того WAIK проверяет корректность указанных значений и имеет очень удобно реализованную систему помощи.

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

lang=»ru-RU»>Для просмотра этих документов после установки Windows AIK нажмите кнопку Пуск, последовательно выберите Все программы | Microsoft Windows AIK | Документация, а затем откройте необходимый файл справки.

По умолчанию все документы находятся в папке %ProgramFiles%Windows AIKDocsCHMs. Дополнительно в папке C:Program FilesWindows AIKSamples обслуживающего компьютера [1] можно найти образец файла ответов (Corp_autounattended_sample.xml).

Рассмотрим пример развертывания образа Windows 7 используя WAIK .Для этого выполним следующие действия:

Врезка.

В данном примере не импортируются специальные драйверы устройств, а так же дополнительные приложения и пакеты. Производиться первоначальное конфигурирование и форматирование дисков, установка редакции и локали системы, а так же ввод ключа продукта.

После выполненных действий в области Файл ответов появится пустой файл с названием Untitled. Далее, выполняем добавление компонентов системы настройки, для этого в панели Образ Windows разворачиваем вкладку Components.

Таблица 1. Компоненты необходимые для создания базового образа Windows

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

Присмотревшись внимательнее к названиям в большинстве случаев можно определить за что отвечает каждый компонент. Вопрос который может возникнуть: «Что такое этап настройки?». Этап настройки это момент времени в которое будет производиться описанное действие.

Этапы по своей сути очень похожи на «шаги инсталляции» Windows XP. Настройки автоматической установки могут быть применены в одном или нескольких этапах. Нам необходимо использовать этап под названием WindowsPE. Вот как он описан в документации: «…параметры могут включать определение образа ОС Windows для установки и настройки диска на компьютере назначения.

Если ваша установка Windows PE требует загрузки драйверов для доступа к локальному жесткому диску или сети, используйте этот этап настройки для добавления драйверов в хранилище драйверов Windows PE.»

Все просто и понятно — это самый главный этап для сетевой установки.

Итак, закончив добавление, переходим к редактированию свойств компонентов (рис.2).

Рисунок 2. Редактирование свойств компонента

В области Параметры панели Свойства выбираем нужный параметр и в правом столбце вводим соответствующее значение, как указано в таблице 2. Названия и значения свойств интуитивно понятны и не должны вызвать вопросов.

Таблица 2. Параметры свойств компонента

Со списком минимально необходимых компонентов, а так же с подробным описанием каждого можно познакомиться в документе под названием «Пошаговое руководство создания файла ответов» — файл stepbystep_itpro.htm дистрибутива [4].

Среда предустановки

В качестве среды предустановки, будет использована та, что идет в комплекте с установочным дистрибутивом. Располагается она в папке sources и представлена образом boot.wim.

Текущий файл boot.wim (обоих дистрибутивов), настроен на запуск установки Windows с диска на котором он расположен. Наша задача, настроить данный образ так, чтобы процесс установки запускался из сети.

Сетевые драйвера необходимы для того, чтобы загруженная WinPE могла корректно определить сетевой адаптер(ы) компьютера на котором она будет запущена.

Скрипт установки, будет выполнять подключение к ранее созданному сетевому ресурсу, с установочными файлами, и запускать процесс установки ОС Windows.

Так как у нас два дистрибутива, x86 и x64, среду предустановки каждого, нужно настраивать по отдельности. Данный процесс одинаков, поэтому я приведу пример настройки только для boot.wim x86 версии, с необходимыми поправками там, где это необходимо для boot.wim x64 версии.

Универсальный сервер сетевой загрузки и установки. часть 2.

В первой части статьи [1] были рассмотрены принципы работы, создание и конфигурирование сервера для инсталляции различных операционных систем в сети. Подготовили и настроили для установки в обычном режиме (вопрос–ответ) два дистрибутива: Microsoft Windows XP и Microsoft Windows 7.

Рассмотрим процесс автоматизации установки операционных систем. Автоматическая установка Windows XP подробно описана не только в официальной документации Microsoft [2], но и в огромном количество how-to разбросанным по интернету [3]. Поскольку Windows XP снята с поддержки, то перейдем к обзору автоматической установки флагманской операционной системы компании Microsoft Windows 7.

Шаг 6

Настраиваем DHCP (если настроен, то переходим к шагу 7). У меня Win 2000 Server так что буду описывать для
него.

Если DHCP не установлен, тогда его сначала нужно установить. (Панель управления> — Установка удаление
программ — Добавление и удаление компонент Windows, затем выделить Сетевые службы, Состав и
поставить галочку на DHCP).

Шаг 7

Устанавливаем и конфигурируем RIS

Панель управления — Установка удаление программ — Добавление и удаление компонент Windows,
ставим галочку на Служба удаленной загрузки. После завершения установки идем в Администрирование —
Службы и запускаем службу Упрощенный FTP-демон.

Проверка итогового результата

Теперь все готово. Осталось только проверить результат проделанной работы. Проверять будем как всегда в виртуальной машине VirtualBox.

Загруженное меню. В шапке видно что загрузчик загружен по сетию

Загрузка образа boot_x86.wim в оперативную память компьютера.

Выполнение интегрированного нами скрипта.

Уведомление скриптом об успешности подключения сетевого ресурса.

Запущенный скриптом установщик ОС Windows.

На этом скриншоте видно, что установка идет реально по сети.

Технология сетевой установки ОС проста и доступна. Минимум необходимых инструментов. Все что нужно, это установочный образ Windows 10 (нет необходимости скачивать WAIK или ADK). Все описанное выше будет работать для ОС Windows начиная с 7-ки и выше (7, 8.1, 10).

Надеюсь данный материал будет полезен для вас 😉.

Источник

Заключение

На этом всё. В следующей статье мы научимся подготавливать и добавлять Windows-образы, сетевой установке в ручном и автоматическом режимах. Добавим Kaspersky Rescue v10, ERD Commander, именуемый MSDaRT. Разберемся, как запускать диагностические утилиты на примере memtest, а также покажем, как украсить меню загрузки.

Итоги:

Можно вполне использовать iSCSI для загрузки серверов, не имеющих своих дисков (актуально для виртуализации, самопильных систем хранения данных, серверов, которые не должны долго жить и т.п.).

Есть другой вариант, использовать инициатор, встроенный в сетевую карту. Такой подход иногда бывает невозможен по различным причинам (самая банальная — отсутствие необходимого функционала в самой карточке), а также обладает несколько меньшей гибкостью.

Присутствует security-hole, поскольку /proc/cmdline доступен любому желающему в системе и этот любой желающий может получить доступ к экспортированному тому. Поэтому можно на таргете закрыть фаерволом все адреса, кроме необходимого.

Описанная схема — по большей части драфт и основа для инфраструктуры сетевой загрузки.

Источник

Initramfs

В этом примере мы будем забирать образ корневой фс с веб-сервера, расположенного на нашем сервере сетевой загрузки, то есть на 10.0.0.1. Решение было таким просто потому, что в нашем initramfs была утилита wget. Чтобы не тянуть большой объем данных по сети, мы решили сжать образ.

SquashfsSquashfs — это сжимающая файловая система, которая включена в ядро с версии 2.6.29. С ее помощью можно заархивировать каталог, примонтировать на loop устройство и читать с него, для записи же необходимо провести процедуру добавления файлов в архив. Так как при обращении к squashfs, вы читаете из архива, то это дает дополнительную нагрузку на cpu.

Далее надо научить init из initramfs забирать образ корня и помещать его в оперативную память.

init в initramfs — это скрипт на sh, который производит разбор опций из cmdline, монтирует фс, делает switch_root и запускает гланый init-процесс системы. Воспользуемся этим и допишем свои опции для cmdline. Напишем скрипт ram, который будет вызываться при значении опции boot=ram.

Через параметр rooturl можно указывать откуда качать образ корневой фс. Для работы со squashfs необходимо подгрузить ее модуль в ядро. Указываем в /etc/initramfs-tools/initramfs.conf BOOT=ram и пересобираем initramfs

Включаем машинку, на которой будем тестировать, и смотрим на происходящее. После успешной загрузки мы получили бездисковую систему, которая занимает в памяти около 300Мб, при этом мы может писать в нее, но после ребута, система вернется в свое первоначальное состояние.

В это примере, мы использовали squashfs просто для сжатия образа, но почему бы нам не попробовать примонтировать корневой раздел в squashfs и не посмотреть, что получится? Меняем наш скрипт, в функции do_rammount() оставляем только монтирование squashfs.

Пересобираем initramfs, запускаем, смотрим. Система загружается в режиме ro, но зато занимает в памяти всего около 180Мб. В каких-то случаях монтирование в режиме ro это хорошо, но нас это не устраивает, но и просто так тратить оперативную память нам тоже не хочется. Выход же был найден при помощи Aufs.

AufsAufs позволяет делать каскадно-объединённое монтирование файловых систем — одну в режиме только на чтение, а вторую в rw. Работает она в режиме copy-on-write, то есть все изменения записываются на rw систему и после этого чтение производится с нее же. Опять переписываем наш скрипт. В фукнцию mountroot() добавляем

А фукнцию do_rammount() приводим к следующему виду:

Пересобираем initramfs, запускаем, смотрим. Система занимает в памяти 181Мб, при этом мы можем менять ее, писать, читать. Все изменения хранятся отдельно в /mnt/rw, а сама система хранится в /mnt/ro.

В результате мы получили систему, которая грузится по сети, занимает небольшой объем в памяти, при этом после каждой перезагрузки пропадают все изменения (поэтому надо заранее собирать все нужные продукты жизнедеятельности системы в надежное место).

Оцените статью
OverComp.ru