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.
Как говорится, аппетит приходит во время еды: намеченное не успели реализовать, а к плану добавился еще ряд «хотелок». В итоге список получился весьма внушительным.
- Тонкие клиенты на базе Thinstation Linux.
- Раздел Linux.
- Установка Ubuntu 14.04 x86.
- Установка Ubuntu 14.04 x64.
- Установка Ubuntu 12.04 x86.
- Установка Ubuntu 12.04 x64.
- Загрузка SliTaz Live CD.
- Раздел Windows.
- Установка Windows 2012.
- Установка Windows 7.
- Acronis.
- Windows PE с пакетом полезного ПО.
- Acronis True Image.
- Legacy BIOS.
- UEFI.
- Acronis Disk Director.
- Legacy BIOS.
- UEFI.
- Касперский Rescue v 10.
- ERD Commander от 5 до 8 через ISO-образ.
- 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 и иметь вид
На этом этапе загрузчик должен работать и иметь единственный пункт меню «Загрузка с первого жесткого диска». Далее необходимо создать подменю. Чтобы не путаться и не городить огромные файлы, рекомендую вынести подпункты в отдельные файлы меню, например так:
Все, что относится к разделу меню 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 вносим изменения:
Заключение
На этом всё. В следующей статье мы научимся подготавливать и добавлять Windows-образы, сетевой установке в ручном и автоматическом режимах. Добавим Kaspersky Rescue v10, ERD Commander, именуемый MSDaRT. Разберемся, как запускать диагностические утилиты на примере memtest, а также покажем, как украсить меню загрузки.
Александр «Plus» Рак
Участник сообщества OmskLUG. Инженер отдела электронного взаимодействия МКУ «Информационно технического управления».
AOMEI PXE Boot: Загрузка компьютеров по сети из файла образа диска
AOMEI PXE Boot: Загрузка компьютеров по сети из файла образа диска
Самые опасные сайты, которые НЕЛЬЗЯ открывать, но Вы наверняка уже пробовали
Ваш телефон Вас подслушивает: неоспоримые доказательства и способы спасения
Лучший антивирус для слабого ПК: он точно Вам нужен.
Нужен ли антивирус для Windows 10: 100% ответ без гадания на кофейной гуще
Как избавиться от назойливых звонков с неизвестных номеров: прощаемся навсегда без сожалений
AOMEI PXE Boot представляет собой свободное программное обеспечение для загрузки компьютеров с ISO по локальной сети. Будучи очень простой в использовании, эта программа позволяет использовать загрузочный образ диска (ISO) для удаленной загрузки нескольких компьютеров, при условии, что они подключены к одной локальной сети. Это делает AOMEI PXE Boot чрезвычайно полезным инструментом для таких задач, как удаленное развертывание и сопровождение приложений, особенно на предприятиях.
Работать с AOMEI PXE Boot довольно просто: вы устанавливаете программу на систему, которая будет использоваться в качестве сервера, монтируете ISO и ждете загрузки клиентских машин. И лучшая часть заключается в том, что AOMEI PXE Boot поддерживает синхронную загрузку нескольких компьютеров одновременно. Давайте узнаем больше об этой замечательной программе, и выясним, как вы можете использовать ее для загрузки компьютеров с ISO по проводной локальной сети.
AOMEI PXE Boot: основное назначение и несколько слов о Windows PE
Важно отметить, что AOMEI PXE Boot в первую очередь предназначен для устранения проблем с компьютерами в сети. Вы можете использовать программу для загрузки нефункционирующей системы в ограниченной среде. Для этой цели AOMEI PXE Boot лучше всего работает с загрузочными образами дисков Linux, или Windows PE. Последняя является операционной системой с ограниченными службами, которая используется для загрузки компьютера в восстановительных или установочных целях. Основанная на ядре Vista, Windows PE не является полноценной операционной системой. Вместо этого она предоставляет безопасную среду для устранения неполадок с компьютером и восстановления его рабочего состояния.
Нет абсолютно никаких оснований полагать, что AOMEI PXE Boot не будет работать с любым другим образом диска. Во время тестирования я смог удаленно загрузить на клиентской системе Damn Small Linux (DSL), используя загрузочный ISO-образ.
Как загрузить компьютеры с помощью ISO по локальной сети
Теперь, когда вы знаете о AOMEI PXE Boot достаточно много, пришло время увидеть, как эта штука работает. Процесс, по сути, состоит из двух этапов. Первая часть включает в себя настройку клиентского компьютера для загрузки по сети, а вторая состоит из настройки и запуска приложения на системе, действующей в качестве сервера.
Обратите внимание, что оба компьютера должны быть подключены к одной сети. В моем случае сервер был подключен к сети по беспроводному каналу, но клиентская машина была подключена проводом.
Часть 1: Настройка клиентского компьютера(ов) для сетевой загрузки
Как и предполагает название, первое, что необходимо сделать, это настроить клиентский компьютер или компьютеры для загрузки через проводную сеть. Чтобы сделать это, вам нужно получить доступ к меню BIOS компьютера. Ниже говорится о том, как это сделать (процесс более или менее такой же, независимо от производителя компьютера):
1. Включите клиентский компьютер и нажмите клавишу для доступа к меню BIOS (обычно Del, Esc, F8 или F12). В BIOS перейдите в подменю «Boot» и в разделе «Boot Options Priorities» выберите «PXE» (на некоторых компьютерах «Legacy LAN», «Realtek PXE B02 D00», «Network boot from Intel» и т.д.) в качестве первого загрузочного устройства. Вам также может потребоваться включить опцию PXE ROM, если она отключена.
2. AOMEI PXE Boot поддерживает только режим загрузки Legacy, поэтому вам также нужно отключить опцию UEFI Boot, если она поддерживается материнской платой компьютера. Эта опция может быть найдена в подменю Boot.
Это все, что нужно сделать на клиентском компьютере. Не забудьте сохранить изменения, внесенные в конфигурацию BIOS. Теперь давайте перейдем к серверу.
Часть 2: Загрузка ISO и запуск приложения на компьютере-сервере
Эта часть на самом деле еще проще. Для начала, скачайте и установите AOMEI PXE Boot (около 5 МБ) на компьютер, который будет использоваться в качестве сервера. В дополнение к этому вы также должны скачать загрузочный образ диска для загрузки клиентского компьютера или компьютеров. Шаги ниже объясняют, что от вас требуется:
1. Запустите AOMEI PXE Boot. На первом экране программы выберите опцию «Boot from custom image file» и перейдите к вашему ISO-файлу (вы также можете использовать другой вариант для загрузки Windows PE или Linux ISO с сайта компании AOMEI, если вы хотите). Когда образ будет выбран, нажмите на кнопку «Start Service», чтобы запустить службу.
2. Теперь в окне AOMEI PXE Boot будет отображаться информация об активности, происходящей на сервере и клиентских компьютерах. Больше на сервере делать ничего не нужно. Чтобы увидеть реальные действия, давайте переместимся дальше. И, само собой разумеется, приложение и, конечно, сервер, должны быть запущены.
Вам только остается запустить клиентский компьютер и дождаться, пока он загрузится по сети, используя ISO-образ, который был выбран вами через AOMEI PXE Boot на компьютере-сервере. Вот полностью рабочий дистрибутив Damn Small Linux, работающий на клиентском компьютере:
Заключительные слова
Если вы администратор сети, и ищите простой и эффективный способ (и без излишеств) для удаленного развертывания и управления ОС, AOMEI PXE Boot может быть именно тем, что вам нужно. Это качественный инструмент, который до смешного прост в настройке и работает на удивление хорошо.