Leon-Killer22 Posted November 20, 2014 Report Share Posted November 20, 2014 Здравствуйте, товарищи! Просьба не пинать - это моя первая попытка сделать небольшое подобие мануала. Решил поделиться опытом установки и первичной настройки PXE-сервера с использованием TFTP-сервера и загрузчиков grub4dos. Планирую по мере успешных решений поставленных задач дополнять эту тему - надеюсь, кому-то это поможет. Моя инфраструктура: - Домен контроллер (Win 2012 - AD, DNS, DHCP и др.) - Сервер с виртуалками ESXi - 200+ рабочих станций Остальное описывать не буду, т.к. это к делу не относитсяю Решил настроить PXE-сервер для загрузки по сети образов операционных систем, антивирусов, утилит и т.д. По ходу изучения темы встречал различные материалы. В основном, всё про загрузку с флешки, винта, а про сетевой вариант - всё как-то не совсем ясно. Оффтоп Быть может, плохо читал? :) Остановился на самом простом, на мой взгляд, варианте - Windows 2012 + TFTPD32. О программе TFTPD32: Tftpd32 — небольшая программа для Windows с открытым исходным кодом, включающая в себя простые в настройке DHCP, TFTP, SNTP и Syslog серверы, а также TFTP клиент, поддерживающий стандарт TFTPv2. Поддерживает IPv6. На официальном сайте также доступен вариант этой программы для 64-разрядных ОС Tftpd64. DHCP сервер без ограничений поддерживает как автоматическую, так и статическую раздачу IP-адресов. TFTPD, в частности, может быть использована как часть серверного ПО для организации загрузки бездисковых станций. Для использования в этом качестве для загрузки Windows он рекомендован проектом PXE. Суть, вкратце, следующая: Сервер: 0. На рабочую винду в сети ставится программа TFTPD32. 1. Производятся некоторые настройки в TFTPD32(папки, DHCP, DNS). 2. В папку программы копируют те образы, которые нужно запускать по сети. 3. В папку программы копируют загрузчик - у меня grub4dos. 4. Создается файлик - меню загрузки в grub4dos. Клиент: 0. Запускается штатный Network Boot Agent. 1. Получает IP адрес по DHCP с информацией о адресе PXE-сервера. 2. Соединяется с PXE-сервером и загружается и на экране возникает меню grub4dos с вариантами для загрузки. 3. Дальше - как при работе с загрузочной флешкой на grub4dos. Я постараюсь изложить максимально понятно информацию из первоисточника, которым пользовался сам. (ссылка) Приступим! Подготовка: 0. Скачиваем программу TFTPD64 (я использую версию 4.00, tftpd64 standard edition) и распаковываем/устанавливаем на компьютер (рекомендую создать в корне диска папку "tftpd" и распаковать/установить в неё) - у меня это будет C:\tftpd32\). 1. Скачиваем grub4dos 0.4.4 (последняя версия на момент написания моей мануалки). 1. Создаём папку C:\tftpd32\root\ - здесь будут наши образы, которые мы и будем запускать по сети. 2. Копируем из архива grub4dos файл grldr в папку C:\tftpd32\root\ 3. Создаём ПАПКУ C:\tftpd32\root\menu.lst\ (здесь будет "default" файлик-меню с выбором вариантов загрузки) Вариант 1. Настройка PXE-сервера в случае, если у вас нет DHCP-сервера в сети (в связи с тем, что у меня в сети уже присутствует DHCP-сервер 100% правильность настроек проверить не могу - пишите, если получилось/не получилось): 0. Открываем файл C:\tftpd32\tftpd32.exe (или C:\tftpd32\tftpd64.exe - у кого какая версия) 1. Заходим в настройки (средняя кнопка Settings в самом низу окна программы) 2. Во вкладке "GLOBAL" выбираем, какие службы будут выполняться программой - "TFTP Server" и "DHCP server". Так же можно включить поддержку IPv6-адресов. 3. Во вкладке "TFTP": - Base directory - выбираем папку, где будут храниться образы - C:\tftpd32\root\ - в TFTP Security выбираем Standard - в Advanced TFTP Options выбираем "Option negotiation", "Show Progress bar", "Translate Unix file names", "Allow '\' As virtual root" 4. Во вкладке DHCP: - IP pool starting address - начальный IP-адрес, раздаваемый сервером - Size of pool - количество адресов, которое разрешено к выдаче сервером (1 = 1 адресу, 5 = пяти адресам и т.д.) - Boot file - здесь мы указываем файл загрузчика. Для grub4dos это "grldr" - дальше стандартные сетевые настройки - DHCP Options я оставил по умолчанию 5. Нажимаем OK, чтобы сохранить настройки. В появившемся окошке нас предупреждают о том, что необходимо перезагрузить программу для применения настроек Вариант 2. Настройка PXE-сервера в случае, если у вас уже есть DHCP-сервер в сети 0. Открываем файл C:\tftpd32\tftpd32.exe (или C:\tftpd32\tftpd64.exe - у кого какая версия) 1. Заходим в настройки (средняя кнопка Settings в самом низу окна программы) 2. Во вкладке "GLOBAL" выбираем, какие службы будут выполняться программой - "TFTP Server". Так же можно включить поддержку IPv6-адресов. 3. Во вкладке "TFTP": - Base directory - выбираем папку, где будут храниться образы - C:\tftpd32\root\ - в TFTP Security выбираем Standard - в Advanced TFTP Options выбираем "Option negotiation", "Show Progress bar", "Translate Unix file names", "Allow '\' As virtual root" 4. Нажимаем OK, чтобы сохранить настройки. В появившемся окошке нас предупреждают о том, что необходимо перезагрузить программу для применения настроек 5. Необходимо указать опции 66 и 67 в настройках существующего DHCP-сервера (подробное описание опций смотрите в Google): - 66 - это IP-адрес PXE-сервера - 67 - это имя файла загрузчика - для grub4dos указываем grldr С минимальной настройкой закончили. Теперь переходим к клиентской части. Нужен ПК, у которого есть встроеный Network Boot Manager. Подойдут так же и виртуальные машины, если они смогут "достучаться" до нашего сервера: Выбираем загрузку по сети и далее у нас проходит загрузка: - получение IP-адреса -поиск файла загрузки меню - командная строка загрузчика grub Если у вас появилась командная строка - всё настроено верно. Скоро напишу описание файла с меню для загрузчика. В принципе, если кто-то делал загрузочные флешки типа RMPrepUSB для grub4dos - можете экспериментировать. Файл меню default в папке C:\tftpd32\root\menu.lst\ выглядит так: title XP setup from iso map (hd0) (hd1) map --mem (pd)/firadisk.ima (fd1) map --mem (md)0x6000+800 (fd0) map --mem (pd)/win-xp-sp3-pro.iso (0xff) map --hook dd if=(fd1) of=(fd0) count=1 chainloader (0xff) title Memtest+ map --mem (pd)/memtest86.5.01.iso (hd32) map --hook root (hd32) chainloader (hd32) boot Файлы образов (firadisk.ima, win-xp-sp3-pro.iso, memtest86.5.01.iso) должны быть в папке C:\tftpd32\root\ Завтра постараюсь продолжить... П.с. Коментарии приветствуются! 1 Quote Link to comment Share on other sites More sharing options...
kvazimoda Posted November 21, 2014 Report Share Posted November 21, 2014 В качестве загрузчика рекомендую использовать Syslinux. Он побольше Груба умеет, да и с грубом у меня был косяк, что на какой-то сетевой карточке он не работал, поэтому сразу отказался от него. Вообще, в среде Линукса для сетевой загрузки, похоже, стандартом считается Syslinux, не думаю, что это нельзя применить и для виндового сервера. Quote Link to comment Share on other sites More sharing options...
Leon-Killer22 Posted November 21, 2014 Author Report Share Posted November 21, 2014 В качестве загрузчика рекомендую использовать Syslinux. Он побольше Груба умеет, да и с грубом у меня был косяк, что на какой-то сетевой карточке он не работал, поэтому сразу отказался от него. Вообще, в среде Линукса для сетевой загрузки, похоже, стандартом считается Syslinux, не думаю, что это нельзя применить и для виндового сервера. Согласен с вами, @kvazimoda. Syslinux действительно более функционален, однако с ним еще не работал, поэтому решил сначала попробовать с grub4dos, т.к. его более-менее знаю и понимаю. Что же касается вопроса использования Syslinux на Windows-системах с TFTP сервером - пойдёт без проблем. Quote Link to comment Share on other sites More sharing options...
kvazimoda Posted November 21, 2014 Report Share Posted November 21, 2014 Согласен с вами, kvazimoda. Syslinux действительно более функционален, однако с ним еще не работал, поэтому решил сначала попробовать с grub4dos, т.к. его более-менее знаю и понимаю. Всё же попробуйте и разберитесь с ним, там не так уж всё и сложно :) Я тоже, когда впервые пробовал загрузку по сети, использовал GRUB, правда Linux версию. Как раз тогда и наткнулся на то, что на виртуальной машине работает, а пробую на реальной - не может скачать конфиг, т.к. не видит сетевуху. Что же касается вопроса использования Syslinux на Windows-системах с TFTP сервером - пойдёт без проблем. Да это то понятно, он же не выполняется на сервере, а передаётся клиенту. :) Quote Link to comment Share on other sites More sharing options...
tolik5555 Posted March 16, 2017 Report Share Posted March 16, 2017 Ну и где продолжение... re -Если у вас появилась командная строка - всё настроено верно. Командная строка появилась и все.... файлик меню так и не увидел. Куда его ложить. Если как описано то сделал так или есть нюанс??? Quote Link to comment Share on other sites More sharing options...
Leon-Killer22 Posted May 18, 2017 Author Report Share Posted May 18, 2017 В 16.03.2017 в 13:27, tolik5555 сказал: Командная строка появилась и все.... файлик меню так и не увидел. Куда его ложить. Если как описано то сделал так или есть нюанс??? Файл меню необходимо разместить согласно пункту 3: Цитата 3. Создаём ПАПКУ C:\tftpd32\root\menu.lst\ (здесь будет "default" файлик-меню с выбором вариантов загрузки) Есть более удобное и функциональное ПО (работает на виртуальной машине): Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.