Boot windows setup from network

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

Содержание статьи

Сегодня автоматизируется все больше задач, для максимальной отдачи серверов все шире используют виртуализацию. Но устанавливать операционки по-прежнему приходится. Каждый делает это по-своему: у кого-то полные карманы различных образов на все случаи жизни, кто-то по старинке носит с собой «барсетку» с дисками, а то и две. Как правило, администраторы выполняют эту работу с невеликим удовольствием. Давай посмотрим, как сократить время на тривиальные задачи, как научить компьютеры устанавливать системы самостоятельно, вообще без участия админа, используя при этом только локальную сеть.

Итак, сегодня мы научимся: устанавливать Windows и Linux по сети, грузить небольшие ISO-образы, полезный софт (всяких там Касперских, Акронис, WinPE, мемтесты), разворачивать тонкие клиенты и рулить ими. Чтобы, например, бухгалтер, работающая с 1С по RDP, не прибила тебя за то, что у нее слетела винда, а отчет нужно было подготовить еще вчера. Или скупой начальник, который не хочет обновлять свой комп, восхитился твоим профессионализмом, когда увидит, как на стареньких компах летает Windows 8. В достижении наших коварных целей нам поможет сервер, предоставляющий загрузку по сети (PXE).

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

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

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

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

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

Началось все с необходимости иметь под рукой инструмент для удаленной установки 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.

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

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

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

Обрати внимание, параметр 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. Класс pxeclients, а именно параметр filename — это имя файла загрузчика, расположенного в корневой папке TFTP-сервера, в нашем случае /var/lib/tftpboot/pxelinux.0, на сервере с адресом 192.168.0.10.

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 и иметь вид

Читайте также:  Windows hello сбросить настройки

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

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

Раздел Linux. Готовим на примере Ubuntu 14.04

Первым пунктом ставим возврат в предыдущий раздел меню. Далее будет установка Ubuntu 14.04 i386 и amd64. Скачиваем образ Ubuntu 14.04 mini.iso, распаковываем, находим прямо в корне два файла: linux и initrd.gz. Напомню, что корневой каталог сервера для загрузки — это каталог TFTP-сервера /var/lib/tftpboot . Исходя из этого, располагаем файлы внутри tftpboot. В случае с установкой Ubuntu, например, в images/linux/ubuntu14/i386 для x86 и в /images/ubuntu14/amd64 для x64 архитектур соответственно. Заметь, пути указаны относительно каталога FTFP-сервера. Здесь можно задавать параметры для установки, для автоматизации процесса установки. Например, задать параметр установки в качестве окружения рабочего стола при установке Debian KDE: append desktop=kde . Следующим шагом запустим маленький SliTaz. Грузить ISO-образы будем через memdisk. Из листинга сверху видно раздел slitaz, memdisk у нас расположен в каталоге boot, сам образ — в каталоге images. Параметры аналогичны тем, что используются в мультизагрузочных дисках.

Тонкие клиенты / 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-серверы, сессии. Это позволяет, например, наклепать кучу виртуалок с десктопными операционными системами и посадить каждого клиента на отдельную виртуалку. Для каждого клиента можно также отдельно задавать настройки доступа к локальным устройствам: принтерам, флешкам, дискам, приводам и так далее. В общем, каждый ограничен только своей фантазией, благо вариантов использования с описанием настроек в сети навалом.

Acronis

Продукты Acronis загружаются аналогично инсталляторам Linux-систем. Скачал в Сети первый попавшийся образ Acronis, исключительно в научных целях. Распаковал. Нас интересуют только два каталога: ADD12 и ATI2015. Внутри каждого каталога видим по два файла с одинаковым именем и разным расширением. Это сделано для загрузки на 32-битных и x64-системах. Если открыть файл menu.lst того же образа, можно посмотреть, что чему соответствует. Для удобства складываем True Image и Disk Director аналогичным образом. Создаем папку acronis в рабочем каталоге ( /var/lib/tftpboot ). В него копируем ADD12 и ATI2015 со всем содержимым. Для удобства продукты Acronis выносим в отдельный раздел меню, так же как и раздел Linux. В pxelinux.cfg/default добавляем:

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

Windows PE

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

Читайте также:  There was an error opening the windows firewall

Заключение

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

Александр «Plus» Рак

Участник сообщества OmskLUG. Инженер отдела электронного взаимодействия МКУ «Информационно-технического управления».

How to set up computer to boot from a network drive

Not taking into account any specific computers.

  • How do I set up a computer to boot from a network drive?
  • How do I set up the network drive to allow itself to be booted from.

I am open to using either Windows Server or any Linux Server distro. Whichever is easier.

The images that I want to boot from on the network drive will be Windows images. The computer will basically become a thin client.

Update:

This is basically what I wanted to do, I just need to know how to do it.

Deploy an already created image of Windows 7 from Windows Server 2008 R2 over the network.

The Client will utilize the OS provided by the server, but all the resources will be used locally such as CPU and RAM.

If it is easier to deploy the image from Linux then Windows, then I will use that instead.

3 Answers 3

If I understand this correctly, you want a system where a server sends a packaged OS to a local machine each time the system boots up. You don’t want a thin client since all processing needs to happen on the local machine and not a server. You don’t want a traditional OS since that will write files to the local hard drive.

What it should like you want is the windows equivalent of a network hosted Linux live CD. While there are solutions that perform this action, they are geared towards system administrators who want to fix problems. Each one is setup slightly differently so check out the products website for more info. (source)

As for a network environment of a windows 7 workstation, that does not exist yet. The only licensing models I know of are as follows:

  • Windows Home / Pro / Enterprise — Local install
  • Windows Thin Client — Remote terminals that connect to a server.
  • Windows embedded — Special Kiosk installs that have the OS on local hardware.

This is all based off assumptions made when reading your question. I apologize in advance if this doesn’t apply to your situation.

My recommendation based on the comment that this is a home environment is to just use a traditional installation on local hard drives. There are a lot of tools to do automated deployments, maintenance, and management. Most software has silent installation methods that can allow you to bring back a dead system with only a few minutes of interaction and a few hours of processing time.

Treat the computers as if they were in a small business and you’ll find a lot of tools out there to make supporting the environment easier.

BootDev

Создание загрузочных дисков и прочие полезные мелочи

Страницы

2020-01-02

Загрузка по сети: UEFI PXE

В предыдущих статьях, по теме загрузки по сети, все используемые загрузчики, и загрузка с использованием технологии PXE происходила в Legacy-режиме, то есть в режиме старого BIOS. Я решил дополнить данную тему, рассмотрев загрузку по сети в современном стандарте UEFI.

Содержание

В Чем Отличия

Кардинальных отличий в реализации загрузки с использованием технологии PXE для UEFI BIOS нет. Я даже скажу больше, все необходимые настройки полностью идентичны. Но, обо всем по порядку.

Технология PXE базируется на трех составляющих:

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

2. DHCP-сервер. Предназначен для автоматической выдачи сетевых настроек в сети без необходимости их прописывания вручную на сетевых машинах обладающих соответствующим DHCP-клиентом. То есть, вы подключаете машину с включенным DHCP-клиентом в сеть в которой присутствует DHCP-сервер, и можно использоваться сетью. Хочу так же заметить, что кроме стандартных настроек сети (IP-адресс, маску подсети, Шлюз, и IP-адрес DNS-сервера), DHCP-сервер участвующий в PXE составляющей, должен передавать информацию о TFTP-сервере, и об имени главного исполняемого загрузочного файла.

Читайте также:  Редакторы изображений для линукс

3. Загрузочный клиент. Программный код вшитый в прошивку сетевой карты или UEFI BIOS материнской платы. Его задача получить необходимые настройки сети, выполнить соединение с TFTP-сервером, и загрузить с него загрузочный файл и выполнить его

Сервера TFTP и DHCP при этом могут быть запущенны на совершенно разных машинах, единственное требование, чтобы они располагались в одной сети.

Все вышесказанное характерно как для Legacy BIOS, так и для UEFI BIOS. Единственное отличие для UEFI PXE, это указание исполняемого файла в настройках DHCP-сервера предназначенного именно для UEFI BIOS.

Учитывая все вышесказанное, настоятельно рекомендую прочитать про установку и настройку DHCP и TFTP сервера, а так же про установку и настройку загрузчика Windows Boot Manager на TFTP-сервер. Данные статьи полностью актуальны на данный момент времени, и информация из них будет использоваться далее по тексту.

Необходимые Программы

Для осуществления загрузки в UEFI PXE потребуется следующие программы и файлы:

1. Программа Tftp32(64). Компактный инструмент сочетающий в себе TFTP, DHCP, DNS, и Syslog службы.

2. Программа BOOTICE. Невероятно мощный инструмент для создания и работы с загрузочными дисками.

3. Установочный *.ISO образ операционной системы Windows. Скачать его можно на официальном сайте Microsoft, абсолютно бесплатно, и без какой-либо регистрации. Скачивание происходит через программу MediaCreationTool.

4. Один из загрузочных WinPE, мультизагрузочной сборки 2k10.

Настройка TFTP-сервера

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

В данном скринкасте отображена настройка TFTP-сервера, с корневой директорией D:\TFTP, и настройка DHCP-сервера, но без указания имени исполняемого загрузочного файла.

Имя загрузочного файла будет добавлено в следующем разделе.

Директория D:\TFTP на данный момент пуста.

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

Установка UEFI-загрузчика

В качестве загрузчика будет выступать Windows Boot Manager (BOOTMGR). Установка данного загрузчика на TFTP-сервер так же рассматривалась ранее. Принцип полностью схож, различаются лишь копируемые файлы.

Первым делом, копируем из установочного *.ISO образа операционной системы Windows, папку \efi\microsoft\boot в корневую директорию TFTP-сервера D:\TFTP.

Следующим, копируем файл \efi\boot\bootx64.efi, так же в корневую директорию TFTP-сервера.

И последним, копируем файл \boot\boot.sdi в директорию boot (D:\TFTP\boot) корневой директории TFTP-сервера.

Установочным ISO-образом ОС Windows на этом покончено. Переходим к мультизагрзочному диску 2k10.

Создадим в корневой папке TFTP-сервера директорию sources (D:\TFTP\sources).

Скопируем в созданную директорию файл \2k10\WinPE\W1064PE.wim, из загрузочного ISO-образа мультизагрузочной сборки 2k10.

Переименуем скопированный файл в boot.wim.

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

Запускаем BOOTICE. Открываем в нем конфигурационный файл скопированного загрузчика D:\TFTP\boot\bcd. И выполняем действия приведенные в скринкасте.

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

Осталось только вписать имя исполняемого загрузочного файла в конфигурацию DHCP-сервера. Данным файлом в нашем случае является D:\TFTP\bootx64.efi.

Загрузчик, и тестовое содержимое на этом установлены.

Загрузка Тестового BOOT.WIM

Тестировать загрузку по сети будем в виртуальной машине VMware Workstation Player.

Тестовая виртуальная машина обязательно должна смотреть в вашу реальную сеть.

Запускаем программу Tftp32(64), если она была закрыта. Далее стартуем виртуальную машину и выбираем загрузку по сети в UEFI-режиме.

Начнет выполняться UEFI PXE клиент.

После получения всех необходимых сетевых настроек, запустится скачивание загрузчика и всех необходимых ему файлов с нашего TFTP-сервера.

После скачивания всех необходимых файлов в оперативную память виртуальной машины, последует их запуск. В моем случае, будет запущена WinPE взятая с мультизагрузочного диска 2k10.

Загрузка в UEFI PXE режиме прошла успешно.

В статье было рассмотрено: Как осуществить загрузку в UEFI PXE режиме? Как настроить программу TFTP32(64) для загрузки в UEFI-режиме? Как установить UEFI-загрзчик на TFTP-сервер?

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

Оцените статью