přejít na obsah přejít na navigaci

Linux E X P R E S, Hromadné reinstalace stanic s Windows

Hromadné reinstalace stanic s Windows

Jakub Kašparec uklízí ve firemní síti po řádění viru.


Následující článek si neklade z cíl přesvědčovat někoho, jak věci dělat, předkládá pouze možnou alternativu. Pro správné pochopení je nutná obecná znalost správy linuxových stanic.

Řešením, které vám ve článku představím, je možnost zálohy obrazů disků na server podobně, jako to dělá komerční nástroj Norton Ghost a jemu podobné. Pomocí Linuxu se tato akce dá natolik zautomatizovat, že novou instalaci a automatické nastavení systému mohou provádět přímo uživatelé - pouhou volbou položky v menu a vyčkáním několika minut.

Správa sítě, respektive klientských stanic běžících na operačním systému Windows, se v mnohých případech dá shrnout do třech základních kroků:

  1. Instalace a nastavení
  2. Akce "destroy"
  3. Zpět na krok 1

Bohužel, kroku 2 se zřejmě nedá zcela vyhnout, zvlášť jsou-li vámi spravované klientské stanice častěji v rukou studentů či jiných zvídavých osob. Jedním z mnoha možných receptů, jak si ulehčit jejich správu, může být volba jiného OS na nich provozovaného. To však není tématem tohoto článku. Pojďme se podívat na to, jak je možno pojmout správu více klientských stanic stejné konfigurace a jak si celý proces z velké míry ulehčit.

Tento postup je optimalizován pro Windows 95/98/ME. Poznámky pro verzi XP jsou uvedeny níže pod článkem.

Zajisté nejúčinnějším prostředkem nápravy je reinstalace. A jestliže reinstalace probíhá tak, že pouze přepisujeme stávající poškozenou instalaci tou, kterou jsme si dříve někam zazálohovali, pak lze k tomuto principu přiřadit ještě přívlastek "celkem svižná".

Otázku, kam zazálohovat funkční instalaci Windows, snad v dnešní době nemusíme ani zdlouhavě řešit. Jelikož se na CD celý systém s ostatním nezbytným kancelářským softwarem asi nevměstná, přichází v úvahu DVD, nebo server. Mně osobně vyhovuje varianta se serverem, tu jsem také v praxi použil. Podívejme se tedy, jak využít server a Linux k obnově Windows klientu. Pro pořádek budu postupovat v krocích, které jsem uvedl na začátku článku.

Krok 1. Instalace a nastavení klientské stanice

Předem, než se začneme zabývat otázkou jak instalovat a jak a co nastavovat, bychom si měli říci, co vlastně budeme provádět. Princip takové reinstalace je ve své podstatě velice jednoduchý. Obraz (image) disku funkční stanice si zazálohujeme na server a v případě potřeby si jej ze serveru zase stáhneme a přepíšeme jím oddíl s poškozenou instalací na klientské stanici.

Je jasné, že pouhé "překopírování" souborů ze serveru na stanici k opravě stačit nebude. Navíc, pokud bychom tuto akci prováděli přímo z Windows (ze stanice), ani by se toto kopírování nezdařilo. Některé soubory, které jsou systémové a Windows je používá ke svému běhu, by se stejně nepřepsaly. Z toho vyplývá, že je nutné nasadit do celého procesu vyšší instanci. Tou vyšší instancí bude v tomto případě malá, víceméně jednoúčelová distribuce Linuxu.

Princip reinstalace pak může vypadat následovně: po zapnutí stanice vybereme ze zavaděče systému (ať už se jedná o lilo, či grub) volbu reinstall a náš malý Linux se připojí k FTP serveru (který obstará lokální server) a začne stahovat soubor, který je obrazem disku s funkční verzí Windows. Výstup stahování přesměrujeme bajt po bajtu na oddíl disku klientské stanice, který chceme přepsat (opravit).

Po zapnutí stanice vybereme ze zavaděče systému volbu reinstall a náš malý Linux pomocí FTP počítač reinstaluje.

Pevný disk stanice

První věcí, kterou musíme udělat, je rozdělit pevný disk klientské stanice. Důvod je jasný: na jeden malý oddíl umístíme svůj upravený Linux a na další oddíl nainstalujeme Windows. Vhodné je rozdělit tu část disku, kterou bude používat Windows, na dvě části. Jednu systémovou čili tu, která se bude reinstalovat, a druhou část, kde budou data, která se reinstalovat nebudou (například swap soubor, hry atd.). Je také dobré si uvědomit, že celá reinstalace probíhá po síti, tedy že velký oddíl na disku, který chceme zálohovat, je sice krásná věc, ovšem s ohledem na sít věc poněkud nepraktická. Naopak malý oddíl může v budoucnu vést k vážnému nedostatku místa. Je proto vhodné zvolit kompromis.

Jako takový vhodný kompromis se mi jeví oddíl velikosti 2 GB, kam se zajisté Windows, kancelářský balík a další nezbytné programy vejdou a síť nebude zbytečně přetěžována přenosem nadměrně velkých souborů. Co se týče linuxového oddílu, ten může v tomto případě být velice malý. Pár megabajtů bohatě postačí. Navíc Windows neobsahují podporu ext2 filesystému. Z tohoto důvodu bude tento oddíl nepovolaným osobám skryt.

Rozdělený disk pak může vypadat i následovně:

  • hda1: ext2 - 10 MB;
  • hda2: vfat - 2 GB;
  • hda3: zbytek.

Výběr distribuce

Výběr distribuce, která bude zajišťovat celý proces reinstalace, je čistě na vás. Distribucí, která je malá a účinná a je jako stvořená pro tuto aplikaci, je BrutusWare, který se vejde na jednu disketu a obsahuje všechno potřebné. Jediná změna bude spočívat v úpravě startovacího skriptu, který stáhne ze serveru potřebné soubory a zapíše je na disk klientské stanice.

Nastavení Linuxu

Nejprve nakonfigurujeme lilo nebo grub na klientské stanici tak, aby umožňoval start Windows a přidáme také nabídku, která může být chráněna heslem a po jejímž zvolení se přeinstaluje klientská stanice. Zavaděč systému je vhodné umístit na linuxový oddíl. Jestliže by byl tento zavaděč umístěn v MBR (Master Boot Record, hlavní zaváděcí sektor disku, pozn. red.) disku, pak v případě jakékoli poruchy nemáme zpětně možnost zvolit aktivní oddíl, ze kterého se bude systém zavádět.

Jak jsem již předeslal, velké úpravy linuxové distribuce nebudou potřeba. Stačí uvést do startovacího skriptu stanice řádky, které zajistí celý proces. Příklad takového startovacího skriptu optimalizovaného pro BrutusWare uvádím ve výpisu.

 #!/bin/bash
/bin/mount -t proc none /proc
/bin/bootpc eth0
wget ftp://192.168.1.1/install/win98.image
ftp://192.168.1.1/install/win98.image \\
--progress=dot:mega -O - > /dev/hda2
/bin/mount -t vfat /dev/hda2 /mnt
cd /mnt
/bin/rm -f autoexec.bat config.sys msdos.sys netbios.reg
/bin/wget ftp://192.168.1.1/ `/bin/cat /etc/ip/`/ \\
-r --no-directories --no-parent -A reg,sys,bat
cd /
/bin/umount /mnt
/bin/reboot -f

Startovací skripty a jejich umístění se liší dle distribuce. V případě BrutusWare je to soubor linuxrc.

Z tohoto skriptu je patrné, že se nejprve připojí /proc a následně zinicializuje síťové rozhraní. Dále se wgetem stáhne ze serveru obraz disku a výstup z wgetu je přesměrováván na zařízení /dev/hda2. Parametr --progress=dot:mega je samozřejmě nepovinný. Je to taková grafická "vychytávka", kdy se s každým staženým megabajtem vypíše na obrazovku tečka. V dalším kroku se připojí náš nově stažený oddíl s Windows a na něm se smažou soubory autoexec.bat, config.sys, msdos.sys a netbios.reg. Na závěr se ještě na základě IP adresy klientské stanice stáhnou ze serveru soubory *.reg, *.bat a *.sys. Oddíl s Windows se odpojí a stanice se restartuje.

Windows

Konfigurací a instalací Windows se jistě nemá cenu zabývat. Stanici nakonfigurujeme tak, jako bychom ji chtěli okamžitě připojit do sítě a začít používat. Jeden z možných problémů vyvstávajících z použití stejného obrazu pro všechny stanice je jméno počítače v síti a nastavení síťové tiskárny a dalších proměnných. Tento problém je možné podchytit tak, že vyexportujeme větve registru Windows s požadovanými informacemi do jednotlivých souborů a ty pak budeme stahovat na oddíl s Windows při reinstalaci, jak je ukázáno výše.

Zápis do registru lze zařídit i z DOSu, a to tak, že spustíme program regedit (ideálně z autoexec.bat) s parametrem, kterým bude jméno našeho .reg souboru. Regedit spuštěný z DOSu tiše a bez dialogu přidá větve do registru.

Obraz oddílu lze vytvořit mnoha způsoby. Já osobně používám tento:

 dd if=/dev/hda2 | ssh root@192.168.1.1  dd of=/tmp/win98.img

s tím, že Windows jsou na druhém oddílu disku. Výstupní soubor na serveru je v adresáři /tmp a jmenuje se win98.img.

Krok 2. Akce "destroy"

Dobrá/špatná zpráva je, že o tenhle krok se starat nemusíte. To za vás udělají jiní...

Akcí "destroy" autor míní porušení instalace systému Windows. Bývá zvykem, že se po čase tento OS "zanese" a je třeba jej reinstalovat.

Krok 3. Zpět na krok 1

V tomto případě už jde o automatizovaný systém přeinstalace, pakliže jsme vše nastavili správně. Po úspěšném stažení všech souborů a restartu je stanice opět plně životaschopná a celý tento proces trvá s 2GB obrazem disku stahovaným po 100Mb síti asi 4,5 minuty.

Rozšířená nastavení

Tato nastavení se budou týkat úprav linuxové části reinstalace. Předně je to umístění samotného Linuxu. Pokud bude mít někdo natolik šikovné ruce, že zničí i náš "exekuční nástroj", bude nám asi málo platné, jakou práci jsme si s jeho přípravou dali. Obranou proti tomuto jednání budiž BootROM na síťové kartě. Do BootROMky lze vypálit informace o tom, které soubory se budou ze sítě stahovat. V našem případě by to byl celý operační systém Linux! Jeho funkce by zůstala nezměněna. Museli bychom jej ale uložit ve speciálním formátu NBI - Network Bootable Image. Tyto NBI image se dají vytvořit pomocí programů z balíku mknbi. Program mknbi-linux vytvoří NBI image Linuxu. Lze však také stahovat menu, které by mohlo nahradit lilo či grub.

S přípravou kódu, který se vypálí do BootROMky, si nemusíme lámat hlavu. Na stránkách www.rom-o-matic.net je vytvořen webový formulář, ve kterém si doslova naklikáte, co budete pro svou BootROMku potřebovat. Dokonce jestliže nemáte po ruce BootROM a chtěli byste stahovat Linux ze sítě, pak vězte, že lze kód pro BootROM přeložit i tak, aby startoval z lokálního disku stanice. Vše naleznete na výše zmíněných stránkách.

Další možností pro vyšší zabezpečení celého systému reinstalace by mohl být zákaz použití klávesnice v průběhu přeinstalace. Úplné a definitivní řešení se skrývá v překladu jádra bez podpory klávesnice.

Jako poslední radu na závěr bych doporučoval uložit si také obraz linuxového oddílu včetně MBR. Jistě se někdy bude hodit. Snad nejjednodušeji lze tato data uložit zase pomocí příkazu dd, ovšem s parametrem count=velikost_oddílu_v_MB bs=1M.

Windows XP

Celý princip reinstalace lze použít snad na jakýkoli souborový systém (osobně jsem vyzkoušel FAT32, NTFS, ext2 a ext3 - funguje to). Tedy principiálně lze tento postup použít i na XPčka se souborovým systémem NTFS. S jistými výjimkami. Za prvé, velikost oddílu 2 GB nebude v tomto případě asi dostačující. Měli bychom na to brát ohled a zvolit disk o něco větší.

A druhá, a to zásadní rozdílnost, se týká .reg souborů stahovaných ze sítě. Jak je vidět ze skriptu, který jsem uvedl, oddíl, na který se tyto soubory kopírují, se nejprve musí připojit. Zde vyvstává problém, neboť zápis na NTFS disky je problém (není zatím zcela stabilní, pozn. redakce). Celá věc by se dala vyřešit například tím, že bychom .reg soubory někam šikovně schovali přímo do image oddílu. Tam nám NTFS nevadí, neboť se kopíruje bit po bitu. Druhým možným řešením by bylo nainstalovat WinXP na oddíl se souborovým systémem FAT, nikoli NTFS.

Nahoru

Odkazy

Přidat téma diskuse

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz