Dual Booting

Mnoho uživatelů nastavuje svoje počítače tak, aby mohli bootovat Slackware Linux a ještě další operační systém. V následujícím textu jsme popsali několik typických scénářů pro dual boot, abyste neměli zbytečné problémy pří nastavování vašeho systému.

Windows 9x/DOS

Nastavování počítače se systémem Windows 9x a Linuxem je asi ten nejobvyklejší dual bootovací scénář. Existuje množství způsobů jak můžete nastavit bootování; my zde popíšeme dva.

Člověk častokrát, když nastavuje dual bootový systém, vymyslí dokonalý plán kam všechno přijde, ale zachybuje v pořadí instalačních kroků. Je důležité pochopit, že operační systémy musí být nainstalovány v jistém pořadí, aby dual boot fungoval. Linux vždy poskytuje kontrolu nad tím, co (pokud něco) bude zapsáno do Master Boot Record (MBR). Proto je vždy lepší instalovat Linux jako poslední. Windows by měly být nainstalovány dříve, protože ony zapisují svůj zaváděcí program do MBR vždy (a bez ptaní).

Použití LILO

Většina lidí si bude přát používat k výběru mezi Linuxem a Windows LILO. Jak zmíněno výše, měli byste nejdřív nainstalovat Windows a teprve potom Linux.

Řekněme, že máte 47GB velký IDE harddisk, který je jedinou diskovou jednotku ve vašem počítači. Dále řekněme, že chcete dát půl diskového prostoru na Windows a polovinu Linuxu. To bude pro bootování Linuxu představovat problém. I když neznám specifickou geometrii toho disku, je téměř jisté, že druhá polovina disku bude začínat pěkně daleko za 1024 cylindrem. Lepší rozvržení pro tento disk by bylo:


   1GB   Windows boot (C:)
   1GB   Linux root (/)
   22.5  Windows misc (D:)
   22.5  Linux /usr (/usr)

Mimo to, budete chtít asi taky vyhradit adekvátní prostor na disku pro linuxový swap oddíl. Nepsaným pravidlem je, že byste měli pro swap vyhradit na disku prostor o velikosti dvojnásobku velikosti RAM. 64MB systém by měl mít 128MB swap, ap.

Po vytvoření diskových oddílů byste měli pokračovat instalací Windows. Až ty budete mít nastaveny a funkční, měli byste nainstalovat Linux. Instalace LILO vyžaduje zvláštní pozornost. Pro jeho nainstalováni byste měli zvolit mód "expert" (v programu liloconfig).

Začněme novou konfiguraci LILO. Budeme ho chtít nainstalovat do MBR, aby mohlo být využíváno k vybírání mezi oběma operačními systémy. Z menu, které vidíte, přidejte linuxový oddíl a Windows (či DOS) oddíl. Až to budete mít hotovo, můžete nainstalovat LILO.

Restartujte počítač. LILO by se mělo spustit a čekat na zásah uživatele. Můžete stisknout Alt, abyste získali boot: prompt. Napište jméno operačního systému který chcete zavést (tato jména byla vybrána, když jste nastavovali LILO). Pokud jste je zapomněli, stiskněte Tab a seznam jmen operačních systémů se vypíše.

LILO můžete rovněž nakonfigurovat ručním editováním souboru /etc/lilo.conf (je v linuxovém oddílu). Můžete je nastavit tak, aby se zobrazovalo textové menu a aby byl vždy zobrazen prompt. Kdybych chtěl, aby mi LILO zobrazovalo tohle:

   System Boot Menu
   ================
   1 - Linux
   2 - Windows

   LILO boot:

Moje /etc/lilo.conf by mělo vypadat nějak takhle:

   # LILO configuration file

   boot = /dev/hda
   vga = normal
   message = /boot/message

   image = /vmlinuz
      root = /dev/hda2
      label = 1
      read-only

   other = /dev/hda1
      label = 2
      table = /dev/hda

A můj soubor /boot/message by měl vypadat takto:

   System Boot Menu
   ================
   1 - Linux
   2 - Windows

LILO je fakt dobře konfigurovatelný zavaděč. Není omezen jen na bootování Linuxu či DOSu. Může bootovat prakticky cokoliv. Manuálové stránky pro lilo(8) a lilo.conf(5) poskytnou mnohem podrobnější informace.

Ale co když LILO nefunguje? Stává se, že na některých strojích LILO nepracuje. Naštěstí tu máme ještě jiný způsob pro dual boot Linuxu a Window.

Použití LOADLIN

Tato metoda se používá, když LILO na vašem systému nefunguje, nebo když se vám jenom nechce LILO nastavovat. Tato metoda je rovněž ideální pro ty uživatele, kteří svá Windows často přeinstalovávají. Při každé reinstalaci vám Windows přepíší MBR a tím zničí nainstalované LILO. S LOADLINem tomuto problému nepodléháte. Největší nevýhodou je, že můžete používat pouze LOADLIN k bootování Linuxu.

Pro LOADLIN můžete instalovat operační systémy v jakémkoliv pořadí. Dejte si pozor při instalování věcí do MBR, abyste tam něco nezapsali omylem. LOADLIN je závislý na tom, aby windowsový oddíl byl bootovatelný. Takže při instalaci Slackwaru pozorně přeskočte nastavování LILO.

Po nainstalování operačních systémů zkopírujte soubor lodlinX.zip (kde "X" je číslo verze, např. "16a") z rootova domovského adresáře na vaš Windows oddíl. Taky tam zkopírujte obraz jádra. Musíte být v Linuxu, abyste tohle mohli udělat (pozn.překl: Tak teď už to nevydrzím, už to musím říct: Tenhle návod má chybu jak prase! Když bude v MBR zavaděč Windows a nebudete mít ani bootvací disketu, tak se do Linuxu prostě nedostante! Nenabootujete tam a navíc z Windows není do linuxových oddílů vidět.). Tento příklad ukazuje, jak to uděláte:


   # mkdir /win
   # mount -t vfat /dev/hda1 /win
   # mkdir /win/linux
   # cd /root
   # cp loadlin* /win/linux
   # cp /vmlinuz /win/linux
   # cd /win/linux
   # unzip loadlin16a.zip

Takto vytvoříte adresář C:\LINUX na Windows oddílu (Předpokládáme, že je to /dev/hda1) a překopírujete nezbytné věci pro LOADLIN. Poté budete muset rebootovat do Windows, abyste tam nastavili bootovací menu.

Až budete ve Windows, dostaňte se do DOS promptu. Nejdříve se musíme ujistit, zda systém není nastaven tak, aby bootoval do grafického rozhraní.


   C:\>cd \
   C:\>attrib -r -a -s -h MSDOS.SYS
   C:\>edit MSDOS.SYS

Přidejte do tohoto souboru tuto řádku:

BootGUI=0

Nyní soubor uložte a ukončete editor. Pak editujte C:\AUTOEXEC.BAT a přdejte tam bootovací menu, jak je ukázáno v tomto příkladě:

   cls
   echo System Boot Menu
   echo.
   echo 1 - Linux
   echo 2 - Windows
   echo.
   choice /c:12 "Selection? -> "
   if errorlevel 2 goto WIN
   if errorlevel 1 goto LINUX
   :LINUX
   cls
   echo "Starting Linux..."
   cd \linux
   loadlin c:\linux\vmlinuz root=/dev/hda2 ro
   goto END
   :WIN
   cls
   echo "Starting Windows..."
   win
   goto END
   :END

Klíčovým je řádek, který spouští LOADLIN. Ten říká aby se zavedl kernel, udává na kterém oddílu je Linux, a že chceme, aby se v počátku připojil jen pro čtení (ro - read-only).

Slackware Linux poskytuje nástroje pro obě tyto metody. Na trhu je mnoho dalších zavaděčů (booter), ale tyto dva by měli pracovat ve většině dual bootových nastavení.

Windows NT

Toto je druhá nejčastější situace pro dual boot. Windows NT představují o něco více problémů, než dual boot mezi Win9x a Linuxem. Ten který nás znepokojuje nejvíc je, že když LILO přepíše MBR, nebudou NT bootovat správně. Proto musíme použít zavaděč OS, který je dodáván společně s WinNT. Následující kroky ukazují, jak byste měli nastavit dual boot systém pro WinNT a Linux.

  1. Nainstalujte Windows NT

  2. Nainstalujte Linux a dejte pozor, abyste LILO nainstalovali do superbloku linuxového oddílu.

  3. Vezměte prvních 512 bytů linuxového root oddílu a uložte je do WinNT oddílu.

  4. Editujte C:\BOOT.INI pod Windows NT a přidejte tam volbu pro Linux.

Instalace Windows NT by měla být celkem jasná, stejně tak instalace Linuxu. Ale potom už to začíná být zajímavé. Stáhnout prvních 512 bajtů linuxového oddílu je snazší než se zdá. Abyste to dokázali, musíte být v Linuxu. Předpokládejme, že váš linuxový oddíl je /dev/hda2. Zadejte tento příkaz:


   # dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512

A je to. Teď potřebujete zkopírovat bootsect.lnx do oddílu s Windows NT. A tady se dostaneme do dalšího problému. Linux nemá spolehlivou podporu zápisu do souborového systému NTFS. Jestliže jste zformátovali oddíl pro instalaci Windows NT jako NTFS, budete muset náš souborek zkopírovat na FAT disketu, a potom ho z ní přečíst pod Windows NT. Pokud byste zformátovali oddíl pro WinNT jako FAT, pak byste ho mohli jednoduše namountovat pod Linux a soubor tam překopírovat. Tak či tak, budete potřebovat dostat soubor /tmp/bootsect.lnx z Linuxového oddílu do C:\BOOTSECT.LNX na WinNT oddílu.

Posledním krokem je přidání položky menu do bootovací nabídky Windows NT. Pod Windows NT otevřte příkazový řádek.


   C:\WINNT>cd \
   C:\>attrib -r -a -s -h boot.ini
   C:\>edit boot.ini

Přidejte tento řádek na konec tohoto souboru:


C:\bootsect.lnx="Slackware Linux"

Uložte změny, zavřete editor. Až budete rebootovat Windows NT, budete mít v menu volbu pro Linux. Jejím vybráním nabootujete do Linuxu.

Linux

Ano, lidé tohle opravdu dělají. Je to úplně ten nejjednodušší scénář pro dual boot. Jednoduše můžete použít LILO a přidat více položek do konfiguračního souboru /etc/lilo.conf. A to úplně stačí.