Додаємо WDS універсальності

Доброго дня, шановні хабра-жителі!

Метою цієї статті є написання невеликого огляду можливостей розгортання різних систем через WDS (Windows Deployment Services)
У статті наведено короткі інструкції для розгортання Windows 7 x64, Windows XP x86, Ubuntu x64 та додавання таких корисних інструментів у завантаження по мережі як Memtest та Gparted.
Історія розповідатиме в порядку ідей, що приходять мені в голову. І починалося все з Microsoft.

А тепер сама історія:
Нещодавно мені спала на думку здорова ідея розгортати на роботі системи за допомогою WDS. Якщо за нас хтось робить роботу, то це приємно. А якщо при цьому ми дізнаємося про щось нове — це приємно в подвійні. Не буду докладно зупинятися на описі установки ролі WDS — Microsoft все зводить до Далі-Далі та статей на цю тему — гори. І коротко розповім про роботу з образами Windows із зупинкою на тих моментах, які викликали у мене труднощі. Більш детально будуть описані системи не від Microsoft (заради чого стаття і починалася).
Приступимо.
Сервер, який виступатиме в ролі сховища образів та координатора дій, має Windows Server 2008 R2 на борту. Для коректної роботи цієї служби потрібні такі ролі як DHCP та DNS. Та й AD – для введення машинок у домен. (Всі ці ролі не обов'язково тримати на одній машині, вони можуть бути розмазані по всій структурі. Головне, щоб коректно працювали)

1. Налаштування WDS

Додаємо необхідні ролі та швиденько ліземо в консольку WDS, ініціалізуємо наш сервер і бачимо наступне:
Додаємо WDS універсальності

  • Встановити зображення - Образи установки. Налаштовані, гарні системи, які ми й накатуватимемо. Для зручності можна додати кілька груп за типом систем: Windows 7, XP або за типом завдань - IT Dept, Client Dept, Servers
  • Boot Images - Образи завантаження. Те, що вантажиться на машину в першу чергу і дозволяє робити з нею будь-які дії. Найперше туди йде той, що знаходиться на інсталяційному диску (для Windows 7 - це папка sources і файлики install.wim або boot.wim).
    А ось далі з них можна робити будь-яке цікаве:

    • Образ захоплення або образ запису — наш основний інструмент дозволяє робити копію налаштованої системи, яка була попередньо оброблена sysprep і є нашим шаблоном.
    • Образ виявлення — дозволяє заливати образи налаштованих систем на комп'ютери, що не підтримують завантаження по мережі.

  • Pending Devices — пристрої, які очікують на схвалення адміністратора на установку. Ми ж хочемо знати, хто ставить нашу красу собі на комп'ютер.
  • Багатоадресні передачі - Багатоадресне розсилання. Використовується для встановлення одного образу великої кількості клієнтів.
  • драйвери - Драйвера. Допомагають додати до образів на сервері необхідні драйвера і уникнути таких помилок:
    Додаємо WDS універсальності
    Після додавання драйверів на сервер WDS їх потрібно додати до потрібного способу завантаження.

Так, і ще – під кожну розрядність системи потрібно робити свої завантажувачі та установники. За різноманітність у зоопарку доводиться платити.
Насправді, наш WDS вже готовий. Ми можемо завантажитись по мережі з машини та побачити віконце вибору з нашими образами завантаження.
Не описуватиму всі етапи підготовки ідеального образу, а лише залишу посилання на статтю, за якою робив сам: Тиць для Windows 7 ( У мене була чомусь встановлена ​​стара версія WAIK - 6.1.7100.0, в ній не можна було створювати файл відповідей для Windows 7 SP1. Потрібна остання на даний момент - 6.1.7600.16385)
І ось ще інструкція з підготовки Windows XP для WDS. Теж не будемо докладно писати – найцікавіше у нас у другій частині!

2. Універсальний завантажувач

Це чудово, що у нас тепер є така система. Користуватись їй — одне задоволення. Але чи не можна ще більше полегшити собі життя?
Хочу ставити через неї Linux!
Насамперед, як багато хто з вас пам'ятають - установка паралельно вінди та убунти нічим хорошим для віндового завантажувача не закінчується. Його витісняє універсальний GRUB.
Тут так само. Нам потрібний універсальний завантажувач, знайомтеся - це PXELINUX
1) Завантажуємо останню версію (на момент написання статті це 5.01
Нас цікавлять ці файли:
corepxelinux.0
com32menuvesamenu.c32 (можна брати menu.c32 для текстового інтерфейсу під час завантаження)
com32chainchain.c32
У всіх посібниках з використання цього завантажувача говорять, що з цими трьома все працює. Мені довелося додати ще ldlinux.c32, libcom.c32 та libutil_com.c32. Можна зробити так - скопіювати рекомендовані та запустити. На який файл лаятиметься - той копіювати в папку.
Ще нам для завантаження iso потрібен файл memdisk. Теж кладемо його в цю папку
2)Кладемо їх у папку, де у вас зберігаються всі образи WDS. А саме сюди - RemoteInstallBootx64 (у нас буде тільки встановлюватися тільки 64, для 86 помістіть такі ж файли і в ту папку теж.)
3) Перейменуйте pxelinux.0 на pxelinux.com
4) Створимо папку pxelinux.cfg для файлу з конфігурацією і сам файл (вже всередині цієї папки природно) - default (без розширення!) наступного змісту:

ЗА ПРОМОВЧАННЯМ vesamenu.c32
Підказка 0
NOESCAPE 0
ALOWOPTIONS 0
# Час очікування в одиницях 1/10 с
ТАЙМ-АУТ 300
MENU MARGIN 10
MENU ROWS 16
МЕНЮ TABMSGROW 21
MENU TIMEOUTROW 26
КОЛЬОР МЕНЮ МЕЖА 30;44 #20ffffff #00000000 немає
MENU COLOR SCROLLBAR 30;44 #20ffffff #00000000 none
КОЛЬОР МЕНЮ НАЗВА 0 #ffffffff #00000000 немає
MENU COLOR SEL 30; 47 #40000000 #20ffffff
MENU BACKGROUND pxelinux.cfg/picture.jpg #picture 640×480 for background
МЕНЮ НАЗВА Оберіть свою долю!

LABEL wds
MENU LABEL Windows Deployment Services (7, XP, Boot images)
ЯДРО pxeboot.0

LABEL local
МЕНЮ ЗА ПРОМОВЧАННЯМ
МІТКА МЕНЮ Завантаження з жорсткого диска
LOCALBOOT 0
Type 0x80

5) Зробимо копію файлу pxeboot.n12 та назвемо її pxeboot.0
6) Після цього необхідно навчити наш WDS вантажитися саме з універсального завантажувача. У 2008 це робилося через GUI, у 2008 R2 - через командний рядок. Відкриваємо та вводимо:

  • wdsutil /set-server /bootprogram:bootx64pxelinux.com /architecture:x64
  • wdsutil /set-server /N12bootprogram:bootx64pxelinux.com /architecture:x64

Виведення командного рядка:
Додаємо WDS універсальності
Все, завантажуємося і бачимо жаданий екран:
Додаємо WDS універсальності
Це базовий конфіг, його можна підправити під свої вимоги (логотип компанії, порядок завантаження та інше. Поки він вміє тільки передавати управління WDS і вантажитися знову з жорсткого диска. Давайте навчимо його вантажити Ubuntu!

3. Навчаємо орляти літати

Що нам треба було там? Ubuntu, Gparted? Додамо ще memtest для порядку.
Почнемо з найпростішого:
MemTest
Створимо в папці Boot/x64 WDS окрему папку для лінуксових файлів, наприклад Distr. І підпапки в ній для наших відповідних систем:
Додаємо WDS універсальності
Викачуємо iso mtmtest і додаємо в наш конфі завантаження (файл default) наступні рядки:

мітка MemTest
menu label MemTest86+
Kernel memdisk iso raw
initrd Linux/mt420.iso

Цим ми завантажимо наш невеликий образ на згадку і звідти ж запустимо. На жаль, з великими образами таке в мене не спрацювало.

Гапртед
Викачуємо останню версію, розпаковуємо iso образ і беремо три файлики - /live/vmlinuz, /live/initrd.img і /live/filesystem.squashfs
Що це за файли? (Можу помилятися у формулюваннях, велике прохання до читачів поправити якщо я помилюся)

  • vmlinuz (частіше можна побачити vmlinux) - стислий файл ядра
  • initrd.img – образ кореневої файлової системи (необхідний мінімум для завантаження)
  • filesystem.squashfs - самі файли, що використовуються в процесі роботи

Поміщаємо перші два файли в папку для завантаження (у моєму випадку це Bootx64DistrGparted), а третій - на IIS сервер (благо він уже піднятий для WSUSa).
Ліричний відступ - на жаль, прийом із завантаженням iso образу в memdisk з великими дистрибутивами мені не вдалося. Якщо раптом ви знаєте секрет успіху – це буде чудове рішення, яке дозволить швидко вантажити будь-яку систему із iso образу.
Додаємо filesystem.squashfs на IIS, щоб його можна було прочитати по мережі (не забудьте додати MIME мітку для цього розширення
Додаємо WDS універсальності
Тепер додаємо запис до нашого pxelinux.cfg/default:

LABEL GParted Live
MENU LABEL GParted Live
ЯДРО Distr/Gparted/vmlinuz
APPEND initrd=Distr/Gparted/initrg.img boot=live configuration union=aufs noswap nopromt vga=788 fetch=http://192.168.10.10/Distr/Gparted/filesystem.squashfs

Перевіряємо – працює!
Ubuntu 12.04
Я додав два можливі варіанти установки — повністю автоматичну (дякую користувачу маламути за статтю та в ручному режимі)
Завантажуємо файл з alternate установкою і видираємо звідти (як раніше) два файли - initrd.gz і linux і кладемо їх в Distr / Ubuntu
Додаємо у наш pxelinux.cfg/default рядки
для повністю ручної установки

LABEL Ubuntu
ЯДРО Distr/Ubuntu/linux
APPEND priority=low vga=normal initrd=Distr/Ubuntu/initrd.gz

А ось для автоматичної установки необхідний файл з налаштуваннями відповідей ( почитати можна тут) і покладемо ми його на наш веб-сервер. У мене рядок у завантажувачі виглядає так:

LABEL Автоматична інсталяція Ubuntu
ЯДРО Distr/Ubuntu/linux
APPEND initrd=Distr/Ubuntu/initrd.gz ksdevice=eth0 locale=ru_RU.UTF-8 console-setup/layoutcode=ru url=http://192.168.10.10/Distr/Ubuntu/preseed.txt

Корисність на майбутнє
Переглядаючи матеріал по темі та шукаючи відповіді на свої запитання, було виявлено чудова стаття від Олександр_Єрофєєв з описом завантаження Kaspersky Rescue Disk по мережі. На жаль, у мене не злетіло. Але інструмент дійсно корисний (ні-ні, та схоплять особливо завзяті користувачі чогось такого… Корисно мати такий інструмент під рукою)

Висновок

Ця стаття являє собою огляд можливостей, які надає вам роль WDS від Microsoft. Коли я затівав цю статтю — плани були грандіозні: найдокладніше HOWTO про всі аспекти завантаження представлених вище систем… Але коли став накопичуватися матеріал тільки за самим WDS — нитка розповіді заводила мене в якісь глибини, з якими ніхто й не зіткнеться, напевно… Тому було прийнято рішення поділитися короткими відомостями про те, що можна і, наскільки можна, посиланнями на добрі статті. Якщо читачам буде цікаво читати, чи мені раптом захочеться слави та грошей поповнити скарбничку Хабрахабра статтями — можна детальніше зупинятися на кожному з етапів налаштування багатоцільового WDS сервера.
Хочеться ще раз подякувати авторам Олександр_Єрофєєв и маламути за їхній матеріал, який буде цікавий усім без винятку.
На Хабре природно вже були статті з цієї тематики, я постарався висвітлити питання з іншого погляду або доповнити його: Раз и два, але не було опубліковано
Дякую за увагу.
Слава роботам!

Джерело: habr.com

Додати коментар або відгук