Aggiunta di universalità a WDS

Buongiorno, cari membri di Habr!

L'obiettivo di questo articolo è fornire una breve panoramica delle possibilità di implementazione di diversi sistemi tramite WDS (Windows Deployment Services)
Nell'articolo verranno fornite istruzioni concise per l'implementazione di Windows 7 x64, Windows XP x86, Ubuntu x64 e l'aggiunta di strumenti utili per il boot di rete come Memtest e Gparted.
La storia si snoderà seguendo le idee che mi vengono in mente. E tutto è iniziato con Microsoft...

E ora la storia:
Non molto tempo fa, mi è venuta in mente una buona idea: implementare sistemi al lavoro utilizzando WDS. Se qualcun altro fa il lavoro per noi, è piacevole. E se nel contempo apprendiamo qualcosa di nuovo, è addirittura doppio il piacere. Non mi soffermerò molto sulla descrizione dell'installazione del ruolo WDS — Microsoft riduce tutto a Avanti-Avanti-Avanti e ci sono montagne di articoli su questo argomento. Brevemente, parlerò del lavoro con le immagini di Windows, soffermandomi sui momenti che mi hanno causato difficoltà. I sistemi non Microsoft verranno descritti in modo più dettagliato (proprio per questo motivo è stato scritto l'articolo).
Iniziamo.
Il server che funge da archivio delle immagini e coordinatore delle azioni ha a bordo Windows Server 2008 R2. Per il corretto funzionamento di questo servizio sono necessarie funzioni come DHCP e DNS. E AD, per inserire le macchine nel dominio. (Non è necessario che tutte queste funzioni siano su una sola macchina; possono essere distribuite su tutta la struttura. L'importante è che funzionino correttamente.)

1. Configurazione WDS

Aggiungiamo le funzioni necessarie e accediamo rapidamente alla console WDS, inizializziamo il nostro server e vediamo quanto segue:
Aggiunta di universalità a WDS

  • Install Images — immagini di installazione. Sistemi configurati e belli che andremo a installare. Per comodità, possiamo creare diversi gruppi per tipo di sistema: Windows 7, XP o per tipo di task — IT Dept, Client Dept, Servers.
  • Boot Images — immagini di avvio. Ciò che viene caricato sulla macchina per primo e consente di eseguire varie operazioni. La prima immagine è quella che si trova sul disco di installazione (per Windows 7 — è la cartella sources e i file install.wim o boot.wim.
    Da questo punto in poi, possiamo fare molte cose interessanti:
    • Immagine di cattura o immagine di registrazione — il nostro strumento principale, consente di creare una copia del sistema configurato, che è stata precedentemente elaborata con sysprep e funge da nostro modello.
    • Immagine di rilevamento — consente di caricare sui computer che non supportano l'avvio tramite rete, le immagini dei sistemi configurati.

  • Dispositivi in attesa — dispositivi che attendono l'approvazione dell'amministratore per l'installazione. Vogliamo sapere chi installa la nostra meraviglia sul proprio computer.
  • Trasmissioni Multicast — invio multicast. Utilizzato per installare una singola immagine su un gran numero di client.
  • Driver — driver. Aiutano ad aggiungere ai server le necessarie schede e ad evitare errori di questo tipo:
    Aggiunta di universalità a WDS
    Dopo aver aggiunto i driver al server WDS, è necessario aggiungerli all'immagine di avvio desiderata.

Sì, e inoltre — per ogni architettura di sistema è necessario creare i propri caricatori e installatori. La varietà in questo zoo ha il suo costo.
Fondamentalmente, il nostro WDS è già pronto. Possiamo avviare il sistema via rete e vedere la finestra di selezione con le nostre immagini di avvio.
Non descriverò tutti i passaggi per preparare un'immagine ideale, ma lascerò solo un link all'articolo da cui ho tratto ispirazione: Clicca per Windows 7 ( avevo installato per qualche motivo una vecchia versione di WAIK — 6.1.7100.0, in essa non era possibile creare il file di risposta per Windows 7 SP1. Serve l'ultima disponibile — 6.1.7600.16385)
Ecco ancora le istruzioni per preparare Windows XP per WDS. Non ci soffermeremo troppo — la parte più interessante la troviamo nella seconda parte!

2. Bootloader universale

È fantastico che ora abbiamo un sistema del genere. Usarlo è un piacere. Ma non si potrebbe rendere la vita ancora più facile?
Vorrei installarci Linux!
Innanzitutto, come molti di voi ricorderanno — installare Ubuntu insieme a Windows non termina bene per il bootloader di Windows. Viene sostituito dall'universale GRUB.
Qui è lo stesso. Abbiamo bisogno di un bootloader universale, vi presento — PXELINUX
1) Scarica l'ultima versione (al momento della scrittura dell'articolo, questo è 5.01
Ci interessano questi file:
corepxelinux.0
com32menuvesamenu.c32 (si può usare menu.c32 per l'interfaccia testuale durante il caricamento)
com32chainchain.c32
In tutte le guide per l'uso di questo caricatore si dice che con questi tre funziona tutto. Ho dovuto aggiungere anche ldlinux.c32, libcom.c32 e libutil_com.c32. Puoi procedere in questo modo: copia i file consigliati e avviali. Il file su cui ci sarà un errore, copia quello nella cartella.
Inoltre, per caricare l'iso, abbiamo bisogno del file memdisk. Anche questo lo mettiamo in questa cartella.
2) Mettiamoli nella cartella in cui sono archiviati tutte le immagini WDS. Precisamente qui — RemoteInstallBootx64 (installeremo solo la versione a 64 bit; per la versione a 86 bit, metti gli stessi file anche in quella cartella).
3) Rinomina pxelinux.0 in pxelinux.com
4) Creiamo una cartella pxelinux.cfg per il file di configurazione e il file stesso (già all'interno di questa cartella, naturalmente) — default (senza estensione!) con il seguente contenuto:

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 come sfondo
MENU TITLE Scegli il tuo destino!

LABEL wds
MENU LABEL Windows Deployment Services (7, XP, Immagini di avvio)
KERNEL pxeboot.0

LABEL locale
MENU DEFAULT
MENU LABEL Avvia dal disco rigido
LOCALBOOT 0
Type 0x80

5) Facciamo una copia del file pxeboot.n12 e la chiameremo pxeboot.0
6) Dopo ciò, è necessario insegnare al nostro WDS di avviarsi tramite il bootloader universale. Nel 2008, questo avveniva tramite GUI, mentre nel 2008 R2 si faceva attraverso la riga di comando. Apriamo e inseriamo:

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

Uscita della riga di comando:
Aggiunta di universalità a WDS
Tutto pronto, ci carichiamo e vediamo lo schermo desiderato:
Aggiunta di universalità a WDS
Questa è una configurazione di base, che può essere adattata alle proprie esigenze (logo aziendale, ordine di avvio, ecc.). Al momento può solo trasferire il controllo al WDS e caricarsi nuovamente dal disco rigido. Insegniamo ora a caricare Ubuntu!

3. Insegniamo all'aquila a volare

Di cosa avevamo bisogno lì? Ubuntu, Gparted? Aggiungiamo anche memtest per completezza.
Iniziamo con il più semplice:
Memtest
Creiamo nella cartella Boot/x64 del WDS una cartella separata per i file Linux, ad esempio Distr, e sottocartelle per i nostri sistemi corrispondenti:
Aggiunta di universalità a WDS
Scarichiamo iso mtmtest e aggiungiamo al nostro file di configurazione di avvio (file default) le seguenti righe:

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

Con questo caricheremo la nostra piccola immagine in memoria e la inizieremo da lì. Sfortunatamente, con immagini più grandi non ha funzionato.

Gparted
Scarichiamo l'ultima versione, estraiamo l'immagine iso e prendiamo tre file — /live/vmlinuz, /live/initrd.img e /live/filesystem.squashfs
Cosa sono questi file? (Potrei sbagliarmi nelle formulazioni, un grande favore ai lettori: correggete se sbaglio)

  • vmlinuz (più spesso si può vedere vmlinux) — file compresso del kernel
  • initrd.img — immagine del file system radice (il minimo necessario per l'avvio)
  • filesystem.squashfs — i file stessi utilizzati nel processo di lavoro

Mettiamo i primi due file nella cartella per il boot (nel mio caso è Bootx64DistrGparted) e il terzo — sul server IIS (fortunatamente è già attivo per WSUS).
Una digressione — purtroppo, il caricamento dell'immagine iso in memdisk con grandi distribuzioni non ha funzionato per me. Se mai conoscete il segreto del successo — sarebbe una soluzione fantastica che permetterebbe di caricare rapidamente qualsiasi sistema da un'immagine iso.
Aggiungiamo filesystem.squashfs su IIS, in modo che possa essere letto in rete (non dimenticate di aggiungere un'etichetta MIME per questa estensione)
Aggiunta di universalità a WDS
Ora aggiungiamo una voce nel nostro pxelinux.cfg/default:

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

Controlliamo — funziona!
Ubuntu 12.04
Ho aggiunto due possibili modalità di installazione: completamente automatica (grazie all'utente Malamut per articolo e in modalità manuale)
Scarichiamo il file con l'installazione alternativa ed estraiamo da lì (come prima) due file: initrd.gz e linux, e li mettiamo in Distr/Ubuntu
Aggiungiamo al nostro pxelinux.cfg/default le righe
per un'installazione completamente manuale

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

Per l'installazione automatica è necessario un file con le impostazioni delle risposte (puoi leggere qui) e lo metteremo sul nostro server web. Nel mio caricatore, la riga appare così:

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

Utilità per il futuro
Esaminando il materiale sull'argomento e cercando risposte alle mie domande, è stato scoperto un articolo straordinario da Alexander_Erofeev che descrive il caricamento di Kaspersky Rescue Disk sulla rete. Purtroppo, non è riuscito a decollare. Ma lo strumento è davvero utile (no, no, che qualche utente specialmente entusiasta potrebbe afferrare qualcosa… È utile avere uno strumento del genere a portata di mano)

Conclusione

Questo articolo fornisce una panoramica delle funzionalità offerte dal ruolo WDS di Microsoft. Quando ho iniziato a scrivere questo articolo, i piani erano ambiziosi: un dettagliato HOWTO su tutti gli aspetti del caricamento dei sistemi sopra menzionati... Ma man mano che accumulavo materiali solo sul WDS, il filo narrativo mi ha portato in profondità che probabilmente nessuno affronterebbe... Pertanto, ho deciso di condividere alcune informazioni brevi su ciò che è possibile e, se possibile, includere collegamenti a buoni articoli. Se ai lettori interesserà leggere, o se a un certo punto vorrò fama e denaro per arricchire la mia collezione su Хабрахабр con articoli, posso approfondire ogni fase della configurazione di un server WDS multifunzionale.
Vorrei ringraziare ancora una volta gli autori Alexander_Erofeev e Malamut per il loro materiale, che sarà interessante per tutti senza eccezione.
Su Хабре ci sono già stati articoli sulla stessa tematica; ho cercato di affrontare la questione da un'altra prospettiva o di integrarla: Se e due, ma non sono stati pubblicati
Grazie per l'attenzione.
Onore ai robot!

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster