Západočeská univerzita v Plzni Fakulta aplikovaných věd katedra informatiky a výpočetní techniky
LABORATORNÍ PRÁCE z předmětu
Přenos dat
na téma
Bootování přes LAN a klonování PC stanic
24. 11. 2006
Petr Včelák
, A06107
Obsah 1 Formulace úlohy...............................................................................................................................................................3 1.1 Co má být řešeno......................................................................................................................................................3 1.2 Výchozí podmínky...................................................................................................................................................3 2 Analýza úlohy...................................................................................................................................................................3 2.1 Tvorba obrazu...........................................................................................................................................................3 2.2 Klonování obrazu na stanice....................................................................................................................................3 2.3 Činnosti nutné ke zprovoznění stanice.....................................................................................................................3 3 Řešení úloh.......................................................................................................................................................................4 3.1 Problematika obecně................................................................................................................................................4 3.2 Použité programy a nástroje.....................................................................................................................................4 3.3 Migrace Norton Ghost disket na boot ze sítě...........................................................................................................4 3.4 Klonování PC stanic pomocí nástroje DRBL..........................................................................................................4 3.5 Klonování PC stanic pomocí UDPcast....................................................................................................................5 4 Nastavení a instalace serveru............................................................................................................................................6 5 Možné komplikace a jejich řešení....................................................................................................................................7 6 Popis bootování ze sítě a její použití................................................................................................................................7 7 Rozbor výsledků, zhodnocení..........................................................................................................................................7 8 Závěr.................................................................................................................................................................................7
1 Formulace úlohy 1.1 Co má být řešeno Zjednodušení činností spojených s přípravou a instalací počítačových učeben na Katedře informatiky a výpočetní techniky (KIV). Zjednodušení má spočívat hlavně ve využití počítačové sítě k zavedení operačního systému (bootování) klonovacích nástrojů. Úkoly k řešení: ●
v současnosti využívaný nástroj Norton Ghost společnosti Symantec umožnit zavedení ze sítě namísto použití disket 3,5“,
●
otestování a zjištění vhodnosti projektu DRBL,
●
otestování a zjištění vhodnosti projektu UDPcast.
1.2 Výchozí podmínky ●
Úlohu zpracujte podle zadání nebo doporučení zadavatele.
●
Úlohy řešte pod operačním systémem Unix (Debian Linux).
●
Zpracování dokumentace formou www stránek a dokumentu.
2 Analýza úlohy Klonování počítačových stanic začíná až okamžikem, kdy je dokončena instalace zvoleného stroje v učebně. Obecně obsahují dual boot operačních systémů GNU/Linux a Microsoft Windows. Pro každý z nich se vytváří samostatný obraz příslušného oddílu a ten se následně naklonuje na počítače ostatní (je tedy nutné provést klonování dvakrát, neaktualizuje se MBR záznam na discích). Toto lze použít pouze v případě že již na stanicích jsou příslušně vytvořené oddíly. V opačném případě se klonuje obraz celého disku.
2.1 Tvorba obrazu Obraz který se zapisuje na příslušné ostatní stanice musí být uložen na server. Jeho vytvoření se provede: 1.
na serveru se vytvoří session pro uložení obrazu na server,
2.
bootování nainstalované stanice z Norton Ghost diskety,
3.
nastavení parametrů (multicast, zadání názvu session, výběr oddílu/disku),
4.
automaticky se spustí procedura uložení zvoleného oddílu/disku na server.
2.2 Klonování obrazu na stanice Na ostatní počítačové stanice se zapíše uložený obraz ze serveru: 1.
na serveru se vytvoří session pro zapsání vybraného obrazu na stanice (volba názvu session, výběr obrazu, počet stanic; pouze tento bod se provádí jedenkrát, ostatní pro každou stanici),
2.
bootování stanic z Norton Ghost disket,
3.
nastavení parametrů stanic (multicast, název session, výběr oddílu/disku),
4.
vysílání dat ke stanicím se automaticky zahájí je-li počet klientů roven nastavenému počtu na serveru.
2.3 Činnosti nutné ke zprovoznění stanice Tyto činnosti je obvykle nutné provést na každé klonované stanici: ●
při klonování oddílu systému GNU/Linux je při změně jádra nutné nabootovat z LiveCD (např. Knoppix) a aktualizovat zavaděč. (tento bod platí v případě boot loaderu Lilo a pokud se neklonoval celý disk včetně MBR záznamu),
●
při klonování oddílu s Microsoft Windows je nutné použít nástroj GhostWalk a pro každou stanici nastavit unikátní název počítače (bod platí jsou-li počítače v doméně Windows),
●
po úspěšném spuštění operačního systému Microsoft Windows přidat stroj do domény (jen jsou-li počítače v doméně Windows).
3 Řešení úloh 3.1 Problematika obecně K činnosti zavedení operačního systému po síti je nutný nakonfigurovaný DHCP server. Konkrétním požadavkem je aby server v odpovědi odeslal informaci o BOOT serveru a název souboru, který z něho má být stažen a zaveden. Odpověď DHCP serveru musí obsahovat: filename "pxelinux.0"; next-server boot_server_IP_nebo_hostname;
Boot server představuje jednoduchý FTP server poskytující kernel k zavedení na klientském počítači. Případně i některé další soubory. Tento server by měl být plně ve správě katedry. Univerzita využívá centrálně spravovaného DHCP serveru. KIV má možnost pouze přidávat a editovat záznamy počítačových stanic z přidělených IP rozsahů. Veškeré testování probíhalo na dočasně spuštěném DHCP serveru pouze pro stanice určené k testování.
3.2 Použité programy a nástroje Serverová část: ●
operační systém GNU/Linux, distribuce Debian testing, kernel 2.6.17 (ds04.fav.zcu.cz)
●
dhcp3-server 3.0.4 (DHCP server; jen k testování)
●
tftpd-hpa 0.43 (TFTP server)
●
tftp-hpa 0.43 (TFTP klient – není nutný než k lokálnímu ověření činnosti serveru; volitelné)
●
udpcast
Klientské stanice: ●
syslinux 3.31 (Bootloader – použit jako PXE bootloader)
●
etherboot 5.4.2 (boot ROM pro boot ze sítě; použití z CD nebo diskety pokud neumí stanice bootovat ze sítě; volitelné)
3.3 Migrace Norton Ghost disket na boot ze sítě Používaných disket je více v závislosti na použitých síťových kartách. Dále existuje boot disketa s nástrojem GhostWalk určeným pro změnu jména a SID počítače pro operační systémy Microsoft Widnows. Pro použití zavedení boot diskety ze sítě je potřeba vytvořit obraz: dd in=/dev/fd0 of=ghostboot-ul402.img
Tento obraz je možné zavést s použitím kernelu memdisk z balíku syslinux. Do boot menu se přidá například: label ghostbootUL402 kernel memdisk append initrd=ghostboot-ul402.img
Stejný postup se použije i pro ostatní diskety.
3.4 Klonování PC stanic pomocí nástroje DRBL DRBL představuje zkratku pro „Diskless Remote Boot in Linux“. DRBL poskytuje služby i bezdiskovým klientským stanicím. V síti je jeden DRBL server. Klienti bootují přes PXE/etherboot (bezdiskový boot). Po síti zavedený operační systém Linux (NFS) nezasahuje na disky stanic. Pomocí zavaděče však lokální klientské operační systémy lze zavést. Bootloader navíc umožňuje spuštění nástrojů pro kontrolu pamětí, úpravu diskových oddílů, klonování oddílů/disků pomocí nástroje Clonezilla, WakeOnLan stanic, apod.. Použití je jednoduché a spočívá pouze v instalaci DRBL a následném spuštění instalačních skriptů. Ty formou otázek provedou nakonfigurování. Instalátor automaticky provede stažení nutných balíčků v podporovaných distribucích (Debian, Ubuntu, Mandriva, Red Hat, Fedora, CentOS a SuSE) jako jsou dhcp server, tftp server, syslinux, apod. Připraví kernel a vytvoří initrd obraz - vše potřebné umístí do kořene TFTP serveru. Jedinou manuální činností je následná konfigurace DHCP serveru.
Došel jsem k závěru, že DRBL server provádí přímé zpracování konfiguračního souboru DHCP serveru například pro využití zapnutí klientské stanice po síti (WakeOnLAN – WOL) pomocí paketu ve speciálním tvaru. Zjištění přímé vazby mezi DRBL a DHCP serverem je zásadní nevýhodou tohoto jinak užitečného nástroje. V místě s centrální správou je lokální DHCP server nevhodný. Pro naše účely má i některé zbytečné funkce (vyžaduje NFS odkud připojuje vzdálený systém).
3.5 Klonování PC stanic pomocí UDPcast UDPcast je nástroj pro přenos dat na více míst na síti LAN. Vhodný právě pro instalaci učebny z jedné zdrojové stanice. Využívá síťové multicast vysílání. Proto klonování jedné stanice trvá stejný čas jako současné klonování celé učebny. UDPcast je pod General Public License (GPL) licencí. Pro použití a testování se ze stránek projektu stáhne „PXE obraz“. To představuje stažení příslušných souborů pxelinux.0, linux (kernel) a initrd do adresáře TFTP serveru. Následuje vytvoření konfiguračního souboru pro pxelinux. Konkrétně se jedná o soubor pxelinux.cfg/default v kořeni TFTP serveru. Příklad výchozí konfigurace obsahuje: default linux label linux kernel linux append load_ramdisk=1 initrd=initrd root=/dev/ram0 ipappend 1
Tím je UDPcast připraven. Stačí nabootovat klientský počítač ze sítě. Je-li vše správně pak se tento nástroj úspěšně zavede a spustí ze sítě. Ve výchozím tvaru (není-li předkonfigurován) se dotazuje na nastavení. Lze ovlivnit jazyk, klávesovou mapu, moduly pro síť a jejich parametry, nastavení sítě a port na kterém přenos probíhá, moduly pro disky a jejich parametry, s jakým diskem/oddílem se bude pracovat, typ zda se jedná o klienta (přijímá) nebo o server (vysílá data), metoda komprese dat, parametry přímo pro UDPcast, apod. Detaily lze nalézt na webu projektu. Na stanici označené za vysílací se zobrazuje informace, které stroje jsou zaregistrovány jako posluchač. Zahájení přenosu dat a tím vlastního procesu klonování se provede stiskem libovolné klávesy na některé stanici. Lze předkonfigurovat, aby se klonování zahájilo samo v okamžiku kdy vysílač registruje definovaný počet posluchačů. To může být vhodné pro automatizaci procesu. V současnosti používaná metoda ukládá obraz na server. V okamžiku potíží s učebnou lze obnovit původní instalaci třeba v celé učebně ze zálohy. I tuto vlastnost UDPcast podporuje. Přijímač i vysílač čte/zapisuje data z/do příslušného souboru pomocí parametru --file. Bude-li umístěn na TFTP server docílíme možnosti zálohovat konečný obraz stanice. Dalším kladem je možnost přidat skript, který bude proveden před/po klonování, navíc odlišný pro vysílač i přijímač. Ať už se jedná o pouhé provedení restartu stanice po dokončení, případně provedení opravy MBR záznamu. Tyto skripty jsou přímo v initrd souboru. Není však problém je dle potřeby zaměnit pomocí příslušného nástroje createImage a parametru --merge soubor=novysoubor před provedením zavedením ze síťě. Nástroj UDPcast se jeví jako velmi vhodný neboť jej lze libovolně přizpůsobit. Zdrojové kódy jsou k dispozici převážně pod licencí GPL.
4 Nastavení a instalace serveru Instalace potřebných balíčků v Debianu spočívá v provedení (jako uživatel root): apt-get update apt-get install tftpd-hpa tftp-hpa syslinux
Následně vytvoříme adresář /tftpboot a do něho připravíme potřebné soubory. mkdir /tftpboot cp /usr/lib/syslinux/pxelinux.0 /tftpboot cd /tftpboot wget http://udpcast.linux.lu/20061020/linux wget http://udpcast.linux.lu/20061020/initrd mkdir /tftpboot/pxelinux.cfg
Následně vytvoříme boot menu. Pokud chceme pro každý stroj samostatný konfigurační soubor pak jej pojmenujeme pomoci MAC adresy síťové karty příslušného stroje. Jako oddělovač dvojic hexadecimálních číslic použijeme znak pomlčky (např: 01-88-99-aa-bb-cc-dd). Skupinu strojů můžeme pojmenovat pomocí hexadecimálního tvaru IP adresy stroje bez oddělovacích prvků. Příkladem můžeme vzít stroj 147.228.67.101 (1. PC stanice z UL402). Tomu odpovídá 8EE44365 hexadecimálně. Na TFTP serveru je vyhledáváno boot menu postupně dokud není jeden z konfiguračních souborů nalezen: /tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd /tftpboot/pxelinux.cfg/8EE44365 /tftpboot/pxelinux.cfg/8EE4436 /tftpboot/pxelinux.cfg/8EE443 /tftpboot/pxelinux.cfg/8EE44 /tftpboot/pxelinux.cfg/8EE4 /tftpboot/pxelinux.cfg/8EE /tftpboot/pxelinux.cfg/8E /tftpboot/pxelinux.cfg/8 /tftpboot/pxelinux.cfg/default
Není-li žádný z těchto souborů nalezen zavádění selhalo. Pro ověření lze do souboru default uložit: default linux label linux kernel linux append load_ramdisk=1 initrd=initrd root=/dev/ram0 ipappend 1
Boot menu popisuje co vše lze přes síť zavést. Je vhodné omezit přístupová práva na neprivilegovaného uživatele: chown -rv nobody:nogroup /tftpboot
Upravíme nastavení TFTPD serveru v souboru /etc/default/tftpd-hpa aby obsahoval následující: RUN_DAEMON="yes" OPTIONS="-l /tftpboot"
# lze zabezpecit pomoci argumentu '-s'
Následně přidáme záznam do souboru /etc/inetd.conf: tftp
dgram
udp
wait
root
/usr/sbin/tcpd /usr/sbin/in.tftpd
/tftpboot
příslušnou službu restartujeme: /etc/init.d/inetd restart
Tímto by mělo být nastavení serveru dokončeno. Pro reálné použití je v DHCP odpovědi nutná informace o boot serveru a o souboru, který má být použit pro bootování (toto musí centrálně nastavit v okamžiku kdy je boot server oficiálně znám): filename "pxelinux.0"; next-server boot_server_IP_nebo_hostname;
5 Možné komplikace a jejich řešení Komplikace na serverové části (boot server) by neměli být žádné. Stačí do adresáře TFTP serveru nakopírovat připravené soubory z archívu, který je součástí návodu. DHCP server na KIV je otázkou centrální správy. Stroje, které mají být bootovány musí mít záznam v centrálním DHCP serveru. Pro nové stanice je nutné nejprve zjistit MAC adresy síťových karet. Druhou možností je mít pro tyto účely lokální DHCP server pracující s privátním rozsahem IP adres jen pro účely klonování nebo pouhého zjištění MAC adres. Má-li počítač více jak jednu síťovou kartu a nedaří se boot ze sítě. Zjistit, která obsahuje Boot-ROM. Případně aktivovat tu správnou. Zkontrolovat MAC adresu a záznam v DHCP serveru. Pro zavedení operačního systému ze sítě je nutné mít k dispozici síťovou, kartu která obsahuje Boot-ROM. Spustit BIOS Setup počítače a ověřit zda je boot po síti povolen, případně tak učinit. Pokud obsahuje možnost nastavení jedná se konkrétně o PXE boot. Neumí-li síťová karta bootovat pak je možné použití např. nástroje etherboot. Jedná se o nástroj, který vytvoří Boot-ROM a umožní následné zavedení zavaděče ze sítě. Etherboot lze spustit z diskety, CD, Flash disku, pevného disku, apod. Velikost kernelu. Toto může být problém ve specifických případech neboť kernel se musí vejít obecně do 640 kB reálné paměti. Prakticky 128 kB je zabráno ovladačem a lze využít maximálně 512kB. Vetší jádro je tedy nutné rozdělit na moduly a ty přiložit jako initrd obraz, který je stažen v 2. fázi.
6 Popis bootování ze sítě a její použití Se zavedením operačního systéme ze sítě je počítáno pouze pro účely správy počítačových stanic. Po zapnutí počítače se nastaví bootování ze sítě (obvykle pomocí klávesy F12, bližší informace viz konkrétní počítačová sestava). Jakmile obdrží počítač všechny podstatné informace z DHCP serveru stáhne z boot serveru (TFTP) příslušný soubor pxelinux.0 který je zaveden. PXELinux se na TFTP serveru pokusí najít příslušný konfigurační soubor obsahující boot menu. Uživatel má vymezenou dobu na výběr položky z menu. Po jejím uplynutí se zahájí zavedení výchozího kernelu a vlastní nastartování ze sítě. Volbou a následným stiskem klávesy Enter se zahájí boot ze sítě s příslušným kernelem.
7 Rozbor výsledků, zhodnocení Úlohu a její úkoly jsem řešil dle zadaných podmínek. Výsledkem práce je úspěšné zavádění původně disketového operačního systému přes síť (OS DOS s nástrojem Norton Ghost, případně i GhostWalk). Rozdíl je jen ve způsobu zavedení, následná činnost se nijak neliší. Pro testování jsem experimentálně používal dočasně vytvořený lokální DHCP server. Jeho konfiguraci neuvádím neboť ve výsledku nemůže být součástí kvůli existenci centrálního serveru. Projekt DRBL je velice zdařilým. Pro účely KIV však nevhodný. Příčinou je používání lokálního DHCP serveru. Ten jsem sice experimentálně měl vytvořený, ale bohužel pro finální nasazení je nereálný. UDPcast jsem použil pro klonování nových serverů určených pro předmět KIV/DS (celkem 10 počítačů). Použil jsem dočasného lokálního DHCP serveru. Obraz celého disku /dev/sda (80 GB) byl během 60 minut přenesen na zbývajících 9 počítačů. bylo použito komprese GZIP. Přitom průměrně byla data přenášena 10Mbps. To odpovídá i množství přenesených dat o rozsahu asi 4 GB. Důležitou roli hrálo obsazení disku, které bylo 1,7 GB skutečných dat. Použití v některé z počítačových laboratoří bylo s ohledem na probíhající semestr nemožné. Do síťového boot menu jsem mimo nutné nástroje Norton Ghost, GhostWalk a UDPcast přidal memtest86. Taktéž ze sítě. Tento zavaděč umožňuje i zavedení systému z lokálního disku stanice. Zkoušel jsem pro /dev/hda1 (Windows) i pro /dev/hda2 (Linux).
8 Závěr Pokud se rozhodne bootování ze sítě alespoň částečně používat, bude nutné, aby odpovědi DHCP serveru obsahovaly příslušné informace nutné k úspěšnému zavedení operačního systému ze sítě. Lze prakticky využít i jen zavádění operačního systému ze sítě. Vhodným kandidátem by mohla být malá distribuce Linuxu s minimální sadou nástrojů (práce s disky, sítí, apod.) pro správu učeben. Pomocí této distribuce by bylo možné snadno opravit zavaděč v MBR disku, rozdělit disk, apod. Systém však musí být chráněn heslem. Nutností pro použití na libovolném počítači je existence záznamu v DHCP serveru pro síťovou kartu tohoto počítače.