Pxe вантажимо все мультизавантаження локальної мережі. Встановлення Linux PXE сервера для завантаження Windows PE

Сьогодні автоматизується все більше завдань, для максимальної віддачі серверів дедалі ширше використовують віртуалізацію. Але встановлювати операційки, як і раніше, доводиться. Кожен робить це по-своєму: у когось повні кишені різних образів на всі випадки життя, хтось по-старому носить із собою «барсетку» з дисками, а то й дві. Як правило, адміністратори виконують цю роботу із невеликим задоволенням. Давайте подивимося, як скоротити час на тривіальні завдання, як навчити комп'ютери встановлювати системи самостійно, взагалі без участі адміну, використовуючи при цьому тільки локальну мережу.

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

Будь-який системний адміністратор у заначці має універсальний USB-диск для екстреної реанімації комп'ютера. Погодься, було б куди краще мати ту ж функціональність, використовуючи лише мережну карту. Не можна не відзначити можливість одночасної роботи з кількома вузлами відразу. Отже, виходячи з наших потреб, ми маємо два шляхи вирішення: використовувати PXE або LTSP.

LTSP нам не дуже підходить: він покликаний вантажити по мережі ОС, встановлену на сервері, що дозволяє використовувати програми сервера LTSP. Це не зовсім те, що нам потрібне. PXE - інструмент для завантаження комп'ютера через мережу без використання локальних носіїв даних, так само як і LTSP. PXE дозволяє організувати мультизавантажувальне меню завантаження, аналогічне універсальному USB-реаніматору.


Що реалізовуватимемо?

Почалося все з необхідності мати під рукою інструмент для віддаленої установки 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.
  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. Розглядатимемо лише ті налаштування, які нас цікавлять у рамках теми. Насамперед встановимо все необхідне, попередньо зробивши всі оновлення:

Продовження доступне лише учасникам

Варіант 1. Приєднайтесь до спільноти «сайт», щоб читати всі матеріали на сайті

Членство у спільноті протягом зазначеного терміну відкриє тобі доступ до ВСІХ матеріалів «Хакера», збільшить особисту накопичувальну знижку та дозволить накопичувати професійний рейтинг Xakep Score!

Нагадуємо, що спроби повторити дії автора можуть призвести до втрати гарантії обладнання та навіть до виходу його з ладу. Матеріал наведено виключно з ознайомлювальною метою. Якщо ж ви збираєтеся відтворювати дії, описані нижче, радимо уважно прочитати статтю до кінця хоча б один раз. Редакція 3DNews не несе жодної відповідальності за будь-які можливі наслідки.

Пам'ятаєте, ми колись розглядали створення універсальної USB-аптечки для екстреного ремонту комп'ютера? В останній статті ми познайомилися із завантаженням по мережі та програмою DRBL. Ну а цього разу ми займемося створенням аналога мультизавантажувального носія, тільки завантажуватись ми будемо не з флешки, а по мережі за допомогою PXE. Робиться це досить просто. Як завжди, нам знадобиться машина під керуванням Ubuntu Server 11.10 з двома мережевими картами, яка виконуватиме роль сервера. У BIOS клієнтських машин має бути включена підтримка завантаження.

Щоб спростити собі завдання і не возитися окремо з установкою та налаштуванням різних мережевих служб типу DHCP- і TFTP-сервера, ми скористаємося більш універсальним рішенням - dnsmasq. Це легкий DNS/DHCP/TFTP-сервер, який чудово підходить для завантаження машин. Як і минулого разу, домовимося, що мережевий інтерфейс eth0 автоматично отримує IP-адресу від роутера і має доступ до Інтернету. У свою чергу eth1 дивиться у внутрішню мережу і має статичну IP-адресу 192.168.0.1. Відредагуйте налаштування мережі у файлі /etc/network/interfaces за допомогою текстового редактора nano, якщо ви цього ще не зробили.

Sudo nano /etc/network/interfaces

Наприкінці файлу додамо налаштування інтерфейсу eth1 та збережемо його (F2, Y, Enter).

Auto eth1 iface eth1 inet static address 192.168.0.1 netmask 255.255.255.0

Якщо необхідно дати доступ до мережі для локальних клієнтів, то доведеться зробити ще щось. По-перше, розкоментувати (прибрати # на початку) рядок net.ipv4.ip_forward=1у файлі /etc/sysctl.conf. По-друге, виконати кілька команд. Останню команду треба додати до кінця файлу /etc/rc.local перед рядком exit 0, щоб прокидання Мережі запускалося при старті.

Sudo sysctl -p sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Тепер треба встановити dnsmasq, а також кілька утиліт для полегшення роботи – файловий менеджер Midnight Commander та утиліти для розпакування ISO-образів та архівів ZIP/RAR/7ZIP.

Sudo apt-get install dnsmasq mc genisoimage unzip unrar p7zip-full

Приступаємо до налаштування dnsmasq.

Sudo nano /etc/dnsmasq.conf

Додаємо наприкінці наступні рядки:

Interface=eth1 dhcp-range=192.168.0.10,192.168.0.100,255.255.255.0,24h server=8.8.8.8 enable-tftp tftp-root=/pxe dhcp-boot=pxelinu

Що є що? Параметр interface вказує на те, з яким інтерфейсом буде працювати dnsmasq. У dhcp-range перші два параметри вказують початок і кінець діапазону адрес, що видаються клієнтським комп'ютерам, потім йде маска підмережі і час оренди адрес. У полі server вказуються IP-адреси вищих DNS-серверів (наприклад, провайдера), але за бажанням можна скористатися Google DNS або OpenDNS. Директива enable-tftp включає вбудований TFTP-сервер, а tftp-root вказується кореневий каталог для нього. Нарешті, в dhcp-boot прописується завантажувач, який віддаватиметься через мережу.

Збережемо налаштування та перезапустимо сервер, а також створимо необхідні папки та запустимо Midnight Commander (mc), де й продовжимо основну роботу. У /pxe/images/ зберігатимуться образи утиліт або дистрибутивів, які завантажуватимуться через локальну мережу. Каталог /pxe/pxelinux.cfg призначений для зберігання налаштувань PXE.

sudo mkdir -p /pxe/images/ sudo mkdir /pxe/pxelinux.cfg sudo service dnsmasq restart sudo mc

Насамперед треба отримати завантажувальні програми з проекту syslinux. Завантажте найсвіжіший архів у домашню папку. Команди можна набирати прямо в mc або для зручності перемикатися між консоллю та панелями поєднанням клавіш Ctrl+O. Завантажити файли найзручніше програмою wget. Наприклад, ось так:

Wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.05.tar.gz

Входимо до архіву, просто перемістивши виділення до нього і натиснувши Enter. З нього в директорію /pxe треба скопіювати кілька файлів - pxelinux.0 з папки /core, menu.c32 з /com32/menu та memdisk з однойменного каталогу.

Починаємо потихеньку заповнювати налаштування за замовчуванням pxelinux.

Sudo nano /pxe/pxelinux.cfg/default

Додамо до цього файлу наступні рядки:

DEFAULT menu.c32 TIMEOUT 600 MENU TITLE PXE BOOT MENU LABEL HDDBoot MENU LABEL Local Boot MENU DEFAULT LOCALBOOT 0

Взагалі, вся документація щодо формування параметрів завантажувачів syslinux, та завантажувального меню PXE зокрема, знаходиться в текстових файлах каталогу docs архіву syslinux. Розберемо ті параметри, які ми використовували. За замовчуванням запускається файл menu.c32, який відображає наше PXE-меню. У TIMEOUT вказується час очікування (1/10 с), після якого буде проведено завантаження пункту за замовчуванням. MENU TITLE містить заголовок нашого меню. Туди можна вписати все, що душа забажає.

Потім йде опис першого пункту меню. Кожному пункту для зручності поводження з ним надається мітка (LABEL). У MENU LABEL ім'я мітки, яке користувач побачить під час завантаження. MENU DEFAULT означає, що цей пункт із поточного меню буде запущено за замовчуванням. Ну а директива LOCALBOOT 0 вказує на те, що треба завершити роботу PXE і повернутись до звичайного завантаження комп'ютера. Краще залишити цей пункт для запуску за промовчанням.

Урізноманітним наш мультизавантажувач деякими утилітами. Візьмемо, наприклад, найвідомішу програму для тестування пам'яті Memtest86+. Завантажуємо з сайту архів із Pre-Compiled Bootable Binary. Зберігаємо з нього файл memtest.bin як memtest (без розширення!) у папку /pxe/images. Тут ми стикаємося з двома особливостями. По-перше, для набору syslinux ряд файлів (.0, .bin, .bs і так далі) повинні мати певний формат. Той же .bin для isolinux читається як завантажувальний сектор CD, а memtest.bin таким не є. По-друге, цей файл безпосередньо підтримує завантаження за допомогою syslinux, тому ми можемо сміливо вказати його як ядро, що запускається.

LABEL Memtest86+ MENU LABEL Memtest86+ KERNEL images/memtest

Ще один корисний варіант завантаження - використання memdisk. В цьому випадку носій (iso-образ, raw-образ дискети, образ HDD) повністю копіюється в оперативну пам'ять комп'ютера та подальше завантаження відбувається з нього. Ось приклад для запуску KolibriOS. З архіву з дистрибутивом треба скопіювати файл kolibri.img в папку /pxe/images, а в /pxe/pxelinux.cfg/default дописати наступні рядки.

LABEL Kolibri MENU LABEL KolibriOS KERNEL memdisk APPEND initrd=images/kolibri.img


Можна зробити «суворіше» — поставити в завантаження Hiren"s Boot CD. Вже можна здогадатися, що iso-образ треба зберегти як /pxe/images/hirens.iso. Природно, що на самому ПК повинен бути хоча б один гігабайт RAM. Зате після завантаження робота з Hiren's Boot CD вкрай швидка. Втім, таких екстремальних варіантів краще, мабуть, уникати.

LABEL Hirens MENU LABEL Hiren's Boot CD KERNEL memdisk APPEND iso initrd=images/hirens.iso


Візьмемо приклад складніше - завантажимо Clonezilla Live через PXE. Створюємо папку /pxe/images/clonezilla. Туди треба буде скопіювати всі файли з папки /live, що лежить в образі ISO. У налаштуваннях ми вказуємо завантаження ядра Linux (vmlinuz), а APPEND передаємо йому параметри. Їх можна підглянути у файлі isolinux/isolinux.cfg всередині ISO-образу (ключі ocs_* відносяться безпосередньо до Clonezilla, а не ядра як такого). У нашому випадку відмінності від нього буде небагато - треба тільки вказати, що файл із образом системи у Squashfs слід забрати при завантаженні з сервера TFTP.

LABEL Clonezilla MENU LABEL Clonezilla KERNEL images/clonezilla/vmlinuz APPEND initrd=images/clonezilla/initrd.img boot=live config noprompt noswap nomodeset nolocales/nosplash edd=on vga=788 ocs_live_keymap="" ocs_live_bash="no" ocs_lang="" fetch=tftp://192.168.0.1/images/clonezilla/filesystem.squashfs TEXT HELP Clonezilla Live — Boot to RAM ENDTEXT

Увага! Все, що знаходиться після APPEND, є одним-єдиним рядком без переносів. Текст між директивами TEXT HELP та ENDTEXT буде показаний як підказка при виборі відповідного пункту завантажувального меню. Аналогічно додаються в завантаження та інші дистрибутиви або утиліти на основі Linux. Спробуйте як розминку прописати налаштування для легковажного дистрибутива SliTaz.

LABEL Slitaz MENU LABEL SliTaz Linux KERNEL /boot/bzImage APPEND initrd=/boot/rootfs4.gz,/boot/rootfs3.gz,/boot/rootfs2.gz,/boot/rootfs1.gz rw root=/dev/null normal autologin


Як бачите, все досить просто і досить гнучко налаштовується. Для подальшого вивчення PXE-завантаження на базі Ubuntu Server непогано було б ознайомитися з wiki syslinux та документацією, що додається в архіві цієї утиліти. З цікавих рішень з використанням PXE можна почитати, наприклад, мережеву установку Windows 7 без застосування RIS/WDS. А з корисних доповнень варто придивитися до дистрибутива Thinstation для створення тонких клієнтів, а також менеджера завантаження Plop. Безперечно, знадобляться утиліти для тестування «заліза» та діагностики проблем, для відновлення даних та створення бекапів, для… Загалом, справа за вами. Успіхів!

PXE

Виконавче оточення попереднього завантаження ( Preboot Execution Environment, PXE, Вимовляється "пікси") являє собою процес завантаження операційної системи по мережі. Його можна порівняти із завантаженням LiveCD із віддаленого CD-приводу.

Цей метод завантаження вимагає:

    сервер для зберігання файлів, що працює за протоколами DHCP та TFTP (можна запустити кожен протокол на окремому сервері);

    клієнт із завантажувачем PXE в BIOS. Може не мати жорсткого диска.

Крок 1. Налаштовуємо сервер PXE

PXE-сервер включає:

    DHCP-сервер для з'єднання із клієнтами;

    файл завантаження DHCP для налаштування клієнтів;

    TFTP сервер для завантаження операційної системи.

SliTaz LiveCD можна використовувати як PXE-сервер. Для цього запустіть програму Netbox (з меню Система).

    На вкладці Statip IPнатисніть Start.

    • З'явиться вікно DHCP-сервера, яке не може використовувати DHCP для отримання інформації про IP.

    На вкладці Serverвиберіть вкладку INETDі переконайтеся, що рядок tftpdу файлі /etc/initd.conf не закоментована. Це налаштування за замовчуванням. Натисніть Start.

    • Запуститься сервер TFTP, який завантажуватиме SliTaz LiveCD по мережі.

    На тій же вкладці Serverвиберіть вкладку PXE.

    Відредагуйте налаштування відповідно до опцій завантаження.

    • Це автоматично оновлює конфігурацію DHCP-сервера.

    На вкладці Serverвиберіть вкладку DHCP. Приведіть налаштування відповідно до конфігурації вашої мережі. Перед цим ми додали рядки boot_fileі siaddr. Натисніть Start.

    • Запуститься DHCP-сервер. Якщо клієнти не можуть отримати IP-адресу, перевірте установки цього сервера.

    Переконайтеся, що файли bzImageі rootfs.gzзнаходяться у директорії /bootна LiveCD.

Крок 2. Налаштовуємо клієнт PXE

Комп'ютери останніх поколінь із вбудованою підтримкою Ethernet мають BIOS, що підтримує PXE. Перевірте цю опцію в меню BIOS та переконайтеся, що вона активована. Щоб увімкнути комп'ютер (наприклад, F12), натисніть відповідну клавішу, щоб перейти в налаштування BIOS.

Якщо ваш комп'ютер не підтримує завантаження через PXE, ви можете використовувати на ньому SliTaz як клієнт. Створіть завантажувальний CD-ROM або дискету утилітою Boot Floppy/CDROMу меню Система.

На вкладці PXE Network виберіть Write floppy. Таким чином, ви зможете завантажувати систему на комп'ютері клієнта.

SliTaz LiveCD містить налаштування для завантаження операційної системи через Інтернет. Це може бути корисно, якщо ви використовуєте нову версію SliTaz зі старого носія.

Щоб розпочати завантаження мережі, введіть команду в момент виведення початкового запрошення SliTaz

Тільки і всього!

Для отримання додаткових відомостей про використання підключення до Інтернету під час завантаження SliTaz див. домашню сторінку завантаження SliTaz .

Вам також знадобиться DHCP-сервер для отримання IP-адреси, маски підмережі та адреси шлюзу, як і при налаштуванні звичайного з'єднання – для цього підійде звичайний домашній роутер.

Якщо у вас немає пристрою, який можна пристосувати під DHCP-сервер, вам все одно знадобляться IP-адреса, маска підмережі, адреса шлюзу та, можливо, адреса DNS.

Title Slitaz Web kernel /boot/gpxe ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=http://mirror.slitaz.org/pxe/pxelinux.0

Title Slitaz Web kernel /boot/gpxe ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=ip=192.168.0.12/24 gw=192.168.0.1=6. mirror.slitaz.org/pxe/pxelinux.0

При такому способі завантаження доступні лише такі опції:

    nodhcp (допоможе уникнути помилки таймууту по DHCP)

Додаткове налаштування процесу завантаження

Процес завантаження по мережі можна налаштовувати та розподіляти за роутерами та іншими пристроями.

Розподілене завантаження через PXE і PROM (передує PXE)

    інсталюйте gpxe.exe в /jffs/boot

# echo "dhcp-boot=gpxe.pxe" >> /tmp/dnsmasq.conf

Запустіть сервер tftp для вашої локальної мережі (наприклад, 192.168.0.1/24):

# /jffs/usr/sbin/tftpd 192.168.0.1 /jffs/boot

Змінюємо домашню сторінку GPXE-завантаження

$ dd bs=1 skip=519 count=255 if=gpxe 2> /dev/null | strings $echo-n "http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe $ echo -n "ip=192.168.0.10/24 gw=192.168.0.1 dns=192.168.0.1 url=http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe $ dd if=/dev/zero conv=notrunc bs=1 seek=519 count=255 of=gpxe

Змінюємо домашню сторінку для gpxe.exe

$ dd bs = 1 skip = 5 count = 255 if = gpxe.pxe 2> /dev/null | strings

$echo-n "http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=5 count=255 of=gpxe.pxe

$ dd if=/dev/zero conv=notrunc bs=1 seek=5 count=255 of=gpxe.pxe

Використання декількох посилань під час роботи із завантажувальними серверами

Ось приклад для поточних серверів завантаження SliTaz:

$ echo -n "http://mirror.slitaz.org/pxe/pxelinux.0,http://mirror.switch.ch/ftp/mirror/pxe/pxelinux.0,http: download.tuxfamily.org/slitaz /pxe/pxelinux.0" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe

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 може бути саме тим, що вам потрібно. Це якісний інструмент, який до смішного простий у налаштуванні і працює напрочуд добре.

Чудового Вам дня!

Продовжуючи серію статей з розгортання Windows, сьогодні ми займемося підготовкою сервера мережного завантаження на базі ОС Linux та організацією завантаження Windows PE з такого сервера, а також підготуємо інсталяційний дистрибутив Windows 7 або Windows Server 2008 R2 для встановлення з мережевого ресурсу. У цьому посібнику я наведу приклад для Debian Linux 8.

Для роботи нам знадобиться образ Windows PE та інсталяційний дистрибутив системи Windows.

  • Створення власного образу дистрибутива Windows 7 або Windows Server 2008 R2
  • Налаштування Linux PXE сервера мережевої установки Windows 7 або Windows Server 2008 R2

Підготовка завантажувальних файлів Windows для PXE

Для завантаження системи Windows з сервера PXE нам знадобляться такі файли:
  • winpe/boot/fonts/wgl4_boot.ttf - з постачання Windows
  • winpe/boot/bcd - сховище конфігурації (необхідно згенерувати)
  • winpe/boot/boot.sdi - з постачання Windows
  • winpe/boot/winpe.wim - образ Windows PE (інструкція зі збирання)
  • winpe/pxeboot.0 - pxeboot.n12 з постачання Windows
  • winpe/bootmgr.exe - з постачання Windows
Створимо папку, в яку збиратимемо завантажувану по PXE систему:
Скопіюємо шрифт, який використовує bootfix.bin та файл boot.sdi, який необхідний для створення віртуального диска у пам'яті:
xcopy c:\WinPE\x86\ISO\boot\fonts\wgl4_boot.ttf c:\tftpboot\winpe\boot\fonts\wgl4_boot.ttf
xcopy c:\WinPE\x86\ISO\boot\boot.sdi c:\tftpboot\winpe\boot\boot.sdi
Тепер нам знадобиться завантажувач, який завантажить менеджер завантаження та сховище конфігурації. Вони є у завантажувальному образі Windows PE. Для цього підключимо образ Windows PE:
dism /mount-wim /wimfile:C:\WinPE\x86\winpe.wim /index:1 /mountdir:C:\WinPE\x86\mount
І скопіюємо від туди файл pxeboot.n12, перейменувавши його в pxeboot.0 та bootmgr.exe:
xcopy c:\WinPE\x86\mount\Windows\Boot\PXE\pxeboot.n12 c:\tftpboot\winpe\pxeboot.0
xcopy c:\WinPE\x86\mount\Windows\Boot\PXE\bootmgr.exe c:\tftpboot\winpe\bootmgr.exe
Необхідні файли за винятком конфігурації завантаження та образу системи у нас є, тому образ Windows PE можна відключити без збереження змін:
dism /unmount-wim /mountdir:C:\WinPE\x86\mount /discard
Копіюємо образ системи Windows PE в папку завантаження:
xcopy C:\WinPE\x86\winpe.wim c:\tftpboot\winpe\boot\
Тепер настав час згенерувати конфігурацію завантаження, для цього створимо файл makebcd.cmd:
notepad c:\tftpboot\makebcd.cmd
З таким вмістом:
bcdedit -createstore %1\BCD
bcdedit -store %1\BCD -create (ramdiskoptions) /d "Ramdisk options"
bcdedit -store %1\BCD -set (ramdiskoptions) ramdisksdidevice boot
bcdedit -store %1\BCD -set (ramdiskoptions) ramdisksdipath \boot\boot.sdi
for /F "tokens=2 delims=()" %%i in ("bcdedit -store %1\BCD -create /d "Windows PE Boot Image" /application osloader") do set guid=(%%i)
bcdedit -store %1\BCD -set %guid% systemroot \Windows
bcdedit -store %1\BCD -set %guid% detecthal Yes
bcdedit -store %1\BCD -set %guid% winpe Yes
bcdedit -store %1\BCD -set %guid% osdevice ramdisk=\Boot\winpe.wim,(ramdiskoptions)
bcdedit -store %1\BCD -set %guid% device ramdisk=\Boot\winpe.wim,(ramdiskoptions)
bcdedit -store %1\BCD -create (bootmgr) /d "Windows BootManager"
bcdedit -store %1\BCD -set (bootmgr) timeout 30
bcdedit -store %1\BCD -set (bootmgr) displayorder %guid%
move %1\BCD %1\bcd
І запустимо його на виконання, передавши йому як аргумент розташування та ім'я файлу сховища конфігурації:
c:\tftpboot\makebcd.cmd c:\tftpboot\winpe\boot
На цьому підготовка необхідних файлів для завантаження з PXE в середовищі Windows закінчена, і ми починаємо налаштування Linux-сервера.

Встановлення PXE-сервера

Встановлення TFTP

Встановлення необхідних пакетів:
# aptitude install tftpd-hpa syslinux pxelinux -y
Налаштовуємо TFTP-сервер:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure -m /etc/default/tftp-remap.conf -v"
RUN_DAEMON="yes"
Т.к. Windows шукатиме свої файли завантаження щодо кореня tftp, робимо мапінг та асоціюємо ці файли з каталогом winpe на сервері.

Створюємо файл картки:

# vim /etc/default/tftp-remap.conf
З вмістом:
r pxeboot.0 /pxeboot.0
r bootmgr.exe /winpe/bootmgr.exe
r \\Boot\\BCD /winpe/boot/bcd
r \\boot\\boot.sdi /winpe/boot/boot.sdi
r \\Boot\\winpe.wim /winpe/boot/winpe.wim
r \\Boot\\Fonts\\wgl4_boot.ttf /winpe/boot/fonts/wgl4_boot.ttf
gr \\ /
Останній рядок "gr\\" говорить tftp, якщо в шляхах вказуються зворотні слеші, міняти їх на прямі.
Увага! Важливо, щоб регістрі літер в іменах файлів був таким самим, як ви вказуєте у файлах. Якщо ви на етапі створення конфігурації вказали /boot/bcd, а файл назвали /Boot/BCD, завантажувач зможе завантажити систему, т.к. не знайде потрібного файлу.

Створюємо наш каталог завантаження:

Тепер необхідно скопіювати в нього файли, з каталогу c:\tftpboot\:
c:\tftpboot\winpe\>pscp -r * [email protected]:/srv/tftpboot/winpe

Створюємо меню завантаження

Для того, щоб меню завантаження працювало, нам знадобляться наступні файли, копіюємо їх у кореневий каталог нашого tftp-сервера:
# cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftpboot
# cp /usr/lib/syslinux/modules/bios/chain.c32 /srv/tftpboot
# cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftpboot
# cp /usr/lib/syslinux/modules/bios/libcom32.c32 /srv/tftpboot
# cp /usr/lib/syslinux/modules/bios/libutil.c32 /srv/tftpboot
# cp /usr/lib/syslinux/modules/bios/vesamenu.c32 /srv/tftpboot
І створюємо каталог, де зберігається саме меню завантаження:
# mkdir -p /srv/tftpboot/pxelinux.cfg
Ще нам знадобиться гарна завантажувальна картинка для нашого меню. Вона має бути у форматі jpg та роздільною здатністю 640x480. Копіюємо її з нашої машини:
C:\Users\golovlevmv\> pscp Pictures\menu.jpg [email protected]:/srv/tftpboot/pxelinux.cfg/menu.jpg
Тепер саме час створити меню завантаження:
З таким вмістом:
PROMPT 0
UI vesamenu.c32
MENU TITLE PXE Server Boot Menu
MENU BACKGROUND pxelinux.cfg/menu.jpg
TIMEOUT 600

LABEL ^0) Boot from hard disk
TEXT HELP
Boot from first (hdd 0)
ENDTEXT
COM32 chain.c32
APPEND hd0 1

LABEL ^1) Load Windows PE 3.1 x86
TEXT HELP
Boot Windows PE x86 from pxeboot
ENDTEXT
kernel winpe/pxeboot.0

Перезапускаємо tftpd:
# /etc/init.d/tftpd-hpa restart

Альтернативний варіант завантаження з PXE

Також можна організувати ще один варіант завантаження системи з PXE, використовуючи memdisk, але він вимагатиме вже значно більшого об'єму пам'яті і у вас можуть виникнути проблеми з комп'ютерами з об'ємом пам'яті менше 1Гб.

Tftp сервер має бути вже підготовлений, за інструкцією вище.

Нам знадобиться memdisk, копіюємо його зі складу пакета syslinux:

# cp /usr/lib/syslinux/memdisk /srv/tftpboot
Копіюємо ISO-образ Windows PE:
C:\WinPE\x86\> pscp WinPE_x86.iso [email protected]:/srv/tftpboot/winpe/winpe_x86.iso
Додаємо до нашого завантажувального меню ще один пункт:
# vim /srv/tftpboot/pxelinux.cfg/default
LABEL ^2) Load Windows PE 3.1 x86 (iso)
TEXT HELP
Boot Windows PE x86 від iso image
більше 512MB RAM to correct work
ENDTEXT
KERNEL memdisk
APPEND iso raw
INITRD winpe/winpe_x86.iso

Налаштування DHCP

Для того, щоб наші клієнти могли завантажуватися по мережі, необхідно наявність DHCP-сервера, а він у свою чергу повинен видавати клієнтам адресу свервеа мережного завантаження та ім'я файлу, яке необхідно завантажувати.
Ви можете використовувати будь-який вже наявний DHCP-сервер, йому необхідно передати такі параметри:
  • filename = "pxelinux.0";
  • next-server ;
У разі відсутності у вас DHCP-сервера, я також наведу приклад його встановлення та налаштування на нашому PXE-серері.

Встановлюємо сервер DHCP:

# aptitude install isc-dhcp-server -y
Включаємо DHCP на потрібному нам мережному інтерфейсі:
# vim /etc/default/isc-dhcp-server
Наводимо dhcpd.conf до потрібного нам вигляду:
ddns-update-style none;
option domain-name "home.local";
option domain-name-servers 192.168.140.10;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.140.0 netmask 255.255.255.0 (
range 192.168.140.51 192.168.140.254;
option routers 192.168.140.10;
option domain-name "home.local";
filename = "pxelinux.0";
next-server 192.168.140.10;
}
Запускаємо isc-dhcp-server:
# /etc/init.d/isc-dhcp-server start
Тепер у нас має завантажуватись оточення Windows PE. Через нього ми можемо скопіювати дані з аварійної системи та встановити чисту систему на машину.

Виставляємо у віртуальній машині завантаження з мережевого адаптера, і пробуємо завантажитись через мережу.

Якщо все вийшло, то основна та найскладніша частина роботи зроблена. Тепер підготуємо дистрибутив для встановлення системи через мережу.

Мережева установка Windows

Далі для мережної установки можна використовувати вже наявний файловий сервер на базі Windows або SAMBA. Але оскільки я вирішив організувати зберігання настановних дистрибутивів системи на цьому ж сервері, то коротко покажу, як організувати такий SAMBA-сервер на нашому серері PXE.

Встановлюємо SAMBA

Тут все досить просто. Я наведу мінімальний конфіг smb.conf, без підключення сервера до домену і завдання власних облікових записів. Це буде просто сервер із гостьовим доступом на читання.

Правимо конфігурацію samba:


workgroup = WORKGROUP
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
acl allow execute always=true


comment = Windows 7
path = /srv/dist/win7x86
guest ok = yes
browseable = yes
create mask = 0644
directory mask = 0755
acl allow execute always=true

Не забудьте вказати "acl allow execute always=true". Цей параметр необхідно вказати для того, щоб можна було запускати виконання exe-файли, інакше запустити setup.exe у вас не вийде.

Візьмемо інсталяційний дистрибутив Windows 7 SP1 x86 необхідної редакції та скопіюємо всі файли на наш сервер у папку з дистрибутивами:

C:\Users\golovlevmv\> pscp -r E:\ [email protected]:/srv/dist/win7x86/
Перезапустимо samba
Спробуємо звернутися до нашого мережевого ресурсу на ім'я або ip адресу "\pxeboot" або "\192.168.140.10".

Тепер для того, щоб у нас з нашого сервера встановлювалася наша система, беремо файл install.wim, який ми створювали при складанні власного дистрибутива Windows, і замінюємо їм дистрибутивний файл.

C:\Users\golovlevmv\> pscp C:\Win7\x86\dist\sources\install.wim [email protected]:/srv/dist/win7x86/sources/
І це файл /srv/dist/win7x86/sources/boot.wim можна видалити, т.к. завантаження ми вже на той час вже зробили за допомогою Windows PE.

Запуск установки Windows 7 x86

Щоб запустити установку, необхідно підключити мережевий ресурс:
net use * \\192.168.140.10\win7x86
Підключиться мережевий диск "Z:", і виконати команду:
Далі, щоб автоматизувати установку системи, можна за допомогою "диспетчера образів системи Windows" підготувати файл відповідей autounattend.xml, і запускати установку з файлом відповідей:
Z:\setup.exe /unattend:autounattend.xml
У такому випадку, для того, щоб розгортати системи Windows на великій кількості ПК, вам потрібно лише завантажитись з PXE, підключити мережевий ресурс, і запустити установку із зазначенням файлу відповідей.




Завантаження...
Top