Dodajemy uniwersalność WDS

Dzień dobry, szanowni mieszkańcy Habr!

Celem tego artykułu jest napisanie krótkiego przeglądu możliwości wdrażania różnych systemów za pomocą WDS (Usługi wdrażania systemu Windows)
W artykule zostaną przedstawione krótkie instrukcje wdrażania Windows 7 x64, Windows XP x86, Ubuntu x64 oraz dodawania takich przydatnych narzędzi do rozruchu przez sieć jak Memtest i Gparted.
Historia będzie opowiadana w porządku przychodzących mi do głowy pomysłów. I wszystko zaczęło się od Microsoftu...

A teraz sama historia:
Niedawno wpadłem na słuszny pomysł uruchamiania systemów w pracy za pomocą WDS. Jeśli ktoś wykonuje pracę za nas, jest miło. A jeśli przy okazji poznajemy coś nowego – to podwójnie miło. Nie będę zbyt szczegółowo opisywał instalacji roli WDS – Microsoft sprowadza wszystko do Dalej-Dalej-Dalej i artykułów na ten temat – góry. Krótko opowiem o pracy z obrazami Windows, zatrzymując się na tych momentach, które sprawiły mi trudności. Szerzej będą opisane systemy nie od Microsoftu (po to ten artykuł się pisze).
Zaczynamy.
Serwer, który będzie pełnił rolę przechowalni obrazów i koordynatora działań, ma na pokładzie Windows Server 2008 R2. Aby ta usługa działała poprawnie, potrzebne są takie role jak DHCP i DNS. No i AD – do wprowadzania maszyn do domeny. (Nie trzeba trzymać tych ról na jednej maszynie, mogą być rozłożone w całej strukturze. Najważniejsze, aby działały poprawnie)

1. Konfiguracja WDS

Dodajemy niezbędne role i szybko wchodzimy do konsoli WDS, inicjalizujemy nasz serwer i widzimy następujące:
Dodajemy uniwersalność WDS

  • Obrazy instalacyjne — obrazy instalacji. Skonfigurowane, ładne systemy, które będziemy instalować. Dla wygody można dodać kilka grup według typów systemów: Windows 7, XP lub według typów zadań – IT Dept, Client Dept, Servers.
  • Obrazy rozruchowe — obrazy rozruchu. To, co ładowane jest na maszynę jako pierwsze i pozwala na wykonywanie różnych działań. Najpierw trafia tam obraz z płyty instalacyjnej (dla Windows 7 – to folder sources i pliki install.wim lub boot.wim.
    A potem można z nich zrobić coś interesującego:
    • Obraz przechwytywania lub obraz zapisu — nasz główny instrument, pozwala wykonać kopię skonfigurowanego systemu, który został wcześniej przetworzony przez sysprep i jest naszym szablonem.
    • Obraz odkrywania — pozwala na przesyłanie obrazów skonfigurowanych systemów na komputery, które nie obsługują rozruchu z sieci.

  • Urządzenia w oczekiwaniu — urządzenia oczekujące na zatwierdzenie przez administratora do instalacji. Chcielibyśmy wiedzieć, kto instaluje nasz skarb na swoim komputerze.
  • Transmisje Multicast — rozsyłanie multicastowe. Używane do instalacji jednego obrazu na dużej liczbie klientów.
  • Sterowniki — sterowniki. Pomagają dodać do obrazów na serwerze niezbędne sterowniki i uniknąć tego rodzaju błędów:
    Dodajemy uniwersalność WDS
    Po dodaniu sterowników do serwera WDS należy je również dodać do odpowiedniego obrazu rozruchowego.

Tak, i jeszcze jedno — dla każdej architektury systemu należy stworzyć własne bootloadery i instalatory. Za różnorodność w zoo trzeba płacić.
W zasadzie nasz WDS jest już gotowy. Możemy uruchomić system z sieci i zobaczyć okno wyboru z naszymi obrazami rozruchowymi.
Nie będę opisywać wszystkich etapów przygotowania idealnego obrazu, a jedynie zostawię link do artykułu, z którego sam korzystałem: Tyc dla Windows 7 (z jakiegoś powodu miałem zainstalowaną starą wersję WAIK — 6.1.7100.0, w której nie można było stworzyć pliku odpowiedzi dla Windows 7 SP1. Potrzebna jest najnowsza wersja — 6.1.7600.16385)
I oto jeszcze instrukcja przygotowania Windows XP dla WDS. Również nie będziemy pisać zbyt szczegółowo — najciekawsze mamy w drugiej części!

2. Uniwersalny bootloader

To świetnie, że mamy teraz taki system. Używanie go to czysta przyjemność. Ale czy nie można jeszcze bardziej ułatwić sobie życia?
Chcę instalować przez niego Linuxa!
Przede wszystkim, jak wielu z was pamięta — równoległa instalacja Windows i Ubuntu nie kończy się dla winowego bootloadera dobrze. Zastępuje go uniwersalny GRUB.
Tutaj jest to samo. Potrzebujemy uniwersalnego bootloadera, poznajcie — to PXELINUX
1) Pobieramy najnowszą wersję (w momencie pisania artykułu to 5.01
Interesują nas te pliki:
corepxelinux.0
com32menuvesamenu.c32 (można również wziąć menu.c32 do tekstowego interfejsu podczas uruchamiania)
com32chainchain.c32
We wszystkich poradnikach dotyczących używania tego bootloadera mówi się, że z tymi trzema wszystko działa. Musiałem dodać jeszcze ldlinux.c32, libcom.c32 i libutil_com.c32. Można to zrobić tak — skopiować polecane i uruchomić. Na jaki plik będzie narzekać — ten skopiować do folderu.
Potrzebujemy również pliku memdisk do uruchamiania iso. Również kładziemy go do tego folderu
2) Umieszczamy je w folderze, w którym przechowywane są wszystkie obrazy WDS. A dokładnie tutaj — RemoteInstallBootx64 (będziemy instalować tylko 64, dla 86 umieśćcie te same pliki w tym folderze również.)
3) Zmień nazwę pxelinux.0 na pxelinux.com
4) Stworzymy folder pxelinux.cfg dla pliku konfiguracyjnego i samego pliku (już wewnątrz tego folderu, naturalnie) — default (bez rozszerzenia!) o następującej treści:

DEFAULT vesamenu.c32
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
# Timeout in units of 1/10 s
TIMEOUT 300
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44 #20ffffff #00000000 none
MENU COLOR SCROLLBAR 30;44 #20ffffff #00000000 none
MENU COLOR TITLE 0 #ffffffff #00000000 none
MENU COLOR SEL 30;47 #40000000 #20ffffff
MENU BACKGROUND pxelinux.cfg/picture.jpg #picture 640×480 jako tło
MENU TITLE Wybierz swoje przeznaczenie!

LABEL wds
MENU LABEL Usługi wdrażania systemu Windows (7, XP, obrazy startowe)
KERNEL pxeboot.0

LABEL local
MENU DEFAULT
MENU LABEL Uruchom z dysku twardego
LOCALBOOT 0
Wpisz 0x80

5) Zróbmy kopię pliku pxeboot.n12 i nazwijmy ją pxeboot.0
6) Następnie musimy nauczyć nasz WDS ładować się dokładnie z uniwersalnego ładującego. W 2008 roku robiono to przez GUI, w 2008 R2 — przez linię poleceń. Otwieramy i wpisujemy:

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

Wyjście z wiersza poleceń:
Dodajemy uniwersalność WDS
Wszystko, ładujemy i widzimy pożądany ekran:
Dodajemy uniwersalność WDS
To jest podstawowa konfiguracja, można ją dostosować do swoich wymagań (logo firmy, kolejność ładowania itd.). Jak na razie potrafi tylko przekazywać kontrolę do WDS-a i uruchamiać ponownie z dysku twardego. Nauczmy go ładować Ubuntu!

3. Uczymy orła latać

Czego tam potrzebujemy? Ubuntu, Gparted? Dodajmy jeszcze memtest dla porządku.
Zaczniemy od najprostszego:
Memtest
Stworzymy w folderze Boot/x64 WDS-a osobny folder dla plików linuxowych, na przykład Distr. I podfoldery w nim dla naszych odpowiednich systemów:
Dodajemy uniwersalność WDS
Pobieramy iso mtmtest i dodajemy do naszego konfigu (plik default) następujące linie:

label MemTest
menu label MemTest86+
Kernel memdisk iso raw
initrd Linux/mt420.iso

W ten sposób załadujemy nasz mały obraz do pamięci i stamtąd go uruchomimy. Z przykrością muszę stwierdzić, że z dużymi obrazami to mi nie działało.

Gaprted
Pobieramy najświeższą wersję, rozpakowujemy obraz iso i bierzemy trzy pliki — /live/vmlinuz, /live/initrd.img oraz /live/filesystem.squashfs
Cóż to za pliki? (Mogę się mylić w sformułowaniach, serdeczna prośba do czytelników o poprawienie, jeśli się pomylę)

  • vmlinuz (często można zobaczyć vmlinux) — skompresowany plik jądra
  • initrd.img — obraz podstawowego systemu plików (minimalne wymagania do uruchomienia)
  • filesystem.squashfs — same pliki używane w trakcie pracy

Umieszczamy pierwsze dwa pliki w folderze do pobrania (w moim przypadku jest to Bootx64DistrGparted), a trzeci na serwerze IIS (na szczęście już jest uruchomiony dla WSUSa).
Liryczna dygresja — niestety, metoda z załadowaniem obrazu iso na memdisk z dużymi dystrybucjami mi się nie udała. Jeśli przypadkiem znasz sekret sukcesu — byłoby to wspaniałe rozwiązanie, które pozwoliłoby szybko uruchomić każdy system z obrazu iso.
Dodajemy filesystem.squashfs do IIS, aby można go było odczytać przez sieć (nie zapomnij dodać etykiety MIME dla tego rozszerzenia).
Dodajemy uniwersalność WDS
Teraz dodajemy wpis do naszego pxelinux.cfg/default:

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

Sprawdzamy — działa!
Ubuntu 12.04
Dodałem dwie możliwe opcje instalacji — całkowicie automatyczną (dzięki użytkownikowi Malamut za artykuł i w ręcznym trybie).
Pobieramy plik z alternatywną instalacją i wyciągamy stamtąd (jak wcześniej) dwa pliki — initrd.gz i linux, a następnie umieszczamy je w Distr/Ubuntu.
Dodajemy do naszego pxelinux.cfg/default linijki
do całkowicie ręcznej instalacji.

LABEL Ubuntu
KERNEL Distr/Ubuntu/linux
APPEND priority=low vga=normal initrd=Distr/Ubuntu/initrd.gz

A oto do automatycznej instalacji potrzebny jest plik z ustawieniami odpowiedzi (można poczytać tutaj) i umieścimy go na naszym serwerze WWW. U mnie linijka w bootloaderze wygląda tak:

LABEL Ubuntu Auto Install
KERNEL 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

Przydatność na przyszłość
Przeglądając materiały na ten temat i szukając odpowiedzi na moje pytania, odkryłem niesamowity artykuł od Alexander_Erofeev z opisem ładowania Kaspersky Rescue Disk przez sieć. Niestety, mi się to nie udało. Ale narzędzie jest naprawdę pomocne (czasami ci szczególnie zapobiegliwi użytkownicy mogą przypadkiem chwycić coś takiego… Warto mieć takie narzędzie pod ręką.)

Podsumowanie

Ten artykuł przedstawia przegląd możliwości, które oferuje rola WDS od Microsoft. Gdy zaczynałem pisać ten artykuł, plany były ogromne: szczegółowe HOWTO dotyczące wszystkich aspektów uruchamiania wymienionych powyżej systemów... Jednak gdy materiał dotyczący samego WDS zaczął się gromadzić, wątek narracji zaprowadził mnie w jakieś głębiny, z którymi nikt z pewnością się nie spotka... Dlatego podjęto decyzję, aby podzielić się krótkimi informacjami o tym, co można osiągnąć, a tam gdzie to możliwe, zamieścić linki do dobrych artykułów. Jeśli czytelnikom będzie się to podobać, lub jeśli nagle zapragnę sławy i pieniędzy, aby wzbogacić kolekcję artykułów na Habrze – można bardziej szczegółowo zatrzymać się na każdym z etapów konfiguracji wielozadaniowego serwera WDS.
Chciałbym jeszcze raz podziękować autorom Alexander_Erofeev i Malamut za ich materiał, który będzie interesujący dla wszystkich bez wyjątku.
Na Habrze naturalnie już były artykuły na ten sam temat, próbowałem omówić ten problem z innej perspektywy lub go uzupełnić: Raz i dwa, ale nie zostało opublikowane
Dziękujemy za uwagę.
Chwała robotom!

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster