Více OS na jednom počítači Kukaččí hnízdo Současný počítač umožňuje pro řešení různých úloh používat různé operační systémy. Jestliže ještě nedávno operační systémy od Microsoftu neměly prakticky žádné silnější protivníky, nyní se objevila vážná konkurence a začíná si nárokovat místo na našich domácích počítačích. Mám na mysli OS typu Unix - Linux a FreeBSD. Tyto OS pocházejí z oblasti serverů, kde jim patří značná část trhu. Nabídnout nám mohou poměrně mnoho: značnou spolehlivost, funkčnost a stabilitu při práci, nenáročnost na zdroje a otevřenost zdrojového kódu. Do nedávné doby tyto systémy nepotřebovaly grafické uživatelské rozhraní, protože ve světě serverů plně postačoval asketický příkazový řádek. Až s příchodem moderních grafických rozhraní do Linuxu začala prudce růst popularita tohoto OS i mezi uživateli domácích počítačů. Mnozí instalují alternativní OS jednoduše ze zvědavosti, někomu se pohodlně pracuje v Linuxu a hry si pouští ve Windows. Důvodů může být mnoho. V článku bychom chtěli ukázat, jak jednoduše si mohou tyto různé OS rozdělit místo na pevném disku vašeho počítače. Struktura pevného disku Na pevném disku jsou informace uloženy "rozporcovaně" - po sektorech. Sektor, to je minimální objem dat, který má na pevném disku unikátní adresu. K tomu, aby se informace daly přečíst nebo zapsat na místo, které je pro ně určeno, je nutné znát adresu sektoru, která se předává řadiči pevného disku. Velikost sektoru je pro všechny pevné disky standardní - 512 B. Aby se dal jednoznačně adresovat sektor dat, je nutné uvést tři čísla: číslo stopy (cylindru), číslo sektoru na stopě a číslo hlavičky. Tento způsob adresace se nazývá CHS (Cylinder, Head, Sector). Právě tento způsob byl v prvopočátku realizován v BIOS počítačů, ale kvůli vzniklým omezením, spojeným s neustálým zvětšováním velikosti pevných disků, byl časem vyměněn jinou adresací - LBA (Logical Block Addressing). Sektory na disku se začaly označovat jedním parametrem - lineární adresou sektoru, jednoznačně svázanou s jeho CHS adresou: lba = (C*Head's+H)*Sector's + (S-1). Další růst velikostí pevných disků principiálně znemožnil adresování dat na discích použitím dřívějších služeb BIOS. Bylo vyvinuto rozšířené rozhraní BIOS, které bohužel není zpětně kompatibilní. A starší OS ( jako například MS-DOS), které používají staré rozhraní BIOS, nemohou překlenout omezení 8 GB (problém 1024 cylindrů). Žádný současný OS již nepoužívá BIOS, všechny mají vlastní ovladače pro práci s pevnými disky. Proto se zdá, že se na ně toto omezení nevztahuje. Ale pozor: předtím než je operační systém schopen použít vlastní ovladač, musí ho nejprve spustit (nabootovat), proto je ve fázi počátečního spuštění nucen používat BIOS. A právě to způsobuje omezení rozmístění částí mnohých OS za hranicemi 8 GB. Pevný disk se dělí na souvislé části, které nazýváme oddíly (partitions). Oddíl může být minimálně jeden, maximálně mohou být čtyři. Jsou to tzv. primární oddíly (primary partition). Jeden z nich může být označen jako rozšířený oddíl (extended partition). Rozšířené oddíly se samostatně nepoužívají, mohou pouze obsahovat logické jednotky (logical partitions). Jeden rozšířený oddíl může také obsahovat jiný rozšířený oddíl. Tento mechanismus umožňuje rozdělit pevný disk na potřebné množství oddílů. Logickým jednotkám se říká logické disky nebo jednoduše disky. OS jako disk chápe buď primární oddíl, nebo logický disk. Nulovému sektoru každého pevného disku se říká Master Boot Record (MBR) a obsahuje tabulku oddílů (partition table). Prvních 446 bajtů MBR je obsazeno startovacím programem, jenž řídí spuštění počítače. Dále následuje tabulka oddílů, která je dlouhá 64 bajtů. A nakonec poslední dva bajty se používají jako kontrola. Tabulka oddílů obsahuje čtyři záznamy, každý po 16 bajtech, které definují primární oddíly. Každý záznam má následující strukturu: struct partition {char active; /* 0x80: bootovací, 0: nebootovací */ char begin[3]; /* CHS prvního sektoru */ char type; /* typ oddílu */ char end[3]; /* CHS posledního sektoru */ int start; /* 32bitové číslo sektoru (počínaje od 0) */ int lenght; /* 32bitové číslo počtu sektorů */ }; kde CHS je Cylinder/Head/Sector. Jeden ze čtyř oddílů se označí jako aktivní. To znamená, že bootovací program musí načíst do paměti první sektor právě tohoto oddílu a předat mu řízení. Rozšířený oddíl má také obdobný MBR (říká se mu EBR - Extended Boot Record), který uchovává tabulku oddílů se dvěma záznamy: jeden se používá pro definici logického oddílu (uvnitř rozšířeného), druhý pro definici ještě jednoho rozšířeného oddílu. Tímto způsobem vzniká jakoby řetězec z tabulek oddílů. Každý primární oddíl a každý logický oddíl má bootovací sektory (nulový sektor oddílu), které obsahují informace o struktuře souborového systému daného oddílu. Každý logický disk je charakterizován velikostí a souborovým systémem. Na jednom logickém disku nemůže být více souborových systémů (obr. 1). V Linuxu se pro označení fyzického disku používají názvy zařízení: Číslo IDE kanálu Master/Slave Označení 1 Master /dev/hda 1 Slave /dev/hdb 2 Master /dev/hdc 2 Slave /dev/hdd Ve Windows mají logické jednotky jednopísmenné názvy, počínaje posledním obsazeným písmenem primárního oddílu. Jestliže máme například jeden pevný disk se dvěma primárními oddíly (C: a D:) a s jedním rozšířeným oddílem, ve kterém jsou vytvořeny dvě logické jednotky, pak tyto logické jednotky obdrží následující písmena E: a F:. Mimochodem, ve Windows 2000/XP je možné změnit písmenné názvy oddílů. Ve FreeBSD se pro označení fyzického disku s IDE rozhraním používají následující názvy: Číslo IDE kanálu Master/Slave Označení 1 Master Ad0 1 Slave Ad1 2 Master Ad2 2 Slave Ad3 Programy pro správu oddílů Pro vytváření a správu oddílů na pevném disku existuje v každém operačním systému speciální utilita. Od dob MS-DOS se těmto utilitám říká fdisk a tradičně jsou bez zvláštního grafického rozhraní. A je to pochopitelné - procedura správy je poměrně závažná a předpokládá se, že ji budou provádět profesionálové. Z programů jiných výrobců mohu uvést: * utilitu fdisk (obr. 2; www.23cc.com/freefdisk) - má standardní rozhraní od Microsoftu, podporuje pevné disky do 128 GB, rozpoznává Non-DOS oddíly, umožňuje používat zaváděcí program jiných OS, k dispozici je i zdrojový kód utility; * Partition Magic (www.powerquest.com) program s pohodlným grafickým rozhraním, umožňuje měnit oddíly pevného disku bez ztráty uložených informací, měnit souborový systém oddílu z jednoho typu na jiný (obr. 3); * DiskDrake z distribuční sady Mandrake Linux nebo ALTLinux (obr. 4). Postup při instalaci OS Dále budeme zkoumat kombinace nejrozšířenějších OS, přes palubu hodíme zastaralé Windows NT4, 95, 3.1 a MS-DOS. Nebudeme si také všímat OS/2 kvůli jeho malému rozšíření. Windows 9x/Me + Windows 2000/XP Jako první (podle doporučení Microsoftu) instalujeme libovolný systém Windows 9x/Me (obvykle je předinstalován na pevném disku vašeho počítače). Pro něj vyhradíme první primární oddíl o velikosti přibližně 1 až 2 GB, souborový systém oddílu vybereme FAT32. Velikost oddílu záleží na tom, jestli bude na tomto oddílu umístěn odkládací soubor Windows a programové soubory. Potom na druhý oddíl, bez volby režimu obnovení (upgrade) starého OS, instalujeme Windows 2000/XP. V této fázi problémy obvykle nevznikají a spouštění různých systémů funguje bez chyby. Poněkud složitější to bude, pokud již máte nainstalovaný systém Windows 2000/XP a chcete instalovat Windows 9x/Me. K tomu potřebujete, aby byl systémový oddíl (na kterém se nachází soubory pro spouštění OS pro Windows 2000/XP to jsou ntldr a ntdetect.com) formátován jako FAT16 nebo FAT32. Bootovací oddíl (do kterého se bude instalovat Windows 9x/Me) také musí mít formát FAT16 nebo FAT32. Pokud tomu tak není, příslušné oddíly překonvertujeme. Protože instalační program Windows 9x/Me nelze spustit pod Windows 2000/XP, je nutné ho spustit z bootovacího instalačního disku Windows 9x/Me. Dříve než to uděláme, je dobré si vytvořit záchranný disk (Emergency Repair Disk, ERD) pro Windows 2000/XP. Je to spojeno s tím, že Windows 9x/Me přepíší bootovací sektor a potom nebude možné nastartovat Windows 2000/XP. Pro obnovení možnosti spuštění budeme potřebovat disk ERD a spouštěcí diskety Windows 2000/XP (dají se vytvořit pomocí utility makeboot.exe, nacházející se v instalační sadě Windows 2000/XP). Po instalaci Windows 9x/Me použijeme ke spuštění Windows 2000/XP spouštěcí diskety. Na otázku o režimu vybereme obnovení předchozí instalace Windows 2000/XP, nato nám bude nabídnuto vložit ERD. V důsledku této procedury budou přepsány soubory bootovacího oddílu a při příštím spuštění si bude moci uživatel vybrat OS Windows 2000/XP nebo Windows 9x/Me. Pokud se tak nestane, je nutné ručně změnit soubor boot.ini na disku C:, na konec sekce [operating systems] přidat následující řádek C:\= "Microsoft Windows". Po restartu by se měla objevit možnost výběru potřebného operačního systému. Windows 9x/Me + Linux Jako první instalujeme libovolný systém Windows 9x/Me, ale obvykle je již předinstalován a zaváděcí program je zapsán v MBR. Pro Linux je teoreticky dobré mít dva oddíly: kořenový (/) a odkládací oddíl (linux swap). Pro zvýšení spolehlivosti a výkonnosti systému je účelné vyhradit nevelký oddíl (20 MB) pro adresář /boot, ve kterém bude umístěno jádro a soubory potřebné ke spuštění. Oddíl musí být umístěn v prvních 8 GB a typ souborového systému pro adresář /boot musí být ext2. Také vytvoříme ještě dva oddíly: kořenový (/) a odkládací oddíl (linux swap). Rozměr prvního určíme z hlediska toho, že úplná instalace celého systému může zabrat více než 2,5 GB. Pro vytvoření oddílu vybereme souborový systém ext2, nebo protokolované ext3, nebo ReiserFS. Doporučená velikost odkládacího oddílu pro současná jádra je rovna dvojnásobné velikosti operační paměti RAM (minimálně 128 MB, ale ne více než 2 GB). Jako typ souborového systému vybereme Linux Swap. Tento oddíl se doporučuje umisťovat blíže k začátku disku. Jak rozdělit pevný disk v tomto případě? Je to možné tak, jak je například zobrazeno na obr. 5. Při instalaci Linuxu je nutné uvést, že zaváděč Linuxu, například LiLo, musí být umístěn v MBR. LiLo nahradí stávající zaváděč a vytvoří spouštěcí menu, které se vyvolává klávesou TAB při bootování. Zcela jistě vytvořte spouštěcí disk pro Linux. Mějte na paměti, že pokud později přeinstalujete Windows 9x/Me, Linux se přestane spouštět. Pokud máte bootovací disk pro Linux, nastartujte z něj, přihlaste se do systému jako root, zadejte příkaz lilo a restartujte počítač příkazem reboot. Windows 9x/Me + Windows 2000/XP + Linux Oba OS od Microsoftu instalujeme tak, jak je to popsáno v odstavci "Windows 9x/Me + Windows 2000/XP". Potom nainstalujeme OS Linux. Pro umístění tohoto OS vymezíme prostor podle návodu popsaného v odstavci "Windows 9x/Me + Linux". Následně obdržíte rozdělení oddílů na disku přibližně podle obr. 6. Při instalaci tohoto OS si musíte vybrat, kam nainstalovat zaváděč LiLo - do MBR, nebo do prvního sektoru oddílu, na kterém je nainstalovaný Linux (root-partition - "/"). Na rozdíl od doporučení z předešlého odstavce vyberte raději druhou variantu, tzn. nainstalujte zaváděč do prvního sektoru. Nyní je nutné provést následující kroky: * "namountovat" čistou neformátovanou disketu pomocí Windows FAT, příkazem: mount -t vfat /dev/fda0 /mnt/floppy; * zkopírovat spouštěcí sektor Linux na tuto disketu příkazem dd if=/dev/hdaX of=mnt/floppy/bootsect.lnx bs=512 count=1, kde hdaX je oddíl, na kterém je nainstalovaný Linux; * restartovat počítač, vybrat ve spouštěcím menu spuštění Windows 2000/XP; * zkopírovat soubor a:\bootsect.lnx do kořenového adresáře systémového disku (tam, kde jsou umístěny soubory, které odpovídají za zavádění - boot.ini a ntldr); * přidat řádek c:\bootsect.lnx="Linux" do souboru boot.ini na konec sekce [operating systems], kde c je systémový disk; * restartovat počítač, v menu vybrat položku "Linux", která se tam objevila. Windows 9x/Me + FreeBSD Nejprve instalujte Windows 9x/Me. Vyčleňte nerozdělené místo na pevném disku o velikosti minimálně 1 GB. Na toto místo nainstalujte FreeBSD. Souhlaste s instalací zaváděče do MBR. Windows 2000/XP + FreeBSD Instalujeme Windows 2000/XP, vyčleníme volné místo pro FreeBSD. Nainstalujeme ho a nastavíme na spuštění z jeho vlastního oddílu, a ne z MBR! "Namountujeme" disketu formátovanou v DOS do adresáře /mnt příkazem: mount_msdos /dev/fd0 /mnt. Hledáme zaváděcí sektor - je to první sektor v "/". Pokud nevíte, který oddíl je mountovaný jako kořenový, zadejte příkaz "df" a ve sloupci "Mounted onŽ najděte "/". V příslušném řádku sloupce "FilesystemŽ uvidíte název zařízení, které obsahuje požadovaný sektor, například: ad0s3a. Zkopírujeme ho příkazem: # dd if=/dev/rad0s3a of=/mnt/bootsect.bsd bs=512 count=1, kde if je odkud, of je kam, bs značí velikost sektoru, count je počet sektorů daného oddílu. Následně obdržíme soubor bootsect.bsd, který obsahuje potřebnou kopii zaváděcího sektoru. Nyní "rozmountujeme" disketu příkazem: umount/mnt. Restartujeme počítač, zkopírujeme soubor bootsect.bsd z diskety do kořenového adresáře systémového disku Windows. Opravíme soubor boot.ini tak, že přidáme řádek na konec oddílu [operating systems]: C:\BOOTSECT.BSD="FreeDSB", kde C: je systémový disk. Stačí jen restartovat počítač a vybrat v menu potřebný operační systém. Windows 9x/Me + Windows 2000/XP + FreeBSD Pár OS Windows 9x/Me + Windows 2000/XP instalujeme tak, jak bylo popsáno v odstavci "Windows 9x/Me + Windows 2000/XP". Dále pokračujeme podle doporučení odstavce "Windows 2000/XP + FreeBSD" pro nastavení spouštěcího menu pro několik OS. Windows 9x/Me + Windows 2000/XP + Linux + FreeBSD Počínáme si jako v odstavci "Windows 9x/Me + Windows 2000/XP + Linux", potom podle doporučení v odstavci "Windows 2000/XP + FreeBSD". Disk bude rozdělen přibližně tak, jak je vidět na obr. 7. Nyní při spuštění uvidíte následující menu (viz obr. 8). Závěr Nyní se váš pevný disk podobá kukaččímu hnízdu nebo zoologické zahradě. V jednotlivých oddílech - klecích - jsou zavřené operační systémy. Ale nezapomínejte zálohovat důležitá data, protože zvíře, které se najednou dostane na svobodu za hranice své klece, může všechny ostatní zahubit. Igor Kozlovský SPOLEČNÉ POUŽÍVÁNÍ DISKOVÉHO PROSTORU WINDOWS 9X/ME A 2000/XP Protože se operační systémy Windows, umístěné na vašem počítači, spouštějí jednotlivě, nic nebrání tomu, aby používaly společný odkládací soubor. Neboť se parametry odkládacího souboru ve Windows 9x/Me zadávají v sekci [386Enh] v souboru SYSTEM.INI, můžeme ho otevřít v libovolném textovém editoru a přidat následující řádky (pokud tam již jsou, opravíme je): PagingDrive=C: PagingFile=C:\Pagefile.sys MinPagingFileSize=262144 MaxPagingFileSize=262144 Prvními dvěma parametry se nastavuje umístění odkládacího souboru. Zde je C logický disk, na kterém je umístěn odkládací soubor Pagefile.sys - název odkládacího souboru (cesta může být i složitější, například C:\Folder1\Folder2\Folder3\Pagefile.sys, ale proč?). Následujícími dvěma parametry se určuje jeho velikost (v KB). Proč takové hodnoty? Protože ve Windows 2000/XP se velikost odkládacího souboru, který se nachází na disku, zadává v megabajtech a 1 MB = 1024 KB. Proto když zadáme 256 MB, dostaneme 262144 KB. Mimochodem, je tu ještě jeden problém. Pokud disk C: nebude dostupný, Windows 9x/Me se nedokáží spustit, budou hlásit fatální chybu. Proto je zapotřebí dbát na to, aby souborový systém disku C: byl přístupný pro oba systémy Windows bez dodatečných ovladačů. Pokud přesto fatální chyba vznikne, použijte spouštěcí disketu nebo pomocí rozšířeného spouštění spusťte Windows 2000/XP a jednoduše opravte soubor SYSTEM.INI ve Windows 9x/Me.