Multiboot met GRUB Mini-HOWTO

Ivan Kanis, ivank@juliva.com
Vertaald door: Ellen Bokhorst, bokkie@nl.linux.org

v1.0, 15-01-2001


In dit document wordt beschreven hoe Windows 98, Windows 2000, DOS en Linux met behulp van GRUB te installeren.

1. Waarom?

Ik wilde alle besturingssystemen kunnen booten zonder meerdere menu's te doorlopen. Ik weet dat ik NT bovenop win9x bovenop DOS kan installeren. Ik zou het NT menu moeten doorlopen en vervolgens het win9x menu om DOS te kunnen booten. Ik wilde deze besturingssystemen onmiddellijk kunnen booten.

Het zag ernaar uit dat dit een behoorlijke uitdaging zou zijn. Het probleem met Microsoft besturingssystemen is dat ze allen vanaf de primaire partitie willen booten. Hier komt GRUB ter sprake. Het kan primaire partities verbergen. Je kunt tot 3 partities gebruiken om Microsoft besturingssystemen te installeren. GRUB zal de andere 2 partities zodanig verbergen dat de andere besturingssystemen het niet zullen zien. Dit betekent dat je een andere partitie nodig zal hebben om gegevens tussen DOS, Win9x en Windows 2000 te delen. De 4e partitie wordt gebruikt als extended partitie.

Ik wilde ook een menusysteem en GRUB voorziet hierin op fraaie wijze.

Een andere mooie faciliteit van GRUB is dat het reiserfs ondersteunt zodat ik mijn /boot bestand niet op een aparte ext2 partitie hoef te houden.

2. Installatieprocedure

2.1 Prepareren van de diskettes

Je hebt 3 diskettes nodig. Maak van de eerste diskette een DOS systeemdisk. Kopieer fdisk.exe en sys.exe naar deze diskette.

FORMAT /S A:
COPY FDISK.EXE A:
COPY SYS.EXE A:

Gebruik je tweede diskette om een Windows 98 rescuedisk te maken. Je zal spoedig de derde diskette voor GRUB gebruiken.

2.2 Linux installeren

Installeer je favoriete Linux-distributie. Je zal fdisk moeten gebruiken om je harddisk te partitioneren. Bereken vooraf hoeveel diskruimte elk van je besturingssystemen in beslag zal nemen.

Zo partitioneerde ik mijn harddisk:

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1         6     48163+  16  Hidden FAT16
/dev/hda2             7        19    104422+  16  Hidden FAT16
/dev/hda3            20       593   4610655   1b  Hidden Win95 FAT32
/dev/hda4           594      3737  25254180    5  Extended
/dev/hda5           594       848   2048256    6  FAT16
/dev/hda6           849      2123  10241406    7  HPFS/NTFS
/dev/hda7          2124      2140    136521   82  Linux swap
/dev/hda8          2141      2523   3076416   83  Linux

Mijn eerste partitie is voor het booten van Windows 2000. 10MG zou hier ruim voldoende voor moeten zijn. Op deze partitie zullen alleen de bestanden staan die nodig zijn om NT te booten, zoals boot.ini, ntldr, ntdetect.com, enz... NT zal voorkomen op partitie 6 in mijn voorbeeld. Deze partitie is een Hidden FAT16.

De tweede partitie is voor DOS. Ik achtte 100M voldoende. Ook dit is een FAT16

De derde partitie is voor Win9x. Ik kende het 5G toe en maakte er voor de performance een FAT32 van.

Maak vervolgens de extended partitie aan van de rest van je harddisk. Dit komt tevoorschijn als partitie 4 onder fdisk.

Maak een partitie van 2GB aan. Deze partitie wordt gebruikt om gegevens tussen alle besturingssystemen te delen. Zorg dat het totaal van alle bovenstaande partities minder is dan 8GB. Dit is een beperking van DOS.

Maak vervolgens je Windows 2000 partitie aan. Ik gaf het 10G aangezien deze windows een opgeblazen varken is. Voor de snelheid maakte ik er een HPFS/NTFS partitie van.

Voeg dan je swappartitie en linuxpartitie toe. Zorg dat je geen aparte partitie voor /boot hebt. Het ziet er in GRUB beter uit als je /boot in de rootpartitie houdt.

Ga je gang nadat je linux hebt geïnstalleerd en formatteer de fat16 partities:

mkdosfs /dev/hda1
mkdosfs /dev/hda2
mkdosfs /dev/hda6

2.3 GRUB installeren

Zorg dat je de laatste versie van GRUB hebt. Ik gebruik versie 0.5.96.1. De versie die met mijn distributie werd geleverd was verouderd en bezorgde me heel wat ongerief. Je kunt de laatste versie downloaden vanaf http://www.fsf.org.

Nu zal je GRUB op de diskette gaan installeren. Je installeert het nog niet op de harddisk omdat Windows 2000 het zal overschrijven.

grub-install '(fd0)'

Maak voor GRUB de volgende menu.lst aan. Dit bestand komt voor in /boot/grub.

#
# Voorbeeld van een configuratiebestand voor een bootmenu
#

# Boot automatisch na een minuut.
timeout 60

# Boot standaard het besturingssysteem in het tweede record.
default 1

# Val terug op het eerste record.
fallback 0

title Windows 2000 
unhide (hd0,0)
hide (hd0,1)
hide (hd0,2)
rootnoverify (hd0,0)
chainloader +1
makeactive

# Voor het booten van Linux
title  Linux
root (hd0,7)
kernel /boot/vmlinuz-2.2.17 root=/dev/hda8 video=matrox:vesa:261

title Windows 98
hide (hd0,0)
hide (hd0,1)
unhide (hd0,2)
rootnoverify (hd0,2)
chainloader +1
makeactive

title DOS 6.22
hide (hd0,0)
unhide (hd0,1)
hide (hd0,2)
rootnoverify (hd0,1)
chainloader +1
makeactive

# Voor het booten van Linux
title  Linux (single user)
root (hd0,7)
kernel /boot/vmlinuz-2.2.17 root=/dev/hda8 video=matrox:vesa:261 single

title Partition 2 (floppy)
hide (hd0,0)
unhide (hd0,1)
hide (hd0,2)
chainloader (fd0)+1

title Partition 3 (floppy)
hide (hd0,0)
hide (hd0,1)
unhide (hd0,2)
chainloader (fd0)+1

Controleer of je linux met de diskette kunt booten. Als je problemen ondervindt dan kun je via de opdrachtregel van GRUB uitzoeken wat er aan de hand is. GRUB is zeer goed gedocumenteerd, dus als je problemen ondervindt, kijk dan alsjeblieft in de documentatie.

2.4 Windows 2000 installeren:

Voor het installeren van Windows 2000 moest ik de eerste partitie initialiseren. Doe de DOS systeemdisk in het diskettestation en start je computer opnieuw op. Zodra je de DOS-prompt krijgt, doe je het volgende:

FDISK /MBR
SYS C:

Nu kun je verdergaan en windows 2000 installeren. Op een bepaald moment zal Windows 2000 je vragen naar de partitie waarop je wilt dat het zal worden geïnstalleerd. De partitie die je met fdisk aanmaakte zal tevoorschijn komen als een beschadigde of ongeformatteerde partitie. Ga je gang en selecteer het.

Wijzig een bestand genaamd boot.ini dat te vinden zou moeten zijn op station C: om het Windows 2000 menu te verbergen.

[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(1)partition(1)\WINNT
[operating systems]
...

2.5 DOS installeren

Doe de GRUB disk in het diskettestation. Doe de DOS systeemdisk erin zodra je het menu ziet. Selecteer partition 2 (floppy) uit het menu. Druk op Enter. Hiermee zal vanaf de diskette worden geboot en zullen de partities 1 en 3 verborgen worden.

Start FDISK en controleer of station C: partitie 2 is. Installeer vervolgens DOS:

SYS C: 

2.6 Windows 98 installeren

Doe de GRUB disk in het diskettestation. Doe de Windows 98 rescuedisk erin zodra je het menu ziet. Selecteer partition 3 (floppy) uit het menu. Druk op Enter. Hiermee zal vanaf de diskette worden geboot en zullen de partities 1 en 2 verborgen worden.

Start FDISK en controleer of station C: partitie 3 is. Installeer vervolgens Windows 98:

SYS C: 

2.7 De laatste loodjes

Test of alles functioneert vanuit GRUB:

Je zou alle 4 de besturingssystemen vanaf de GRUB diskette moeten kunnen booten.

Als alles er goed uit lijkt te zien dan kun je verder gaan en GRUB op je harddisk installeren. Typ vanuit Linux:

grub-install /dev/hda

Je zou nu vanuit het GRUB menu alle 4 de besturingssystemen moeten kunnen booten. Veel plezier!

3. Referenties

Ik bemerkte dat deze links nuttig waren bij het instellen van mijn systeem.

4. Feedback

Ik zou graag over je ervaringen willen vernemen (goed of slecht) met dit document. Mocht je instructies hebben voor het toevoegen van nog een ander OS stuur deze dan alsjeblieft naar me zodat ik ze toe kan voegen.