Gentoo Logo

Disclaimer : Dit document is niet juist en is niet meer onderhouden.


[ << ] [ < ] [ Home ] [ > ] [ >> ]


10. Configuratie van de Bootlader

Inhoud:

10.a. Uw keuze maken

Introductie

Nu uw kernel is geconfigureerd en gecompileerd en de nodige systeem configuratie bestanden goed zijn ingevuld, is het tijd om een programma te installeren dat de kernel zal starten als wanneer het systeem opstart. Zo'n programma heet een bootloader.

Voor x86 levert Gentoo Linux GRUB en LILO. Maar voor we een van beiden installeren, zullen we u eerst vertellen hoe u de framebuffer moet configureren (aangenomen dat u dat wilt natuurlijk). Met de framebuffer kunt u op de Linux command line (beperkt) grafische features gebruiken (zoals een mooi bootsplash plaatje wat Gentoo levert).

Optioneel: De Framebuffer

Als u de kernel hebt geconfigureerd met framebuffer ondersteuning (of als u genkernel's standaard kernel configuratie heeft gebruikt), kunt u deze activeren door een vga en/of een video argument toe te voegen aan het bootloader configuratie bestand.

Om te beginnen moet u weten welke type framebuffer methode u gebruikt. Als u een gepatchte Gentoo kernel (zoals gentoo-sources), hebt u de mogelijkheid om vesafb-tng als het VESA driver type te gebruiken (wat standaard is voor deze kernel broncodes). Als dit het geval is, gebruikt u vesafb-tng en heeft u geen vga argument nodig. Als dit niet het geval is, gebruikt u de vesafb driver en dient u wel het vga argument in te stellen.

Het vga argument bepaalt de resolutie en kleurdiepte van uw framebuffer scherm voor vesafb. Zoals vermeld in /usr/src/linux/Documentation/fb/vesafb.txt (wat geïnstalleerd wordt als u een kernelbroncodepakket installeert), dient u het het VESA nummer mee te geven wat overeenkomt met de gewenste resolutie en kleurdiepte.

De volgende tabel geeft een lijst met beschikbare resoluties en kleurdieptes en geeft de overeenkomende waarde die aan het vga argument meegegeven dient te worden.

640x480 800x600 1024x768 1280x1024
256 0x301 0x303 0x305 0x307
32k 0x310 0x313 0x316 0x319
64k 0x311 0x314 0x317 0x31A
16M 0x312 0x315 0x318 0x31B

Het video argument bepaalt de framebuffer opties. Het is vereist voor de framebuffer driver (vesafb voor 2.6 kernels of vesa voor 2.4 kernels), gevolgd door de argumenten die u wenst te gebruiken. Alle variabelen staan in /usr/src/linux/Documentation/fb/vesafb.txt, maar we zullen u de drie meest gebruikte opties uitleggen:

Optie Beschrijving
ywrap Aangenomen dat de grafische kaard zijn geheugen kan "wrappen", wat betekent dat hij verder gaat bij het begin van het geheugen als het bij het einde is aangekomen.
mtrr MTRR registers gebruiken. n kan zijn: 0 - disabled 1 - uncachable 2 - write-back 3 - write-combining 4 - write-through
mode (alleen vesafb-tng)
Stel de resolutie, de kleurdiepte en de ververssnelheid in. Bijvoorbeeld, 1024x786-32@85 voor een 1024x768 resolutie, 32 bit kleurdiepte en een ververssnelheid van 85 Hz.

Het resultaat van deze twee argumenten kan iets zijn als vga=0x318 video=vesafb:mtrr:3,ywrap of video=vesafb:mtrr:3,ywrap,1024x768-32@85. Onthoud (of noteer) deze instelling; U heeft deze snel nodig.

Ga nu verder door GRUB of LILO te installeren.

10.b. Standaard: GRUB gebruiken

GRUB's terminologie begrijpen

Het belangrijkste deel van GRUB begrijpen, is begrijpen hoe GRUB harde schijven en partities noemt. Uw Linux partitie /dev/hda1 (voor IDE schijven) of /dev/sda1 (voor SATA/SCSI schijven) heet zeer waarschijnlijk (hd0,0) onder GRUB. Vergeet niet de haakjes rond hd0,0 - ze zijn vereist.

Harde schijven tellen liever vanaf nul dan vanaf "a" en partities beginnen bij nul in plaats van één. Merk ook op dat met hd apparaten alleen harde schijven worden geteld en geen atapi-ide apparaten zoals cdrom spelers en branders. Ook wordt hetzelfde gebruikt bij SCSI schijven. (Normaal gesproken krijgen ze hogere nummers dan ide schijven tenzij de bios is ingesteld om vanaf scsi schijven op te starten.) Als u de BIOS instelt om van een andere harde schijf op te starten, wordt die harde schijf gezien als hd0.

Laten we een voorbeeld nemen. Stel dat u een harde schijf op /dev/hda hebt, een cdrom speler op /dev/hdb, een brander op /dev/hdc, een tweede harde schijf op /dev/hdd en geen SCSI harde schijf, dan wordt /dev/hdd7 vertaald tot (hd1,6). Het klinkt misschien moeilijk en dat is het ook, maar zoals we zullen zien heeft GRUB een tab aanvullingsmechanisme dat heel erg van pas komt voor diegene met veel schijven en partities en een beetje verloren is geraakt in het GRUB schema.

Ik denk dat we nu wel toe zijn aan het installeren van GRUB.

GRUB installeren

Om GRUB te installeren, zullen we het eerst emergen:

Codevoorbeeld 2.1: Installeren van GRUB

# emerge grub

Hoewel GRUB nu is geïnstalleerd, moeten we nog steeds een configuratie ervoor schrijven en GRUB in onze MBR zetten zodat GRUB ook daadwerkelijk u nieuwe kernel opstart. Maak /boot/grub/grub.conf met nano (of een andere editor):

Codevoorbeeld 2.2: /boot/grub/grub.conf aanmaken

# nano -w /boot/grub/grub.conf

Nu gaan we een grub.conf schrijven. Hieronder vindt u twee mogelijke versies van grub.conf voor de partitie indeling die we hebben gebruikt in deze handleiding. We hebben alleen uitgebreid commentaar toegevoegd in de eerste grub.conf. Zorg dat u uw kernel image bestandsnaam en, indien van toepassing, uw initrd image bestandsnaam gebruikt.

  • De eerste grub.conf is voor mensen die geen genkernel hebben gebruikt om hun kernel te bouwen
  • De tweede grub.conf is voor mensen die wel genkernel hebben gebruikt

Nota: Als uw root bestandssysteem JFS is, moet "ro" aan de kernel regel toevoegen. Hier door kan JFS zijn log nakijken vo While LILO does work on AMD64, Gentoo only supports using GRUB. Now continue by its ordat het schrijven toelaat.

Codevoorbeeld 2.3: grub.conf for non-genkernel users

# Wat is de standaard kernel om op te starten? 0 is de eerste, 1 is de tweede.
default 0
# Hoeveel seconden wachten we tot onze standaard kernel opstart.
timeout 30
# Splash-image om het mooier te maken :)
# Haal dit weg indien u geen grafische kaart heeft geïnstalleerd
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.6.17-r5
# Partitie waar uw kernel image (of besturingssysteem) op staat
root (hd0,0)
kernel /boot/kernel-2.6.17-gentoo-r5 root=/dev/hda3

title=Gentoo Linux 2.6.17-r5 (rescue)
# Partitie waar uw kernel image (of besturingssysteem) op staat
root (hd0,0)
kernel /boot/kernel-2.6.17-gentoo-r5 root=/dev/hda3 init=/bin/bb

# De volgende vier regels zijn alleen nodig indien u een dualboot met een Windows systeem hebt.
# In dit geval is Windows geïnstalleerd op /dev/hda6.
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Codevoorbeeld 2.4: grub.conf voor genkernel gebruikers

default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.6.17-r5
root (hd0,0)
kernel /boot/kernel-genkernel-2.6.17-r5 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev
initrd /boot/initramfs-genkernel-2.6.17-r5

# Alleen van toepassing als u dual-boot
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Nota: Het udev aan het einde van de kernel regel is nodig om langs een bug in enkele genkernel versies te werken. Dit is alleen nodig als u udev gebruikt (wat standaard is).

Heeft u echter een andere partitie indeling en/of kernel image gebruikt, pas dit dan aan. Zorg echter wel dat alles wat een GRUB-apparaat volgt (zoals (hd0,0)) relatief is aan het mount punt, niet naar de root. In andere woorden, (hd0,0)/grub/splash.xpm.gz is in werkelijkheid /boot/grub/splash.xpm.gz omdat (hd0,0) gewoon /boot is.

Verder geldt dat wanneer u een andere partitie indeling gebruikt en de /boot niet in een aparte partitie heeft geplaatst, de /boot prefix in de eerdere code voorbeelden echt nodig is. Wanneer u de standaard partitie indeling heeft gevolgt, is de /boot prefix niet nodig, maar een werkt alles toch via een boot symlink. Kort samengevat, de bovenstaande voorbeelden horen te werken, of u nu een aparte /boot hebt aangemaakt of niet.

Indien u extra opties aan de kernel wilt toevoegen, zet u die simpelweg aan het einde van het kernel commando. We hebben nu al een optie toegevoegd (root=/dev/hda3 of real_root=/dev/hda3), maar u kunt ook andere argumenten meegeven, zo kunt u voor de eerder besproken framebuffer de video en/of vga argumenten toevoegen.

Als u een een 2.6.7 of nieuwere kernel draait en u heeft de harde schrijf gejumperd omdat uw BIOS geen grote harde schijven aan kan, dient u hdX=stroke als optie toevoegen.

genkernel gebruikers moeten weten dat hun kernels dezelfde boot opties gebruiken als de Installatie CD gebruikt. Bijvoorbeeld, als u SCSI apparaten hebt, moet u doscsi als kernel optie toevoegen.

Sla nu het grub.conf bestand op en sluit af. Nu moeten we nog wel GRUB in de MBR (Master Boot Record) installeren zodat GRUB daadwerkelijk start wanneer u het systeem start.

De GRUB ontwikkelaars raden het gebruik van grub-install aan. Als echter grub-install mislukt, zijn er nog steeds mogelijkheden om het handmatig te doen.

Ga verder met Standaard: GRUB installeren met grub-install of Alternatief: GRUB handmatig installeren.

Standaard: GRUB installeren met grub-install

Om GRUB te installeren, moet u het commando grub-install gebruiken. grub-install zal echter niet direct werken omdat we in een chroot zitten. We zullen eerst /etc/mtab (het bestand met de informatie over alle gemounte bestandssystemen) moeten aanmaken. Gelukkig is er een makkelijke manier om dit te doen: kopieer gewoon /proc/mounts naar /etc/mtab, waarbij u de rootfs regel weglaat indien u geen aparte boot partitie heeft aangemaakt. Het volgende commando werkt voor beide gevallen:

Codevoorbeeld 2.5: /etc/mtab aanmaken

# grep -v rootfs /proc/mounts > /etc/mtab

Nu kunnen we GRUB installeren met behulp van grub-install:

Codevoorbeeld 2.6: grub-install draaien

# grub-install --no-floppy /dev/hda

Als u verder nog vragen heeft over GRUB, lees dan de GRUB FAQ (Engelstalig) of de GRUB Handleiding(Engelstalig).

Ga verder met Het systeem herstarten.

Alternatief: GRUB handmatig installeren

Om de configuratie van GRUB te starten, typt u grub in. Je zult begroet worden met de grub> grub command-line prompt. Nu kunt u de commando's intypen om GRUB in uw MBR te krijgen.

Codevoorbeeld 2.7: De GRUB shell starten

# grub

Nota: Als uw systeem geen floppy drive heeft, voeg de --no-floppy optie toe aan het bovenstaande commando zodat grub niet gaat zoeken naar (niet bestaande) floppy drives.

In de voorbeeld configuratie willen we GRUB zo installeren zodat het zijn informatie leest vanaf de boot partitie /dev/hda1, en dat het de GRUB boot record op de MBR van de harde schijf zet zodat het eerste wat we zien als de computer opstart GRUB is. Als u niet de voorbeelden hebt gevolgd, zorg wel dat u de commando's daarop aanpast.

Het tab aanvullingsmechanisme van GRUB kan worden gebruikt binnen GRUB. Bijvoorbeeld, als u "root (" typt, gevold door een TAB, zult u een lijst met apparaten (zoals hd0) terugkrijgen. Als u "root (hd0," intypt, gevolgd door een TAB zult u een lijst krijgen met beschikbare partities (zoals hd0,0).

Nu met behulp van tab aanvulling, zou GRUB installeren niet zo moeilijk moeten zijn. Ga nu verder, configureer GRUB, zullen we? :-)

Codevoorbeeld 2.8: GRUB in de MBR installeren

grub> root (hd0,0)          (Geef op waar uw /boot partitie is)
grub> setup (hd0)           (Installeer GRUB in de MBR)
grub> quit                  (Verlaat de GRUB shell)

Nota: Als u GRUB op een bepaalde partitie wil installeren in plaats van de MBR, dan zult u het setup commando aan moeten passen zodat hij naar de juiste partitie verwijst. Bijvoorbeeld, als u GRUB wil installeren in /dev/hda3, dan zal het commando er zo uit ziet: setup (hd0,2). Sommige gebruikers zullen dit willen doen.

Als u verder nog vragen hebt over GRUB, lees dan de GRUB FAQ (Engelstalig) of de GRUB Handleiding(Engelstalig).

Nota: Wanneer u een nieuwe kernel installeert, hoeft u geen bestanden meer te kopiëren. Draai gewoon make install na het compileren van de kernel en de juiste bestanden worden gekopieerd en de GRUB configuratie wordt aangepast.

Ga verder met Het systeem herstarten.

10.c. Alternatief: LILO gebruiken

LILO installeren

LILO, de LInuxLOader, is het geteste en echte werkpaard van de Linux bootloaders. Helaas mist het enkele mogelijkheden die GRUB wel heeft (en wat de reden is dat GRUB nu veel aan populariteit wint). De reden dat LILO nog steeds gebruikt wordt, is dat GRUB soms niet werkt en LILO wel. Natuurlijk zijn er ook mensen die LILO kennen en daarom niet over willen stappen. Hoe dan ook, Gentoo ondersteunt beide, en blijkbaar heeft u gekozen om LILO te gebruiken.

LILO installeren is een eitje; gebruik gewoon emerge.

Codevoorbeeld 3.1: LILO installeren

# emerge lilo

LILO configureren

Om LILO te configureren moet u /etc/lilo.conf aanmaken. Start uw favoriete editor (in dit handboek gebruiken we nano voor continuïteit) en maak het bestand.

Codevoorbeeld 3.2: /etc/lilo.conf aanmaken

# nano -w /etc/lilo.conf

Enkele secties geleden hebben we u gevraagd de naam van het door u gemaakte kernel-image te onthouden. In het volgende voorbeeld lilo.conf gebruiken we de standaard partitie indeling. Er zijn twee verschillende delen:

  • Eén voor diegene die geen genkernel hebben gebruikt voor hun kernel
  • Eén voor diegene die wel genkernel hebben gebruikt voor hun kernel

Zorg dat u uw eigen kernel image bestandsnaam en, indien van toepassing, uw eigen initrd images bestandsnaam gebruikt.

Nota: Als uw root bestandssysteem JFS is, moet "ro" aan de kernel regel toevoegen. Hier door kan JFS zijn log naspelen voordat hij schrijven toelaat.

Codevoorbeeld 3.3: Voorbeeld /etc/lilo.conf

boot=/dev/hda             # Installeer LILO in de MBR
prompt                    # Geef de gebruiker de kans een andere keuze te maken
timeout=50                # Wacht 5 (vijf) seconden voor het booten van de standaard keuze
default=gentoo            # Als de timeout voobij is, boot de "gentoo" keuze

# Voor niet-genkernel gebruikers
image=/boot/kernel-2.6.12-gentoo-r10
  label=gentoo            # De naam die we deze keuze geven
  read-only               # Start met een read-only root. Pas niet dit niet aan!
  root=/dev/hda3          # Plaats van het root bestandssysteem

image=/boot/kernel-2.6.17-gentoo-r5
label=gentoo.rescue     # De naam die we deze keuze geven
  read-only               # Start met een read-only root. Pas niet dit niet aan!
  root=/dev/hda3          # Plaats van het root bestandssysteem
append="init=/bin/bb"   # De Gentoo Static nood shell starten

# Voor genkernel gebruikers
image=/boot/kernel-genkernel-x86-2.6.17-r5
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"
  initrd=/boot/initramfs-genkernel-2.6.17-r5

# De volgende twee regels zijn alleen voor dual-boot gebruikers met een Windows systeem.
# In dit geval, Windows is geïnstalleerd op /dev/hda6.
other=/dev/hda6
  label=windows

Nota: Het udev aan het einde van de kernel regel is nodig om langs een bug in enkele genkernel versies te werken. Dit is alleen nodig als u udev gebruikt (wat standaard is).

Nota: Indien u een andere partitie indeling en/of kernel image gebruikt, pas dit dan op de juiste plaatsen aan.

Indien u nog andere opties wilt toevoegen aan de kernel, voeg append toe aan de sectie. Als voorbeeld zullen we het video argument toevoegen zodat we framebuffer kunnen gebruiken:

Codevoorbeeld 3.4: append gebruiken om kernel opties toe te voegen

image=/boot/kernel-2.6.17-r5
  label=gentoo
  read-only
  root=/dev/hda3
  append="video=vesafb:mtrr,ywrap,1024x768-32@85"

Indien u een een 2.6.7 of nieuwere kernel draait en u heeft de harde schrijf gejumperd omdat uw BIOS geen grote harde schijven aan kan, moet u hdX=stroke als optie toevoegen.

genkernel gebruikers moeten weten dat hun kernels dezelfde boot opties gebruiken als de Installatie CD gebruikt. Bijvoorbeeld, als u SCSI apparaten heeft, moet u doscsi als kernel optie toevoegen.

Sla nu het bestand op en sluit af. Om het nog af te maken, moet u /sbin/lilo nog starten zodat LILO /etc/lilo.conf kan toepassen op uw systeem (zoals zichzelf installeren op de schijf). Onthoud dat u /sbin/lilo opnieuw moet starten als u een nieuwe kernel installeert of het menu van LILO verandert.

Codevoorbeeld 3.5: De LILO installatie afmaken

# /sbin/lilo

Nota: Als u de kernel opnieuw installeert, hoeft u niet alle bestanden opnieuw te kopiëren. Draai gewoon make install nadat u uw kernel hebt gecompileerd; hij zal dan automatisch de benodigde bestanden kopiëren en de LILO configuratie aanpassen.

Je kunt nu verder gaan met Het systeem herstarten.

10.d. Het systeem herstarten

Verlaat de chroot en unmount alle gemounte partities. Typ dan het magische commando waarop u heeft gewacht: reboot.

Codevoorbeeld 4.1: Unmount alle partities en reboot

# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot

Vergeet natuurlijk niet de Gentoo CD er uit te halen, anders start u de CD op in plaats van uw nieuwe Gentoo systeem.

Eenmaal opnieuw opgestart en in uw Gentoo installatie, ga verder met De Gentoo installatie afmaken.


[ << ] [ < ] [ Home ] [ > ] [ >> ]


Print

View all

Upgedate op 7 mei 2007

De originele versie van dit document was laatst geupdate om 17 augustus 2014

Korte inhoud: Er bestaan verschillende Bootladers voor de x86 architectuur. Elk van deze heeft zijn eigen manier van configuratie. We zullen stap voor stap het configuratie-proces van een bootlader met u doornemen.

Sven Vermeulen
Author

Roy Marples
Author

Daniel Robbins
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

Dimitry Bradt
Translator

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.