Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




K čemu je to dobré

Ceha slovaca


ALTE DOCUMENTE

Kulový blesk
Generace májovců
Marketingova komunikacia
Web
Application Form Tips
Setkání.
PODNIKATEĽSKÉ PLÁNY
Historická tématika v české literatuře
Rostěnky s tajemstvím
K čemu je to dobré

Typickým příkladem, kde vyuzít znalost vytvoření bootovacího CD s Windows 2000 je vytvoření nového bootovacího (a tím pádem instalačního) CD s novým service packem. Service packy pro Windows 2000 narozdíl od předchozích NT systémů (typicky NT4) umozňují aplikaci na instalační sadu. Takto aktualizovaná instalační sada má tu výhodu, ze pokud z ní nainstalujete Windows 2000, bude jiz instalace obsahovat onen service pack, který byl na instalační sadu aplikován. Zkrátka a stručně: Nainstalujete si z CDčka Windows 2000 a uz tam bude např. Service Pack 2.



Pokud budete chtít aplikovat na instalačku Win2000 např. SP2, musíte vsechny soubory z CD zkopírovat na disk a potom určitým způsobem aplikovat SP. Pak musíte vsechny soubory vypálit na nové CD. A kdyz to provedete bězným způsobem, nebudete moci instalovat Windows přímým nabootováním z CD - protoze CD nebude bootovací. Jak tento problém vyřesit, to se vám pokusím v následujících odstavcích popsat.

Rozdíl v bootování z CD mezi WinNT/2K/XP a Win9x

U Win9x (přesněji řečeno Windows 98 a Windows Millennium Edition) je bootovací část udělána větsině z vás známou emulací bootovací diskety. Vytvoření takto bootvacího CD je poměrně jednoduché - vytvoříte bootovací (systémovou) disketu, z té pak uděláte image a tento image předhodíte vypalovacímu programu jako image pro bootovací část CD (nebo mu předhodíte jen disketu a on si image z diskety udělá sám). Takové CD pak funguje tak, ze z něj nabootujete a ono se tváří jako disketa A:. A na té disketě by měly být ovladače pro CD-ROM mechaniky, jinak se na zbytek CD prakticky nedostanete. Původní disketová mechanika A: se pak tváří jako B:.

V případě systému, zalozeného na WinNT (tedy Windows NT4, Windows 2000 a Windows XP) je bootovací část udělaná bez emulace. To znamená, ze po nabootování jsou přístupné vsechny soubory na CD stejně tak, jako kdyz se na obsah CD podíváte v jiz nainstalovaném operačním systému. Rozdíl je také v bootovací image. Zatímco v případě Win9x dáváte vypalovacímu softwaru disketu (nebo její image), v případě WinNT/2K/XP dáváte vypalovacímu softwaru jeden bootovací sektor. A jen tak pro zajímavost - image bootovací diskety má zpravidla velikost 1 474 560 bajtů, image bootovacího sektoru pro NTčka má velikost 2 048 bajtů - tedy přesně 2 kila.

Jestlize víte, jak vytvořit bootovací CD pomocí emulace diskety, pak vás asi bude zajímat, jak je to s těmi NT-based systémy. Kde tedy vzít image bootovacího sektoru a co kde a jak nastavit, aby to fungovalo. Předně vás upozorňuji, ze ten image si budete muset sehnat sami. Ovsem povím vám odkud a jak ho vydloubnout. A abych uz zbytečně neplýtval slovy, zkusím udělat tento návod asi jako kuchařku.

Ingredience
  • Jedno originální bootovací CD s Windows NT4 nebo Windows 2000 nebo s Windows XP (zkrátka NT4 a vyssí NT-kompatibilní).
  • CDRWin 3.8 nebo novějsí (proč, dozvíte se dále / se starsím to nemám ozkousené, ale asi to taky chodí).
  • CDmage - (zkouseno s verzí 1.02.1 Beta 5).
  • Instalační soubory v adresáři I386 - musí obsahovat vsechny (aby instalace fungovala), zvlástě pak SETUPLDR.BIN a BOOTFIX.BIN - ten vsak není u Windows NT4 potřeba (SETUPLDR.BIN je nezbytný k nabootování). Nejlépe je mít celé CD v jedné slozce tak, aby celý obsah této slozky odpovídal obsahu budoucího CD (např. nakopírované celé CD ve slozce C:\WinInst)
  • Asi tak 700 MB místa na disku.
  • A pochopitelně jedno prázdné CD. Pro začátek pouzijte raději CD-RW - co kdyby se něco nezdařilo.

Stručný důvod, proč je potřeba CDRWin: Je to jeden z mála programů, který umí při vytváření image nepřidávat k názvům souborů čísla verze formátu ISO9660 - o co jde, dozvíte se později.

Získání bootovacího sektoru

Bootovací sektor získáte z originálního CD následujícím způsobem:

  • Vlozte originální CD do mechaniky a spusťte CDRWin.
  • Zvolte Extract Disc/Tracks/Sectors (třetí ikona zleva nahoře).
  • Vyberte CD Reader, ve kterém je originální CD (pokud máte jen jednu mechaniku, je jiz vybrána). Pokud je vse v pořádku, objeví se v rámečku Track Selection zlutý kruh s jedničkou uprostřed.
  • Jako Extract Mode vyberte Disc Image/Cuesheet (zpravidla je to uz vybrané).
  • V rámečku Reading Options nastavte vsechna políčka nezaskrtnutá (RAW, CD+G, CT-TEXT a MCN/ISRC), na ostatním nastavení v zásadě nezálezí.
  • Do kolonky Image Filename napiste cestu a název souboru (bez přípony), kam se má ulozit image celého CD. Jednoduchý příklad: C:\ObrazCD (tento příklad předpokládá, ze na disku C: není slozka ObrazCD).
  • Nakonec stiskněte tlačítko START (ne to na listě Windows, ale to v okně Extract Disc/Tracks/Sectors to Image File)

Pokud vse proběhne v pořádku, CDRWin zobrazí průběh načítání CD a skončí s oznámením Operation Successfully Completed !. Pak můzete CDRWin zavřít (zatím ho nebudete potřebovat). Můzete také vyndat z mechaniky to originální CD (to uz nebudete vůbec potřebovat - ovsem pokud z něj nechcete vzít soubory pro budoucí bootovací CD).

Pokročilejsím uzivatelům místo celé této řady kroků stačilo říci jen Udělejte z CD na pevný disk CUE/BIN nebo prostě jen Zgrabněte CDRWinem CD.

  • Nyní spusťte CDmage a otevřete v něm právě vytvořený obraz CD (z Menu File - Open nebo zkráceně Ctrl+O popř. otevírací ikonka - druhá zleva, v kolonce Files of Type: vyberte volbu CDRWin and Fireburner cuesheet file (*.cue) a nalistujte v něm ten obraz CD - z předchozího příkladu by to bylo C:\ObrazCD.cue)
  • Z menu File vyberte Save Boot Image. Pokud je tato volba nedostupná, pak CD, které jste načetli, nebylo bootovací.
  • V objevivsím se okénku stiskněte tlačítko Save a v dalsím okně opět Save. CDmage vám následně oznámí, kam byl ulozen tento bootovací záznam. Zpravidla to bude tam, kde máte jiz načtený obraz celého bootovacího CD.

Pokud proběhlo vse v pořádku, meli byste mít v tuto chvíli na disku ten bootovací sektor, o který nám celou dobu v tomto odstavci slo. Dle výse pouzitého příkladu byste tedy měli mít na disku C: soubor boot.img, který by měl mít velikost 2 048 bajtů. Od této chvíle jiz nebudete CDmage potřebovat, takze ho můzete bez obav zavřít ;-). Stejně tak můzete smazat stazený obraz CD a uvolnit tím místo na disku.

Pro pokročilejsí uzivatele: Tento bootovací sektor je mozné získat i jinak - bez nutnosti ukládat celé CD na disk. Ovsem musíte mít buďto program, který toto dokáze, anebo vědět, který sektor na CD je ten bootovací - a jednoduse ho např. CDRWinem vyextrahovat.

Na zádosti některých čtenářů zveřejňuji zatím nejjednodussí postup, jak vyextrahovat Bootovací sektor z CDčka:

  • Potřebujete k tomu program IsoBuster (zkousel jsem verzi 0.99.7.4).
  • Ten po instalaci spustíte, vlozíte CD do mechaniky a pak najdete polozku Bootable CD a kliknete na ni.
  • V pravém okně klikněte pravým tlačítkem na Microsoft Corporation.img a zvolte první moznost - Extract Microsoft Corporation.img

  • Ulozte soubor, kam potřebujete - pro jednoduchost na C: - a aby to sedělo s dalsími obrázky v tomto článku, nazvěte jej boot.img (výsledek bude tedy C:\boot.img)

Vidíte, jak jednoduse to také jde. Kdybych pouzíval IsoBuster dříve, mohl jsem to zakomponovat do tohoto článku napoprvé. Opravdu nikdo není dokonalý :-). Předchozí návod na extrakci bootovacího sektoru samozřejmě funguje také, ale je o poznání slozitějsí (a časově náročnějsí - a navíc vyzaduje vyextrahovat celé CD - ovsem proč extrahovat celé CD, kdyz potřebujeme jeden sektor, ze :-) ).

Vytvoření bootovacího CD

Nyní, kdyz uz máte ten správný bootovací sektor, je velice jednoduché pouzít jej pro vytvoření bootovacího CD. Opět pouzijte CDRWin.

  • Stiskněte ikonu File Backup and Tools (čtvrtá horní zleva)
  • V kolonce Backup/Tool Operation vyberte Build and record an ISO9660 image file nebo rovnou Backup files directly (on the fly) to an ISO9660 compatible disc (tato volba vám usetří na disku místo).
  • Pokud jste vybrali Build and record an ISO9660 image file, musíte jestě v rámečku ISO9660 Image File do kolonky Image Filename zadat název souboru popř. i cestu, kam se vám před vypálením vytvoří obraz CD.
  • V rámečku File Backup List stiskněte tlačítko Directory a nalistujte tu slozku, ve které máte obsah budoucího CD. Tlačítkem Add ji pak přidáte do seznamu k vypálení. Nebo můzete pouzít průzkumníka a slozku do tohoto okna z něj přetáhnout mysí.
  • Nastavte zaskrtávací políčka přesně podle obrázku.

  • V rámečku Recording Options nastavte moznosti podle druhého obrázku. Ostatní políčka nechte tak, jak uznáte za vhodné.

  • A nyní velmi důlezitá věc: Zaskrtávací políčka v rámečku ISO9660 Image File musí být tak, jak ukazuje třetí obrázek. Zejména musí být zaskrtnutá ta zvýrazněná volba Disable Version Numbers - to je důvod, proč pouzít právě CDRWin. Málokterý program tohle dokáze (ze známých to neumí např. Nero). Pokud toto neprovedete, nebude CD bootovat. Blizsí podrobnosti se dozvíte dále.

  • Dalsí důlezité nastavení naleznete pod tlačítkem Advanced Options na zálozce Bootable Disc. Zaskrtněte zde volbu Make Bootable Disc.

  • Media Emulation Type nastavte na Custom, v kolonce Image File Name nalistujte ten dvoukilový soubor boot.img (při procházení bude potřeba změnit Files of type na All Files (*.*), aby byl soubor vidět), do kolonky Load Segment napiste 07C0 (uz by to tam mělo být) a do kolonky Load Sector Count napiste číslo 4. Mělo by to vypadat asi tak, jako na čtvrtém obrázku.
  • Na zálozce Volume Descriptor můzete jestě bez obav vyplnit Volume Label a dalsí věci. Nakonec toto okno potvrďte tlačítkem OK.

V tuto chíli by mělo být vse připraveno k vypálení. Nezbývá tedy, nez vlozit do vypalovačky prázdné CD a stisknout v CDRWinu START. CDRWin by měl oznámit něco jako kolik souborů budete vypalovat, kolik adresářů a tak podobně. Po stisku tlačítka Continue se začne vytvářet image CD nebo se začne rovnou vypalovat na CD (to závisí na tom, co jste vybrali v kolonce Backup/Tool Operation). Kazdopádně by pálení mělo skončit s oznámením Operation Successfully Completed.

Pokud se na CD podíváte např. průzkumníkem, měli byste vidět přímo v kořeni CD zejména slozku I386. A pokud v ní kromě spousty dalsích souborů uvidíte také SETUPLDR.BIN, měli byste mít vyhráno. A jestli máte skutečně vyhráno - to poznáte, az se pokusíte z CD nabootovat.

Tato část je jiz jen technickým popisem vlastního startu počítače z CD a také vysvětlením čísel, které bylo třeba zadat v předchozích odstavcích v programu CDRWIN. Předpokládá se čtenářova znalost rozdělení disků a architektury procesorů Intel x86 - adresování paměti v reálném módu (segmentování).

Nejprve si popíseme "klasický" boot počítače:

Poté, co zapnete počítač, předá procesor, který se v tu chvíli nachází v reálném módu, řízení na adresu 0F000h:0FFF0h, kde začíná inicializační kód BIOSu. Poté, co BIOS inicializuje vsechna zařízení v počítači (dnes hlavně Plug and Play karty, či zařízení integrovaná na základní desce), načte první sektor pevného disku (sektor má v lineárním adresování sektorů číslo 0) do paměti na adresu 07C0h:0000h. Do registru DL ulozí BIOS číslo pevného disku, ze kterého sektor pochází (tato hodnota je obvykle 80h - první disk v systému, proto ji mnoho programátorů ignoruje a v zavaděčích hlavního sektoru disku - MBR - raději pouzívá hodnotu bytu, určujícího bootovatelný oddíl, která je také 80h; vyuzití číslo, předané v registru DL, ale přesto má, ale o tom az dále). Kód, obsazený v tomto sektoru, se nejdříve sám přesune na adresu 0600h:0000h (platí pro standardní bootovací kód MS-DOSu a Windows jakékoli řady), načez se pokusí vyhledat aktivní diskový oddíl. Pokud zádný takový oddíl neexistuje, dojde k vyvolání přerusení INT 18h, kdy se vrací řízení zpět BIOSu, na kterém dále závisí, co se stane. Pokud dojde k nalezení aktivního oddílu, načte se jeho první sektor opět na adresu 07C0h:0000h a do registru DL by měla být umístěna taková hodnota, jaká byla ve chvíli, kdy byl volán MBR sektor BIOSem. (Jak jsme si ale řekli, mnoho zaváděcích sektorů umisťuje do registru DL automaticky hodnotu 80h, tedy první disk v systému.) Následuje předání řízení do paměti na adresu 07C0h:0000h. Dalsí činnost závisí jiz na načteném zavaděči, protoze pro kazdý souborový systém (a mnohdy i pro různé verze operačního systému) se zavaděč z prvního sektoru diskového oddílu lisí.

Nyní se podíváme na to, jak pracuje bootovací proces CD s Windows 2000:

Činnost BIOSu po zapnutí počítače je téměř shodná s předchozím případem, az na to, ze nenačítá první sektor z pevného disku, ale speciálně vymezený počet sektorů z CD. (Dnesní BIOSy mají vestavěnou podporu ATAPI CD-ROM mechanik, a proto mohou i bez načítání speciálních ovladačů bootovat přímo z CD.)

Načtení bootovacího sektoru z CD je slozitějsí, nez načtení hlavního zaváděcího sektoru z pevného disku. Na CD totiz není bootovací sektor ulozen hned v prvním sektoru, jeho umístění určují Volume Descriptory. BIOS tedy nejdříve musí tyto volume descriptory načíst a nalézt v nich konkrétní číslo sektoru, který má načíst. Volume Descriptory začínají na CD od sektoru 16 (připomínám, ze na datovém CD mají sektory velikost 2 048 bajtů).

Kdyz BIOS zjistí, v jakém sektoru je ulozen bootovací kód, musí také zjistit velikost tohoto kódu a typ emulace. Velikost kódu se počítá v násobcích 512 (jde o násobky standardní velikosti sektoru pevného disku), a proto tedy pokud má bootovací kód velikost 2 048 bajtů, je nutné při vytváření naseho bootovatelného CD zvolit jako velikost kódu 4 sektory. Dále je třeba zjistit číslo segmentu, kam se má bootovací kód načíst. V nasem případě se načítá na standardní adresu 07C0h:0000h, tedy na segment 07C0h. Na typu emulace závisí, jak se bude disk v systému chovat. Existuje několik druhů emulace - emulace disket (v tomto rezimu se po nabootování chová bootovací image jako první disketová jednotka v systému a původní disketová jednotka jako druhá disketová jednotka; podporovány jsou obrazy disket velikosti 1,2MB, 1,44MB a 2,88MB), emulace pevného disku (v tomto případě se po nabootování chová obraz pevného disku, který je vypálený na CD, jako první pevný disk v systému a dalsí disky jsou posunuty jako při bootování s emulací disketové jednotky) a rezim, kdy nedochází k emulaci CD (pro bootovací kód se CD chová jako pevný disk, který má velikost sektoru 2 048 bajtů, zvlástní adresářové struktury a nemá hlavní zaváděcí záznam ani tabulku rozdělení disku). Právě poslední rezim (bez emulace) vyuzívá ke své funkci bootovací kód CD Windows 2000.

Kdyz tedy BIOS načte tento kód do paměti, do registru DL umístí číslo, pomocí kterého poté bootovací kód přistupuje k CD jako k pevnému disku, dojde k předání řízení na adresu 07C0h:0000h, tedy na první byte kódu pro obsluhu bootu z CD. (Zde jiz k vyuzití předávaného čísla disku dochází, narozdíl od výse uvedeného případu bootování z disku pevného.)

Nez přistoupím k popisu činnosti bootovacího kódu CD Windows 2000, dovolím si poznámku k názvům adresářů a souborů na CD: v adresářových strukturách mají být podle standardu ISO9660 (standard pro organizaci dat na CD) jako součást názvu souborů i adresářů přípony ";1", které vsak jsou softwarově odstraněny, takze je nikdy v zádném operačním systému neuvidíte. Číslo, které je za znakem středník (v tomto případě je to jednička) určuje číslo verze standardu ISO9660, podle které je CD vytvořeno. Tyto přípony ale na bootovatelném CD Windows 2000 (zřejmě kvůli délce bootovacího kódu) být nesmějí. To je důvod, proč bylo nutné v CDRWinu zvolit volbu Disable version numbers, která se postará o nepřidávání těchto přípon. A také je to důvod, proč například v Neru bootovatelné CD Windows 2000 nevytvoříte - v Neru prostě přidávání těchto přípon zakázat nejde.

Bootovací kód provede následující činnosti přesně v tomto pořadí: zkontroluje, byl li načten celý tento sektor (kontrolou posledních dvou bytů). Pokud bylo CD vypáleno se spatným počtem bootovacích sektorů, nastaví se speciální byte oznamující číslo chyby na specifickou hodnotu a tato chyba se oznámí uzivateli. Pokud byl bootovací kód načten kompletně do paměti, dojde k vyhledání kořenového adresáře na disku a zjistění, je-li v něm slozka I386. Ve slozce I386 poté dojde k vyhledání souboru BOOTFIX.BIN a jeho načtení do paměti. Následně dojde k předání řízení na adresu, na kterou byl BOOTFIX.BIN načten a dojde k vypsání hlásení, ze pro boot z CD je nutné stisknout klávesu. Takto je osetřena například automatická instalace, není tedy nutné v BIOSu měnit pořadí disků, ze kterých se bootuje. Pokud uzivatel do tří sekund nezmáčkne zádnou klávesu, dojde k načtení prvního sektoru prvního pevného disku (číslo 80h) a předání řízení (o tom, co se bude dít dále, je psáno výse). Zmáčkne-li uzivatel jakoukoli klávesu, vrátí BOOTFIX.BIN řízení zpět bootovacímu kódu a ten vyhledá ve slozce I386 soubor SETUPLDR.BIN. Kdyz ho najde, načte ho do paměti na adresu 2000h:0000h, do registru DL umístí číslo disku, ze kterého se bootuje (např. 81h, pokud je v systému jen jeden pevný disk a jedna CD-ROM mechanika) a předá řízení na adresu 2000h:0000h.

Pokud není adresář I386 nebo jeden ze souborů BOOTFIX.BIN či SETUPLDR.BIN přítomen, dojde opět k nastavení specifického byte v sektoru a oznámení čísla chyby uzivateli.

Poznámka od WIFTa: Jak mi Zajdee jestě před uzávěrkou oznámil - soubor BOOTFIX.BIN být na CD nemusí - obejde se to bez něj. Pokud nebude nalezen, přejde se rovnou k SETUPLDR.BIN. A takhle vlastně bootuje CD s NT4. A pokud si na CD s Windows NT4 ten BOOTFIX.BIN přidáte a pouzijete bootovací sektor z Windows 2000, bude i nové bootovací CD s WinNT4 po startu chtít stisk klávesy.

Předáním řízení na adresu 2000h:0000h končí úloha bootovacího kódu, o dalsí činnost (kterou je načtení souborů SETUPREG.HIV, TXTSETUP.SIF a ovladačů a následně vlastní start instalace - coz uz je vlastně jádro Windows 2000 spolu se základními ovladači a speciálním subsystémem - ale o tom by se dalo napsat mnoho dalsích stránek textu) se uz stará SETUPLDR.BIN.

Na závěr jen dodám, ze jsem tento postup úspěsně prakticky aplikoval na tyto systémy:

  • Windows 2000 Professional CZ
  • Windows 2000 Server
  • WIndows 2000 Advanced Server
  • Windows XP (několik nefinálních buildů)

A pokud jste to dočetli az sem, mám pro vás bonus v podobě krátkého postupu, jak aplikovat ServicePack na instalačku Windows 2000:

  • Zkopírujte celé CD s Windows 2000 na pevný disk do nějaké slozky (příklad: C:\WinInst)
  • Stáhněte si od Microsoftu celý ServicePack (ten soubor má u SP2 něco okolo 100 mega) - příklad: w2ksp2.exe (105,6MB) český SP2
  • Spusťte jej (nejlépe v příkazovém řádku nebo přes příkaz Spustit) s parametry pro extrakci - asi takto:
    w2ksp2.exe -x
    Budete vyzváni k zadání slozky, kam se má ServicePack rozbalit. Zadejte např. C:\W2KSP2 (pozor - tuto akci musíte provádět pod Windows 2000 - ve Windows 9x vám to nebude chodit)
    Tímto si rozbalíte celý ServicePack2 do slozky W2KSP2 na disku C:.
  • Přejděte v příkazovém řádku do slozky C:\W2KSP2\i386\update a spusťte následující příkaz:
    update.exe -s:C:\WinInst
    Tato akce aplikuje ServicePack přímo na instalační soubory Windows 2000. Po dokončení aktualizace můzete celé CD znovu vypálit v tomto článku uvedeným postupem.

Výhoda je jasná - instalace Windows 2000 bude obsahovat přímo integrovaný ServicePack2. Nevýhoda (dá-li se to tak vůbec nazvat) je v tom, ze nebudete moci z takovýchto Windows ServicePack odinstalovat. Ale myslím, ze to nevadí :-).

Tak hodně stěstí ;-)


Document Info


Accesari: 2081
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )