Opstartlader Grub: herstellen, aanpassen of verwijderen


Terug naar de thuispagina


Opstartlader Grub aanpassen, herstellen of verwijderen

Inhoud van deze pagina:

Inleiding

1. Grub, oftewel de Grand Unified Bootloader, is de meestgebruikte opstartlader in Linux. Dat is niet voor niets: het ding start werkelijk alle denkbare besturingssystemen op. Alle Linux-distro's, alle Windows-soorten, alle DOS-soorten, alle BSD-soorten, Apple Mac OS/X, noem maar op.

Op mijn meervoudig opstartbare flaptop stonden ooit 10 verschillende besturingssystemen in de menulijst van Grub: gebroederlijk naast elkaar op één harde schijf....

Grub is bewijs voor de kracht van de eenvoud: het programmaatje is zeer eenvoudig maar tevens krachtig en veelzijdig. Toch kunt u wel eens tegen een probleempje aanlopen met Grub. Hier staan de meest vóórkomende beschreven, met de oplossing erbij. Verder staan er wat tips om Grub aan te passen.

Grub herstellen bij ouderwets BIOS

2. De belangrijkste (maar zeker niet de enige) oorzaak van beschadiging van Grub, is ongewenst gedrag van Windows. Als u eerst Linux installeert en daarna pas Windows, dan raakt u namelijk opstartlader Grub kwijt. Daarom kunt u voortaan beter Windows als eerste installeren.

Ook kunt u Grub kwijtraken door het starten van een herstelwindows (vanaf een "verborgen" herstelpartitie op de harde schijf, oftewel Recovery), die uw Windows schoon terugzet naar de fabrieksinstellingen.

Maar er kunnen ook nog andere redenen zijn, waardoor Grub wordt beschadigd of zelfs in het geheel niet wordt geïnstalleerd bij installatie van Linux Mint.

Gelukkig is dit probleem makkelijk op te lossen. Wel is het heel belangrijk, dat u de onderstaande instructie precies opvolgt.

Let op: deze instructie is alleen geschikt voor oudere moederborden die draaien op een ouderwets BIOS. Dit is gewoonlijk het geval bij computers die werden verkocht met een voorgeïnstalleerde Windows Vista of Windows XP.

De instructie is ook geschikt voor een modern moederbord dat draait op een (U)EFI dat is ingesteld om zich te gedragen als een ouderwets BIOS. Zoiets komt meestal voor bij computers met een voorgeïnstalleerde Windows 7.

Maar deze instructie werkt beslist niet op moderne moederborden die draaien op (U)EFI in volledige UEFI-modus. Dat is doorgaans het geval bij computers met een voorgeïnstalleerde Windows 8.x of 10. Voor die moederborden vindt u de instructie hier.


Grub bestaat uit twee delen. Ten eerste het programmaatje zelf, dat in de MBR staat. De Master Boot Record is de eerste sector van de harde schijf.

Ten tweede is er de opstartmenulijst met de verschillende besturingssystemen, alsook enkele ondersteunende bestanden. Die staan niet in de MBR, maar op de actieve Linuxpartitie.

Als u nu Grub herstelt in de MBR, dan moet u hem daarna dus weer even vertellen waar hij de al bestaande opstart-menulijst kan vinden.

Reparatie gaat als volgt:

a. Start uw computer op vanaf de Mint-DVD (of vanaf een Live-USB met daarop Linux Mint).

Let op: gebruik alleen de DVD van de Mintversie die u wil herstellen! Dus bijvoorbeeld bij Linux Mint 19.2 de DVD van 19.2.


b. Nu is het van belang dat u te weten komt welke benaming (partitienummer) de rootpartitie heeft (de partitie waar uw Mint op is geïnstalleerd).

Kijk dit na met het programma Gparted Partition Editor. Op de DVD van Linux Mint is Gparted standaard aanwezig.

Tip: de rootpartitie van uw Mint zal doorgaans geformatteerd zijn in EXT4.

Bij mijn computer heet de rootpartitie van Mint sda5. In het vervolg van de instructie ga ik voor het gemak even uit van die benaming.


c. Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)

Kopieer en plak de volgende regel in het terminalvenster:
sudo mount /dev/sda5 /mnt

Let op: deze opdracht geldt alleen wanneer Mint op sda5 staat! Pas deze opdrachtregel aan wanneer dit bij uw computer anders is.

druk op Enter.


d. Daarna in de terminal (voorkom tikfouten: kopieer en plak):

sudo grub-install /dev/sda --root-directory=/mnt

druk op Enter.

U zou eventueel de volgende onbelangrijke foutmelding kunnen krijgen:

grub probe: error: failed to get canonical path of /cow
Installation finished. No error reported.


In dat geval is er niets aan de hand en is alles gewoon goed gegaan. De foutmelding van grub probe kunt u veilig negeren.


e. Doe daarna in de terminal:

sudo reboot

...druk op Enter.

Nu zal uw computer herstarten vanaf de harde schijf (tijdig de DVD verwijderen!), en doet Grub het weer. Maar een eventuele Windows staat nog niet in het Grubmenu; ga daarvoor door naar de volgende stap.


f. Plaats nu de nieuwe Windows in het Grubmenu:

Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)

Kopieer en plak de volgende regel in het terminalvenster:

sudo update-grub

Druk op Enter en tik desgevraagd uw wachtwoord in. In Ubuntu blijft dit geheel onzichtbaar, u ziet zelfs geen sterretjes wanneer u het intikt, dat hoort zo. In Mint is dit veranderd: u ziet wel sterretjes. Druk opnieuw op Enter.

Herstart uw computer. U zou nu weer Windows moeten zien in het Grubmenu (vermoedelijk als laatste regel).

Grub herstellen bij moderne computers (met EFI of UEFI BIOS)

3. De instructie voor het herstellen van Grub bij een moderne computer met voorgeïnstalleerde Windows 8.x of 10, die dus draait op EFI of UEFI BIOS, vindt u hier.

Grub aanpassen: opstartmenu altijd zichtbaar

4. Op een tweevoudig opstartbare computer, met bijvoorbeeld Linux naast Windows, is het opstartmenu van Grub altijd zichtbaar.

Maar niet op een enkelvoudig opstartbare computer met alleen Linux: dan ziet u nooit een Grubmenu. Dat kan soms wel eens lastig zijn.

Als volgt maakt u het Grubmenu altijd zichtbaar:

a. Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)


b. Kopieer en plak de volgende regel in het terminalvenster:


xed admin:///etc/default/grub

Druk op Enter.


c. Nu opent zich een instellingenbestand. Zoek daarin de regel GRUB_TIMEOUT_STYLE=hidden en verander "hidden" in "menu", zodat het wordt:

GRUB_TIMEOUT_STYLE=menu


d. Sla het gewijzigde tekstbestand op en sluit het.


e. Genereer nu een nieuw Grubmenu. Kopieer en plak de volgende regel in het terminalvenster:


sudo update-grub

Druk op Enter.


f. Herstart daarna uw computer. Het Grubmenu zou nu automatisch gedurende 5 seconden in beeld moeten komen, zonder dat u er iets voor hoeft te doen.

Grub aanpassen: mooie achtergrondfoto voor het menu

5. Het menu van Grub is functioneel, maar niet bepaald mooi. Nu u toch in de weer bent met Grub, is het misschien wel leuk om Grub even te verfraaien.

Grub aanpassen: opstartvolgorde veranderen

6. Grub is bijzonder aanpasbaar, zoals het ook hoort in Linux. De opstartvolgorde in het Grubmenu kunt u als volgt aanpassen.

Grub aanpassen: menutekst bij meervoudige opstart wijzigen

7. Hebt u een meervoudig opstartbare computer, waarop meer dan één versie van Linux Mint is geïnstalleerd? Dan is het handig om de tekst in het Grubmenu aan te passen, zodat u duidelijker ziet welke Linux u opstart. Dat doet u zo.

Grub vastzetten op de huidige versie

7.1. Als u een meervoudig opstartbare computer hebt met meer dan één Linux, kan het handig zijn om Grub in alle geïnstalleerde Linuxdistributies vast te zetten op de huidige versie. Zodat bijgewerkte Grub-pakketten nooit uw opstartvolgorde in de war kunnen sturen.

In elke geïnstalleerde Linux doet u daarvoor het volgende:

a. Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)

b. Kopieer en plak de volgende regel in het terminalvenster:

sudo apt-mark hold "*grub*"

Druk op Enter en tik desgevraagd uw wachtwoord in. In Ubuntu blijft dit geheel onzichtbaar, u ziet zelfs geen sterretjes wanneer u het intikt, dat hoort zo. In Mint is dit veranderd: u ziet wel sterretjes. Druk opnieuw op Enter.

Klaar!

Wilt u de versievergrendeling van Grub weer opheffen? Ongedaan maken van de vergrendeling kan met deze terminalopdracht:
sudo apt-mark unhold "*grub*"

Grub aanpassen: opstartvertraging vergroten of verkleinen

8. Voor het veranderen van de opstartvertraging dient u het opstartmenu van Grub te bewerken. Dat kan als volgt.

a. Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)

b. Kopieer en plak de volgende regel in het terminalvenster:

xed admin:///etc/default/grub

Druk op Enter.

Het gaat om de volgende regel: GRUB_TIMEOUT (de zichtbaarheidtijd van het opstartmenu, in seconden). Verander dit naar believen.

Let op: het heeft geen effect als u de tijd op 0 zet, want dan verandert het systeem dat in 10. Een goede noodoplossing is om de tijd op 0.1 (Engelse notatie voor 0,1) te zetten; dat werkt wel, want daarmee is het teruggebracht naar ééntiende van een seconde.

Alleen van belang voor een enkelvoudig opstartbare computer: via GRUB_TIMEOUT regelt u het aantal seconden dat u hebt voor het alsnog zichtbaar maken van het Grubmenu met de Esc-toets. Op een enkelvoudig opstartbare computer is het Grubmenu immers standaard onzichtbaar.

GRUB_TIMEOUT zet ik zelf altijd op 3, want anders is het lastig om de Esc-toets tijdig in te drukken. Let op: staat het hekje-teken # (hekje) aan het begin van de regel? Haal het dan weg, want pas daarmee wordt deze regel actief.

Voor zover u het nog niet weet: u dient de Shift-toets dan in te drukken direct na het verdwijnen van het BIOS-scherm. En ingedrukt te houden, dus pas loslaten wanneer het Grubmenu te zien is.
Let op: op sommige computers werkt alleen de linker-SHIFT-toets of alleen de rechter-SHIFT-toets.

Sla het gewijzigde bestand op en sluit het.

c. Voor het blijvend maken van de wijzigingen die u hebt aangebracht, doet u daarna in de terminal (kopieer en plak):

sudo update-grub

Druk op Enter en tik desgevraagd uw wachtwoord in. In Ubuntu blijft dit geheel onzichtbaar, u ziet zelfs geen sterretjes wanneer u het intikt, dat hoort zo. In Mint is dit veranderd: u ziet wel sterretjes. Druk opnieuw op Enter.

Grub aanpassen: gebruik geen Grub Customizer

9. Verder is er ook een gereedschapje van derden, genaamd Grub Customizer (grub-customizer). Die verziekt uw opstartlader.

Grub Customizer brengt namelijk grote veranderingen aan in de systeemmap /etc/grub.d, waarin belangrijke onderdelen van Grub staan. Die veranderingen verdwijnen niet, als u Grub Customizer na gebruik weer verwijdert!

Grub Customizer verandert in die systeemmap bestanden in zogeheten "proxified" bestanden, hetgeen een ingewikkelde en onoverzichtelijke situatie schept. Deze toegevoegde dikke laag van complexiteit heeft mogelijk iets te maken met de problemen die het kan veroorzaken: hoe ingewikkelder je iets maakt, hoe groter de kans dat er iets fout gaat....

Een andere aanwijzing om er mee op te passen, is dat Grub Customizer niet in de officiële pakketbronnen zit.

Het probleem met Grub Customizer in een notedop: zolang als het werkt zoals het moet, is alles in orde.

Maar wanneer er wel een probleem optreedt, kan het grote moeilijkheden veroorzaken bij verwijdering en bij het proberen om zonder Grub Customizer op te starten. Dit omdat Grub Customizer grote veranderingen aanbrengt in /etc/grub.d, die allemaal handmatig ongedaan gemaakt moeten worden. Want als u Grub Customizer na gebruik weer verwijdert, dan blijven die veranderingen helaas in stand.

Dat is het nadeel van de complexiteit die het toevoegt. En waarvoor? Voor een paar dingen, doorgaans niet-essentiële leukigheden, die meestal ook gedaan kunnen worden zonder dat er een dikke laag van complexiteit wordt toegevoegd...

Grub Customizer mag er makkelijk en handig uitzien, maar het kan een essentieel onderdeel van uw besturingssysteem verzieken. Uw opstartlader is zo essentieel als het maar zijn kan: met een systeem dat niet meer opstart, kunt u immers niets meer beginnen.

Bovendien kan het meeste wat Grub Customizer doet, ook worden bereikt met andere middelen (zie de overige instructies op deze webpagina). Zonder "onder de motorkap" dikke lagen van complexiteit toe te voegen.

Gelukkig zit Grub Customizer niet in de officiële pakketbronnen. Laten we hopen dat dat zo blijft.

Een uitgebreide analyse van wat Grub Customizer doet, met veel schermafdrukken, vindt u in dit Engelstalige artikel.

Hebt u Grub Customizer al eens gebruikt, en wilt u uw systeem weer terugbrengen in de normale toestand? Hieronder vindt u de methode daarvoor.

Zo verwijdert u de complicaties die Grub Customizer heeft aangebracht

9.1. Als u het slachtoffer ben geworden van Grub Customizer, dan kunt u een momentopname van Timeshift terugzetten om ervan af te komen. Als u zo'n momentopname niet heeft, dan raad ik aan om het zo te laten (althans zolang als u geen problemen ondervindt).

Noodoplossing: als u wel opstartproblemen heeft, en alleen dan, zoudt u als volgt van de complicaties van Grub Customizer moeten kunnen afkomen (nog onvoldoende beproefd, dus wees voorzichtig):

a. Hiervoor moet u wel uw systeem kunnen opstarten, op de een of andere manier. Dus de opstartproblemen die u ervaart, mogen niet zo ernstig zijn dat zelfs dat niet lukt. Want dan kunt u onderstaande handleiding niet toepassen.

b. Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)

c. Kopieer en plak, één voor één, de volgende regels in het terminalvenster (druk op Enter na elke individuele regel):

sudo mkdir -v /etc/gcbackup

sudo cp -v -r /etc/grub.d/backup/* /etc/gcbackup

sudo rm -v -r /boot/grub/*

sudo rm -v -r /etc/grub.d/*

sudo rm -v /etc/default/grub

sudo cp -v -r /etc/gcbackup/boot_grub/* /boot/grub

sudo cp -v -r /etc/gcbackup/etc_grub_d/* /etc/grub.d

sudo cp -v /etc/gcbackup/default_grub /etc/default/grub

sudo grub-install

sudo update-grub

sudo rm -v -r /etc/gcbackup

Als dat mislukt of niet het gewenste resultaat heeft, dan is een schone herinstallatie van uw Linux Mint of Ubuntu de beste oplossing....

Noodingrepen in Grub

10. Soms is het nodig om een noodingreep te doen in Grub. Bijvoorbeeld wanneer u de tijd dat het opstartmenu zichtbaar moet zijn, op 0 seconden hebt gezet en naderhand Windows als eerste in de opstartvolgorde hebt geplaatst (het is mij weleens gebeurd, zucht....).

U krijgt dan met geen mogelijkheid Linux Mint meer opgestart. Behalve met een noodingreep. Tijdelijke noodingrepen kunt u doen in:

/boot/grub/grub.cfg

Uw handmatige wijzigingen verdwijnen daar weer uit, bij de eerstvolgende keer dat update-grub wordt uitgevoerd. Maar zo kunt u tenminste Linux Mint weer opstarten.

Aanpak:
- start eerst uw computer op vanaf de Mint-DVD.

- ga na, op welke partitie van de harde schijf Linux Mint is geïnstalleerd.

- koppel die partitie aan. Een voorbeeld is het makkelijkste. Als Linux Mint bijvoorbeeld op sda5 staat, dan koppelt u die partitie als volgt aan:

Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)

Kopieer en plak de volgende regel in het terminalvenster:

sudo mount /dev/sda5 /mnt

druk op Enter. Het is een LiveDVD-sessie, dus u hoeft geen wachtwoord in te tikken.

Tik vervolgens in de terminal in (kopieer en plak):

xed admin:///mnt/boot/grub/grub.cfg

druk op Enter.

Nu opent zich een tekstbestand. Tamelijk bovenaan in dat tekstbestand, staat de regel:
set default="6" (voorbeeld, het cijfer kan anders zijn).

Om Linux Mint weer op te laten starten, verandert u het cijfer in 0 (nul). Dus:
set default="0"

Opslaan, sluiten, computer herstarten vanaf de harde schijf. Linux Mint zou nu weer automatisch op moeten starten. Het eerste wat u daarna wil doen, is uiteraard de opstartvolgorde respectievelijk de zichtbaarheidsduur van het opstartmenu, blijvend goed zetten.

Opstartmenu van Grub zichtbaar maken

11. Op een enkelvoudig opstartbare computer met alleen Linux Mint, krijgt u het opstartmenu van Grub nooit te zien. In zo'n geval kunt u dat opstartmenu alsnog zichtbaar maken wanneer u uw computer aanzet, door één keer op de Esc-toets te drukken, direct na het verdwijnen van het BIOS-scherm.

Echter, het aanslaan van de Esc-toets op precies het juiste moment, kan lastig zijn. In dat geval kunt u de Esc-toets ook herhaaldelijk aanslaan, meteen na het verdwijnen van het BIOS-scherm. Dat verhoogt uw kansen op succes, maar u zult daardoor eindigen in een "kale" Grub-opdrachtregel zonder menu.

Maak u echter geen zorgen: in die Grub-opdrachtregel tikt u in: normal en drukt u op Enter. Begin direct daarna wederom met het herhaaldelijk aanslaan van de Esc-toets, totdat het menu alsnog verschijnt.

Dit keer hoeft u niet bang te zijn dat u de Esc-toets te veel keren aanslaat: het meermaals indrukken van de Esc-toets zal in dit stadium geen kale Grub-opdrachtregel opleveren, maar het langverwachte opstartmenu (eindelijk!).

Grub verwijderen (terug naar uitsluitend Windows)

11. Kort gezegd komt dit neer op het vervangen van Linux opstartlader Grub, door Microsoft opstartlader NT Loader, in de Master Boot record (MBR) van de harde schijf. Daar zijn vele manieren voor:

Met de installatie-CD van Windows XP

Hiervoor hebt u een echte installatie-CD van Windows XP nodig; dus geen Recoveryschijf. Hebt u zo'n CD niet? Sla dit punt dan over en ga direct naar punt 11.4 op deze pagina.

12.1. Start de computer vanaf een installatie-CD van Windows XP en kies R voor herstellen of repareren. Er komt nu een consolescherm met een menu.

Kies het nummer van de Windowspartitie (normaal gesproken 1 voor C:\Windows) en tik het administrator-wachtwoord in.

Installeer NT Loader met de achtereenvolgende twee opdrachten:

fixboot C:

Druk op Enter

fixmbr

Druk op Enter

Hierbij is C: de letter van de Windows-schijf.

Met de installatie-DVD van Windows 7

12.2. Hiervoor heeft u een echte installatie-DVD nodig van Windows 7; dus geen Recoveryschijf. Hebt u zo'n DVD niet? Sla dit punt dan over en ga direct naar punt 11.4 op deze pagina.

De aanpak is als volgt:

a. Stop de installatieschijf van Windows 7 in het DVD-station en start de computer daarvan op.

b. Druk desgevraagd op een toets (spatiebalk is altijd veilig).

c. Kies eventueel uw taal en toetsenbord, en druk op Next.

d. Klik op Repair your computer.

e. Klik op het besturingssysteem dat u wil "repareren", en klik daarna op Next.

f. In de System Recovery Options klikt u op Command Prompt.

g. Nu krijgt u een terminalvenster voor ogen (DOS-venstertje). Tik in:  Bootrec.exe /Fixboot en druk daarna op Enter.

Let op: er staat een spatie tussen Bootrec.exe en /Fixboot.

h. Tik daarna in: Bootrec.exe /FixMbr en druk op Enter.

Let op: er staat een spatie tussen Bootrec.exe en /FixMBR.

Met de installatie-DVD van Windows 8.x of 10

12.3. Hiervoor heeft u een echte installatie-DVD nodig van Windows 8.x of 10; dus geen Recoveryschijf.

Wat u ook kunt gebruiken is een gratis evaluatieschijf van Windows 10 Enterprise, waarvan u het iso-bestand kunt ophalen bij Microsoft. U dient daar wel een (eveneens gratis) Microsoft-account voor aan te maken, maar dat kan ook met een nepnaam.

Vervolgens moet u dan het opgehaalde iso-bestand op een DVD branden, op een speciale manier.

De eigenlijke aanpak, het verwijderen van Grub, is beschreven op deze pagina.

Met de gratis Ultimate Boot CD

12.4. Geen installatie-CD of -DVD van Windows? Dan kunt u NT Loader ook terugzetten met een andere reddings-CD. Bijvoorbeeld de Ultimate Boot CD (UBCD). Deze kunt u hier binnenhalen. Kies het .iso van de stabiele versie, en brand er een CD van.

Start uw computer op vanaf de UBCD (zorg ervoor, dat het CD-station als eerste staat vermeld in de opstartvolgorde in het BIOS).

UBCD heeft verschillende gereedschappen aan boord, om NT Loader terug te zetten in het MBR. Ik beschrijf er slechts één van.

In het menu selecteert u HDD, daarna Boot Management, en daarna Super Grub Disk. Daarna nogmaals op Enter drukken, om de Super Grub Disk te starten. Vervolgens kiest u:
Win => MBR &  !WIN!   :(((((((((((((((((((((((((((((((((
Druk op Enter.

De overdaad aan haakjes (zucht) is overigens niet mijn idee, maar het idee van de maker van de Super Grub Disk...

Daarmee bent u klaar. Herstart uw computer op de normale manier. Uw computer zou nu moeten doorstarten in Windows.

Met een diskette

12.5. Voor Windows XP kan het ook met een diskette: Start uw PC op met een opstartbare DOS-diskette en voer de volgende opdracht uit in een DOS-venstertje: fdisk /mbr

Let op: er staat een spatie tussen fdisk en /mbr.

Met een USB-geheugenstaafje

12.6. Tot slot kan het ook nog met een USB-geheugenstaafje. Daar zijn drie programma's voor nodig: Unetbootin, FreeDOS en Testdisk for DOS.

a. Maak een USB-geheugenstaafje opstartbaar met FreeDOS.

b. Haal Testdisk voor Dos/Win9x binnen (dus niet de Windowsversie!).

c. Pak de bestanden testdisk.exe en CWSDPMI.EXE uit, en plaats ze op die opstartbare USB-staaf.

d. Start vervolgens de computer op vanaf de USB-staaf. Bij Default gewoon op Enter drukken.

e. Nu start FreeDOS zelf. Kies voor FreeDOS Safe Mode (don't load any drivers) en druk op Enter.

f. Tik daarna in: C:
...en druk op Enter.

g. tik nu in: testdisk
...en druk op Enter.

h. Selecteer [No Log] en druk op Enter.

i. Selecteer de harde schijf waar het om gaat: doorgaans de tweede keuze (de eerste keuze is de USB-staaf!). Druk op Enter.

j. Kies [ Intel ] en druk op Enter.

k. Selecteer [ MBR Code ] en druk op Enter. Tik desgevraagd y (yes) in en druk weer op Enter.

Foutmelding Status: 0xc000000e

12.7. Indien u vervolgens de foutmelding Status: 0xc000000e krijgt bij het opstarten van Windows 7, kijk dan eens hier.

Nog meer tips?

Wilt u meer tips en trucs? U vindt er nog veel meer op deze webstek!

Zoals deze:

Maak uw Linux Mint sneller

Maak Linux Mint veilig schoon

Vermijd 10 fatale vergissingen


Op de inhoud van deze webstek is een Creative Commons-licentie van toepassing.

Algemeen voorbehoud en uitsluiting aansprakelijkheid

Terug naar de thuispagina