Grub 2 Bestanden en mappen
Dit is een onderdeel van een groter artikel. Geschikt voor: Versie: 10.04 LTS
GRUB 2 gebruikt andere bestanden en mapindeling dan de vorige GRUB. Het van GRUB bekende bestand menu.lst wordt niet meer gebruikt.
Om te bepalen waar GRUB 2 is geïnstalleerd kunt u de volgende opdrachten worden gebruikt:
de schijfpartitie: sudo grub-probe -t device /boot/grub
de UUID: sudo grub-probe -t fs_uuid /boot/grub
De belangrijkste mappen en bestanden voor GRUB 2 zijn onder andere:
/boot/grub/grub.cfg
Het belangrijkste stuurbestand voor GRUB 2 is grub.cfg. Het "vervangt" in zekere zin /boot/grub/menu.lst uit de vorige versie, met als belangrijk verschil dat het NIET de bedoeling is om grub.cfg rechtstreeks te wijzigen.
Elke sectie is duidelijk afgebakend met "(### BEGIN)" en de naam van het bestand in de map /etc/grub.d met het script voor deze sectie.
grub.cfg wordt bijgewerkt door het uitvoeren van de opdracht update-grub voorafgegaan door sudo. De opdracht update-grub start de opdracht sudo grub-mkconfig-o /boot/grub/grub.cfg.
grub.cfg wordt automatisch bijgewerkt bij het wissen of installeren van een kernel versie, bij een update van GRUB 2, door de opdracht update-grub, of bij andere wijzigingen die het opstartproces beïnvloeden.
De eerdere versies van GRUB 2 maakte het bestand "read-only". Nieuwere versies maken het bestand niet meer "read-only" maar het is nog steeds een systeembestand met root als eigenaar.
De map /boot/grub bevat ook veel *.mod bestanden, modules die GRUB 2 zo nodig kan gebruiken.
/etc/default/grub
Dit configuratiebestand bevat informatie die voorheen in het bovenste gedeelte van GRUB menu.lst stond en opties aan het einde van de kernel regel. Dit instellingen in dit bestand kunnen worden bewerkt door een gebruiker met sudo beheerrechten en worden gebruik als een nieuwe grub.cfg wordt gemaakt. Bepaalde instellingen worden hier beschreven.
/etc/grub.d/ (de map)
De scriptbestanden in deze map worden gelezen door een update-grub opdracht om onderdelen te genereren voor /boot/grub/grub.cfg.
- De plaats van een menu-item wordt bepaald door de bestandsnaam van het scriptbestand. Bestandsnamen die beginnen met een cijfer worden als eerste uitgevoerd, te beginnen met het laagste nummer, 10_linux voor 20_memtest en daarna 40_custom, enz. Indien aanwezig worden daarna bestanden die beginnen met een letter uitgevoerd.
- Eigen menu-items kunnen worden toegevoegd aan bestand 40_custom of in een nieuw aangemaakt bestand. Normaal komen menu-items uit bestand 40_custom onderaan het menu. Een nieuw gemaakt bestand wat bijvoorbeeld begint met 06_ komt bovenaan het menu, voor de items uit de 10_ tot 40_ bestanden.
Het scriptbestanden moeten 'uitvoerbaar' zijn (chmod +x /etc/grub.d/bestandsnaam) om door update-grub te worden gebruikt voor grub.cfg. Standaard zijn alle bestanden in /etc/mod.d uitvoerbaar.
De standaard scriptbestanden zijn:
00_header Algemene instellingen uit /etc/default/grub, over uiterlijk, timeout en grafische opties. Deze instellingen worden normaal gesproken aangepast in /etc/default/grub. Normaal gesproken zal u dit bestand niet wijzigen.
05_debian_theme Instellingen voor de achtergrond, tekst kleuren en thema's. Zonder een splash afbeelding wordt een monochroom thema gebruikt.
10_hurd Hurd kernel, wordt niet gebruikt.
10_linux Zoekt kernels op de schijfpartitie waarvan opgestart is.
Opmerking: Alle kernels in de /boot map worden opgenomen. Om oude kernels niet op te nemen kunt u deze wissen uit de map /boot.
20_memtest86+ Zoekt naar /boot/memtest86+.bin als keuze in het opstartmenu. Er is momenteel geen configuratieregel om dit item uit het menu te verwijderen. De keuze voor memtest86+ kan worden onderdrukt door dit scriptbestand niet meer uitvoerbaar te maken.
30_os-prober Dit script gebruikt os-prober om te zoeken naar Linux en andere besturingssystemen voor grub.cfg. Het bestand is verdeeld in 4 secties per soort besturingssystemen: Windows, Linux, OSX, en Hurd. Instellingen in dit bestand bepalen de namen die in /boot/grub/grub.cfg en het GRUB 2 menu worden gebruikt. Gebruikers die bekend zijn met scripting kunnen hier de weergave beïnvloeden. Met een configuratieregel in /etc/default/grub kan dit script geheel worden uitgeschakeld.
40_custom Een sjabloon om door update-grub eigen menu-items op te nemen in grub.cfg. De inhoud van dit bestand vanaf de regel "exec tail -n +3 $0" wordt, inclusief commentaarregels, ongewijzigd in /boot/grub/grub.cfg overgenomen.
De scriptbestanden in deze map moeten uitvoerbaar zijn om te worden opgenomen in update-grub. Bestanden die niet uitvoerbaar zijn worden genegeerd.
Meer informatie
Engelstalige informatie over de upgrade op http://help.ubuntu.com/community/Grub2#File_Structure