GRUB 2
Korte samenvatting van GRUB 2:
- Een bestand genaamd grub.cfg controleert het Grub Scherm.
- grub.cfg wordt automatisch gegenereerd door de scripten in /etc/grub.d.
- Partities zijn genummerd vanaf 1 in plaats vanaf 0 en de schijven zijn genummerd vanaf 0:
Linux grub2 /dev/sda1 (hd0,1) /dev/sda2 (hd0,2) /dev/sda3 (hd0,3) /dev/sdb1 (hd1,1) /dev/sdb2 (hd1,2) /dev/sdb3 (hd1,3)
- Vermits de grub.cfg file een 'result' bestand is moet het grub.cfg bestand nooit manueel gewijzigd worden.
De standaard Grub 2 configuratie bestand
Het bestand /etc/default/grub bevat de grub2 variabele instellingen. Bijvoorbeeld, timeout voor het menu, standaard waardes in het menu om geactiveerd te worden, kernel parameters, het gebruik van de grub weergaves enzovoort.
De Grub 2 script bestanden
/etc/grub.d bestanden beheren het 'result' bestand genoemd grub.cfg, welke je kunt vinden in /boot/grub/.
Het grub.cfg bestand moet nooit handmatig aangepast worden. Alle wijzigingen moeten worden uitgevoerd met 1 of alle script bestanden welke te vinden zijn in /etc/grub.d. os-prober zal 90% van alle gevallen zelfs uitvoeren:
00_header:
05_debian_theme: Zet achtergronden, tekst kleur, themas
10_hurd: Localiseert Hurd kernels
10_linux: Localiseert Linux kernels gebaseerd op resultaten van de lsb_release command.
20_memtest86+: Indien het bestand /boot/memtest86+.bin bestaat, wordt het toegevoegd aan het boot menu.
30_os-prober: Zoeken naar Linux en andere OS's op alle partities; worden ook toegevoegd in het boot menu.
40_custom: Een template voor het toevoegen van custom boot menu entries voor andere Operating Systems.
60_fll-fromiso: Een template voor het toevoegen van custom boot menu entries voor de fromiso naar een USB-stick/SD-kaart.
60_fll-fromiso moet niet gewijzigd worden, gebruik /etc/default/grub2-fll-fromiso
Lees ook Opstarten via 'fromiso' met Grub 2
Indien er een wijziging is uitgevoerd, moet grub.cfg dit ook weten. Indien het draait om een aptosid kernel upgrades, het update commando wordt dan automatisch uitgevoerd. In het geval van een handmatige wijziging uitgevoerd door jou als systeem admin of een script van hierboven, dan moet je het volgende uitvoeren:
update-grub
Het Debian Grub2 deb pakket is zo ontworpen dat een handmatige wijziging zelden voorkomt.
Wijzigen van de Grub2 boot opties via het edit scherm
Indien, om welke reden dan ook, je een tijdelijke wijziging moet maaken aan de boot opties van een kernel in Grub2, druk dan op de letter e om de kernel opties te wijzigen, met de pijltjes toetsen navigeer je naar de regel die je wilt wijzigen, dan nog steeds in het wijzigingscherm gebruik Ctrl+x om de PC op te starten met je gewijzigde opties.
Bijvoorbeeld, om direct naar run level 3 te gaan, voeg een 3 toe aan het eind van de regel linux /boot/vmlinuz .
De wijzigingen die je maakt in het editscherm zijn niet permanent. Om permanent wijzigingen te maken, moet je de benodigde bestanden wijzigen. Zie Grub 2 bestanden.
Dual en multi booting met Grub 2
Aangezien Grub2 een modulair in de configuratie is, het staat een eenvoudige opdracht om te zoeken naar een nieuw geïnstalleerde besturingssystemen toe en als er een wordt gevonden, probeert het de verandering door te voeren in net menu.cfg bestand. Het commando is simpel:
update-grub
Heeft u behoefte aan een aangepaste entry toe te voegen aan menu.cfg of als de 30_os-prober niet meer in het bestand grub.cfg kan schrijven met chainloader menu's maak met uw favoriete tekstverwerker de wijzigingen aan in /etc/grub.d/40_custom.
Voorbeelden van wijzigingen in het 40_custom bestand:
menuentry "second mbr"{ set root=(hd1) chainloader +1 }
menuentry "second partition"{ set root=(hd0,2) chainloader +1 }
En nadat je je wijzigingen hebt uitgevoerd voer dan het volgende commando uit:
update-grub
Mocht er een melding komen dat er geen grub device of disk gevonden kan worden, dan betekent dit dat de devicemap opnieuwe gegenereerd moet worden.
Wees er zeker van dat je de partitie kiest en niet de MBR waarop je het andere operating systeem installeert:
grub-mkdevicemap --no-floppy update-grub
Waarschuwingen kunnen hier veilig genegeerd worden.
Indien je een fout hebt begaan, de update zal waarschijnlijk je MBR overschreven hebben en je moet dit herstellen via Grub2 - MBR Overschreven.
Om alleen grub2 opnieuw naar de MBR van de harddisk te schrijven voer je het volgende uit:
/usr/sbin/grub-install --recheck --no-floppy /dev/sda
Deze regel moet eventueel meerdere keren uitgevoerd worden, totdat je het zeker weet.
MBR Bootsector overschreven door Windows, een corrupte en / of herstellen van Grub2
NOTITIE: om Grub2 bootloader te herstellen heb je de 2009-04 (moros) aptosid.iso of later nodig. Als alternatief kan je chroot gebruiken met elke live.iso.
Om grub2 te opnieuw te schrijven naar de MBR en/of om grub2 in het algemeen te herstellen, moet je opstarten met een aptosid.iso:
- Om je partities te indentifieren en te bevestigen (bv. [h,s]d[a..]X) moten volgende acties met root rechten uitgevoerd worden, dus wordt root (#):
$ su
- Wanneer je root bent type dan in:
fdisk -l cat /etc/fstab
Dit is om de juiste namen te verkrijgen. - Zodra je de juiste partitie gelocaliseerd hebt, creeer je het koppelpunt:
mkdir -p /media/[hdxx,sdxx,diskx]
- Koppel de partitie:
mount /dev/xdxx /media/xdxx
- Herschrijf nu Grub naar MBR van de eerste harddisk (algemeen):
/usr/sbin/grub-install --recheck --no-floppy --root-directory=/media/xdxx /dev/sda
Met behulp van chroot een overschreven of beschadigd Grub in de MBR herstellen
Om Grub te herstellen indien deze overschreven of corrupt is in de MBR, maak dan een chroot omgeving aan. Met elke live.iso kan worden volstaan en de chroot brengt u naar uw hardeschijf geïnstalleerde systeem, zodat u de juiste grub versie, grub1 (grub-legacy) of grub2 kunt herstellen.
Start op met een live aptosid.iso welke werkt voor uw systeem (32 of 64 bit CD, DVD, USB stick of een SD kaart) en open het konsole. Type in su en druk op enter om root toegang te krijgen.
Gebruik fdisk -l or blkid, gewis u ervan wlke partitie de boot partitie is en verkrijg de juiste namen. Indien je een GUI wilt gebruiken, gebruik dan Gparted:
blkid
en controleer dat fstab overeen komt met de uitvoer van blkid:
cat /etc/fstab
Laten we aanemen dat het root bestandssysteem op /dev/sda2 staat.
mkdir /mnt/aptosid-chroot mount /dev/sda2 /mnt/aptosid-chroot
Nu moet je de volgende koppelpunten aankoppelen (mount) /proc, /run, /dev and /sys :
mount --bind /proc /mnt/aptosid-chroot/proc mount --bind /run /mnt/aptosid-chroot/run mount --bind /sys /mnt/aptosid-chroot/sys mount --bind /dev /mnt/aptosid-chroot/dev mount --bind /dev/pts /mnt/aptosid-chroot/dev/pts
Indien je van een EFI systeem partitie boot moet je deze ook aankopelen. Uitgaande dat dit /dev/sda1 is:
mount /dev/sda1 /mnt/aptosid-chroot/boot/efi
Je chroot omgeving is nu klaar, benaderd het via:
chroot /mnt/aptosid-chroot /bin/bash
Nu bent u in staat om de lokale apt's cache te gebruiken of bestanden te wijzigen die je moet aanpassen alsof je goed opgestart bent in het besturingssysteem, in dit geval om terug het probleem met Grub op te lossen in de MBR.
Voor het herstellen van Grub 2
apt-get install --reinstall grub-pc
Om er zeker van te zijn dat grub om de juiste harddisk of partitie geinstalleer is voer je het volgende commando uit:
dpkg-reconfigure grub-pc
Voor het herstellen van Grub 2 EFI
apt-get install --reinstall grub-efi-amd64
Voor het herstellen van Grub 1 (grub-legacy)
apt-get install --reinstall grub-legacy
Volg de instructies van de installatie programma's op.
Om de chroot omgeving vrij te geven:
Ctrl+d
Herstart je PC.