Удаленное включение компьютера с помощью Wake-on-LAN (WOL)

Написанию данного поста предшествовало сбор информации по частям и многочасовое курение как русскоязычных, так и англоязычных ресурсов в сети интернет в поиске сравнительно простых способов…

Введение

Современные операционные системы Windows 7, Windows Server 2008 и всё, что старше, умеют подключаться напрямую на iSCSI target. Проблема только в том, как инициализировать удаленное блочное устройство при включении ПК.

Вспомним, что почти все современные сетевые карты умеют загружаться по технологии PXE. А вот с iSCSI дружат в основном только дорогостоящие серверные сетевые карты,

например Intel.

Однако, существует как минимум два open source проекта

gPXE

и

iPXE

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

Есть много способов, как загружаться через gPXE и iPXE. В данном посте мы будем рассматривать загрузку с использованием iPXE и подключением для него необходимых скриптов в процессе загрузки.

Суть такова — при запуске компьютера сетевая карта получает необходимые настройки через DHCP сервер и загружает PXELINUX. Далее загрузчик PXELINUX подключает необходимый скрипт и загружает iPXE, который, в свою очередь, выступает iSCSI инициатором и передает управление диску. До момента инициализации блочного устройства передачу файлов по сети обеспечивает протокол TFTP.

Для чего мы загружаем PXELINUX?

Некоторые могут спросить — а для чего загружать PXELINUX? Во первых, через PXELINUX загрузчик iPXE получает необходимый скрипт для инициализации нужного iSCSI target-а. Во вторых, чтобы можно было построить удобное меню с выбором различных вариантов загрузки. В третьих, если в сети существует несколько бездисковых рабочих станций, то нужно чтобы каждый ПК подключался «к своему» iSCSI-диску и не имел доступа к «чужим» дискам, а значит их нужно как то отделять друг от друга, например, по MAC-адресам. Для этих целей будет использоваться двухстадийная загрузка с использованием PXELINUX.

Но обо всем по порядку. Начнем с установки и настройки в системе Windows необходимого софта для реализации DHCP, TFTP и iSCSI Target-а. Для этого я использовал бесплатно распространяемые программные продукты

Tftpd32

и

StarWind Virtual SAN

. Программа Tftpd32 используется как в роли DHCP сервера, так и в роли TFTP сервера, ну а StarWind Virtual SAN соответственно будет использоваться в роли iSCSI target-а. Скачать данные программы можно на сайте разработчиков, ссылки которых указанны в их названиях. Для скачивание программы StarWind Virtual SAN необходимо будет выбрать на сайте Free версию программы и пройти процесс регистрации, с указанием корпоративного почтового адреса. На указанный вами почтовый адрес придет лицензионный ключ и ссылка на скачивание самой программы.

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

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

  1. Тонкие клиенты на базе Thinstation Linux.
  2. Раздел Linux.
    1. Установка Ubuntu 14.04 x86.
    2. Установка Ubuntu 14.04 x64.
    3. Установка Ubuntu 12.04 x86.
    4. Установка Ubuntu 12.04 x64.
    5. Загрузка SliTaz Live CD.
  3. Раздел Windows.
    1. Установка Windows 2012.
    2. Установка Windows 7.
  4. Acronis.
    1. Windows PE с пакетом полезного ПО.
    2. Acronis True Image.
      1. Legacy BIOS.
      2. UEFI.
    3. Acronis Disk Director.
      1. Legacy BIOS.
      2. UEFI.
  5. Касперский Rescue v 10.
  6. ERD Commander от 5 до 8 через ISO-образ.
  7. Memtest.

Короткое введение.

Установка Windows по сети – грозный набор слов, от которых у вас, наверняка, в зобу дыхание сперло. Мы уже успели изучить всевозможные способы установки любой системы семейства Windows, за исключением лишь VISTA. Эта система по вполне понятным причинам не прижилась в нашем мире, но сейчас не об этом.

Для чего же человечество используется такой метод инсталляции. Установка Windows по сети используется в тех случаях, когда один из компов, по тем или иным причинам, обделен USB-портов, а так же дисководом. То есть в нем нет места для сменного носителя с записанным образом винды. В качестве альтернативы можно выбрать массу методов, к примеру, самый простой – пойти и купить необходимые USB-модули. Но мы пойдем по сложному пути, будем переустанавливать винду по локальной сети.

Установка Windows по сети

При такой установке соблюдается довольно сложный принцип работы компьютера. Сетевая карта становится загрузочным аппаратом, своеобразным жестким диском. Как только на материнскую плату будет подано питание, сетевая карта получит свой личный IP-адрес, так же в работу включится стандарт PXE. IP-ник выдается DHC-сервером, а затем этот адрес передается и TFTP-серверу. Сетевая карта начинает загрузку с TFTP, после чего, на пост заступает специальное сетевое приложение, но об это чуть позже.

Что такое загрузка по сети?

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

Настройка точек распространения для PXE

Чтобы развернуть операционные системы в клиентах Configuration Manager, отправляющих PXE-запросы загрузки, необходимо настроить одну или несколько точек распространения на прием PXE-запросов. Теперь точка распространения будет отвечать на PXE-запросы загрузки и определять необходимые для развертывания действия. Дополнительные сведения см. в разделе Установка или изменение точки распространения.

Примечание

Если вы настраиваете одну точку распространения с поддержкой PXE для нескольких подсетей, параметры DHCP для использовать нельзя. Чтобы сеть могла перенаправлять PXE-запросы клиентов на точки распространения с поддержкой PXE, настройте вспомогательные службы IP на маршрутизаторах.

В версии 1810 использование отвечающего устройства PXE без WDS на серверах, на которых также работает DHCP-сервер, не поддерживается.

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

  • Установите параметр DoNotListenOnDhcpPort типа DWord в значение 1 в следующем разделе реестра: HKLMSoftwareMicrosoftSMSDP.
  • Установите параметр DHCP 60 в значение PXEClient.
  • Перезапустите службы SCCMPXE и DHCP на сервере.

Загрузка PXE-кода

PXE-код это программа формирующая среду предзагрузочного выполнения.Обычно PXE-код стартует с ПЗУ (постоянное запоминающее устройство) сетевой карты.Однако PXE-среда с помощью PXE загрузчика может быть запущена и с любого локального носителя.Запуск PXE-кода это первый этап загрузки компьютера по сети.

Замечание: Сетевых карт — например таких как 3COM 3C905C-TX-M со встроенным BootROM в настоящий момент в свободной продаже (практически) нет. Возможно это связано с обилием материнских плат со встроенными сетевыми картами и наличием в них уже прошитого PXE-кода. Замечание: PXE загрузчик может быть размещён на любом физическом носителе: на флоппи-дискете, CD/DVD диске, USB флешке, жёстком диске. Следует иметь ввиду, что BIOS материнской карты должен поддерживать передачу управления загрузки на выбранный носитель с PXE-загрузчиком.

В общем случае после выполнения PXE кода осуществляется скачивание загрузчика операционных сред и передача управления ему.Но некоторые проекты PXE-загрузчиков, например такие как iPXE/gPXE предоставляют возможность осуществлять загрузку ядра операционной среды минуя стадию скачивания загрузчика операционных сред.

Замечание: Стандартная PXE-прошивка обеспечивает загрузку из сети с сервера TFTP. Но некоторые проекты PXE-загрузчиков. например iPXE, умеют подключаться и загружать меню и операционные системы и с HTTP сервера.

Таким образом для получения загрузчика и ядра операционной среды используются протоколы TCP/IP, UDP, DHCP/BOOTP и TFTP/HTTP, и должны быть настроены серверы DHCP и TFTP/HTTP.

Описание технологии Wake on LAN (WOL)

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

Компания AMD работая в сотрудничестве с компанией Hewlett Packard (HP) нашли решение этой проблемы. Современные компьютеры обеспечивают поступление электроэнергии на материнскую плату даже в выключенном состоянии и сетевая карта может «просматривать» все пакеты поступающие на нее из сети и при поступлении специальной команды может включать компьютер в рабочее состояние из режима ожидания. Команда должна содержать уникальный IEEE адрес сетевой карты, таким образом эта команда может включить только нужный компьютер в сети. Этот уникальный адрес повторяется в команде 16 раз и может быть передан любым протоколом на любой порт обеспечивая таким образом свободу передачи этой команды. Сетевой пакет содержащий такую команду на включение компьютера назвали Магический Пакет (Magic Packet).

Технология Магического Пакета позволяет удаленно включить выключенный или находящийся в режиме ожидания компьютер по сети. Это достигается отправкой Магического Пакета в заданный узел сети где находится компьютер. Когда компьютер переходит в режим ожидания он включает в сетевой карте режим ожидания Магического Пакета и далее сетевая карта проверяет весь трафик поступающий на нее.

В терминологии компании Intel эта технология названа Wake on LAN (WOL).

Некоторые сетевые карты дополнительно поддерживают функцию «SecureON» пароль. Эта настройка позволяет дополнительно задавать пароль для Магического Пакета. Пароль состоит из 6 символов (6 байт) и эти символы дополнительно передаются в Магическом Пакете. Однако на текущий момент немногие производители включают поддержку данной функции в свою продукцию.

1. Используйте конфигурацию системы

Вероятно, самый простой способ загрузить ПК с Windows 10 в безопасном режиме с сетевым подключением — это использовать инструмент настройки системы, также известный как msconfig.exe . Чтобы запустить настройку системы, начните вводить «конфигурация системы» в поле поиска Cortana на панели задач. Затем, как только результаты поиска начнут появляться, нажмите или нажмите на Конфигурация системы .

6-ways-to-boot-into-safe-mode-with-networking-in-windows-10.jpg

Альтернативный способ открыть конфигурацию системы — использовать окно «Выполнить». Одновременно нажмите клавиши Windows + R на клавиатуре, введите msconfig в текстовом поле Открыть, а затем нажмите или коснитесь ОК или нажмите клавишу Enter на клавиатуре.

6-ways-to-boot-into-safe-mode-with-networking-in-windows-10_1.jpg

В окне « Конфигурация системы» щелкните или нажмите вкладку « Загрузка ». Затем установите флажок « Безопасная загрузка» в разделе « Параметры загрузки » и выберите « Сеть» .

6-ways-to-boot-into-safe-mode-with-networking-in-windows-10_2.jpg

После того, как вы нажмете или нажмете « ОК», в Windows 10 появится уведомление, в котором говорится, что вы должны перезагрузить компьютер, чтобы внести изменения. Если вы хотите перейти в безопасный режим с подключением к сети прямо сейчас, нажмите / нажмите « Перезагрузить» . В противном случае выберите « Выход без перезагрузки» и, когда вы будете готовы, перезагрузите компьютер с Windows 10 вручную.

6-ways-to-boot-into-safe-mode-with-networking-in-windows-10_3.jpg

При перезапуске Windows 10 автоматически переходит в безопасный режим с поддержкой сети . Первое, что мы обнаружили, когда это произошло на наших тестовых компьютерах, было то, что Microsoft Edge не работает в этом режиме.

6-ways-to-boot-into-safe-mode-with-networking-in-windows-10_4.jpg

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

6-ways-to-boot-into-safe-mode-with-networking-in-windows-10_5.jpg

Настройка программы Tftpd32

Данная программа довольно простая и интуитивно понятная, поэтому приведу просто скриншоты своих настроек:

6ecd12b8670449af82be5fe79085e198.jpg d29f4cfc3e984e3f98559bf9b5dbc5de.jpg

На вкладке «GLOBAL» у меня отмечены галочкой сервисы TFTP Server, Syslog Server и DHCP Server. На вкладке TFTP в поле Base Directory указана точка, которая означать, что в качестве корневой директорией будет использоваться папка, куда установлена сама программа Tftpd32. На вкладке DHCP в поле Boot File указан название загружаемого файла, которую мы рассмотрим дальше в настройках PXELINUX. На вкладке SYSLOG настройки не требуются.

Как это работает?

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

  1. идентификацию

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

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

Рассмотрим бездисковый компьютер (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 и DHCP всего лишь транслируютEthernet адреса, в них предусмотрено обеспечение работы BOOTP и DHCP с любым типом аппаратных адресов, но большинство использует Ethernet.)

Пример обмена информацией 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 может ответить на запрос.

После получения IP адреса, DC должен загрузить образ операционной системы и выполнить его. Другой используемый тут Интернет протокол называется Trivial File Transfer Protocol (TFTP). TFTP подобен обрезанной версии FTP — тут нет идентификации, и он работает поверх User Datagram Protocol (UDP), а не поверх Transmission Control Protocol (TCP).UDP был выбран вместо TCP для упрощения. Реализация UDP на DC может быть маленькой, посему код легко помещается вПЗУ. Так как UDP блочно-ориентированный протокол, в отличие от потоково-ориентированных протоколов,передача следует блок за блоком, как например:

DC: Дай мне 1 блок файла /tftpboot/vmlinux.nb.TFTP сервер: Лови.DC: Дай мне блок 2.

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

В конце, в случае запуска операционной системы, должна быть предоставлена корневая файловаясистема. Linux и другими Unix-ами обычно используется Network File System (NFS), однако возможны другие варианты. В этом случае код не должен находиться в ROM, а должен бытьчастью загружаемой операционной системы. Однако операционная система вместо реального диска должназапустить корневую файловую систему — NFS. Linux содержит требуемые для этого настройки.

Управление повторяющимися идентификаторами оборудования

Configuration Manager может распознавать несколько компьютеров как одно устройство, если они имеют повторяющиеся атрибуты SMBIOS или вы используете общий сетевой адаптер. Устраните эти проблемы путем управления повторяющимися идентификаторами оборудования в параметрах иерархии. Подробные сведения см. в разделе Управление повторяющимися идентификаторами оборудования.

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.c32, memdisk, menu.c32, vesamenu.c32 (menu.c32 — только текстовое меню, vesamenu.c32 позволяет украсить меню, например добавив фон). Файл меню загрузки по умолчанию должен находиться в /var/lib/tftpboot/pxelinux.cfg/default и иметь вид

menu title Boot menu PXEDEFAULT boot/menu.c32PATH boot/TIMEOUT 50label boothdd MENU LABEL Boot from first hard drive COM32 chain.c32 APPEND hd0

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

label linux menu passwd qwerty menu label Install/Boot Linux kernel boot/menu.c32 append pxelinux.cfg/linux

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

Тонкие клиенты / Thinstation Linux

Загрузка Thinstation LinuxЗагрузка Thinstation Linux

Следующим шагом научим запускать тонкие клиенты. Образ Thinstation Linux можно скачать готовый в виде сборки, можно взять конструктор для сборки и собрать самостоятельно. Можно качнуть с GitHub. Будь готов, что в последнем случае для подготовки образа потребуется около 3 Гбайт свободного места и времени в районе часа. Подготовка образа из Git хорошо описана в статье на сайте quaded.com. Я взял сборку с сайта nixts.org. В образе, который мы используем, много «ненужных» файлов, потому что там сразу и загрузчик, и дефолтные конфиги. Берем ядро и образ файловой системы (initrd и vmlinuz), которые складываем, например, в /var/lib/tftpboot/images/thinstation/. Файлы конфигураций (thinstation.conf.network, thinstation.hosts, thinstation.conf-user) располагаем в корневом каталоге TFTP-сервера! Thinstation позволяет при загрузке учитывать MAC-адреса, IP-адреса, определять имя и группировать клиентов, в зависимости от параметров регулировать загрузку, например уводить на разные RDP- или VNC-серверы, сессии. Это позволяет, например, наклепать кучу виртуалок с десктопными операционными системами и посадить каждого клиента на отдельную виртуалку. Для каждого клиента можно также отдельно задавать настройки доступа к локальным устройствам: принтерам, флешкам, дискам, приводам и так далее. В общем, каждый ограничен только своей фантазией, благо вариантов использования с описанием настроек в сети навалом.

Настройка параметров развертывания

Чтобы использовать инициируемое PXE развертывание ОС, необходимо настроить его на предоставление запросам на загрузку PXE доступа к ОС. Настройте доступные операционные системы на вкладке Параметры развертывания в свойствах развертывания. Для параметра Сделать доступной для выберите один из следующих вариантов:

  • Клиенты Configuration Manager, носители и PXE

  • Только носители и PXE

  • Только носители и PXE (скрытые)

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: