ls
, set
, linux
En initrd
commando’s om je Linux-systeem te repareren. Als je in plaats daarvan een prompt “grub rescue>” ziet, gebruik dan set
, insmod
, linux
En initrd
commando’s om uw pc op te starten.Als je Linux-computer niet kan opstarten in zijn besturingssysteem, sta je waarschijnlijk te staren naar een prompt in de GRUB-shell. Volg deze stappen om uw kapotte opstartprocessen te herstellen.
Wanneer uw bootloader niet opstart
De GRUB-shell gebruiken
De GRUB Rescue Shell gebruiken
Andere mogelijke remedies
Wanneer uw bootloader niet opstart
Er zijn maar weinig computerproblemen die uw hart zo diep en snel doen zinken als een mislukking om op te starten. Zonder werkend besturingssysteem is uw computer niet echt een computer.
Het kan een zeer ondoorzichtig probleem zijn, waarbij geen gemakkelijke manier is om de oorzaak te achterhalen. Zonder toegang tot Linux kunt u geen van de gebruikelijke diagnostische hulpprogramma’s en processen gebruiken die u zou gebruiken om het probleem te onderzoeken. En zonder vast te stellen wat het probleem is, hoe kunt u het oplossen?
Op Linux is GRUB de software die het opstartproces regelt. Als u meerdere besturingssystemen hebt geïnstalleerd, kunt u degene kiezen waarin u wilt opstarten.
GRUB wordt bestuurd door zijn configuratie. Het vertrouwt ook op andere ondersteunende bestanden om zijn functies uit te voeren. Als een van deze ontbreekt of beschadigd raakt, zal GRUB niet werken. Wijzigingen aan de harde schijven en partities van je computer moeten worden weerspiegeld in de configuratie van GRUB. Als dit niet het geval is, hebben GRUB’s instructies geen zin en zal je opstartproces niet werken.
Even terzijde, wat we allemaal GRUB noemen, is eigenlijk GRUB 2. Dit is een geavanceerde versie van GRUB die in 2012 werd uitgebracht. Het veranderde onder andere de manier waarop het bestand “grub.cfg” werd gemaakt, en liet je opstarten vanaf verwisselbare media.
Als GRUB een besturingssysteem niet kan laden, blijf je staren naar een prompt in de GRUB-shell. Dit is een minimalistische omgeving waarin je een handvol acties kunt uitvoeren. Als u deze stappen echter correct uitvoert, kan uw computer weer tot leven komen.
Er zijn twee verschillende GRUB-shells. Afhankelijk van de oorzaak van het probleem, bevindt u zich mogelijk bij een GRUB-shell-prompt:
grub>
of bij een GRUB redden shell-prompt:
grub rescue>
De GRUB-reddingsshell is nog beperkter dan de GRUB-shell, maar hij heeft nog steeds genoeg kracht om je computer op te starten. Zodra uw computer is opgestart, bent u in een veel betere positie om de oorzaak te verhelpen.
De GRUB-shell gebruiken
De GRUB-shell is een opdrachtregelinterface waarmee je een kleine subset van Linux-opdrachten kunt gebruiken. Als u zich hier bevindt in plaats van op uw gebruikelijke inlogscherm, betekent dit dat uw opstartproces in de war is.
De commando’s waartoe u toegang heeft, zijn niet hetzelfde als de gebruikelijke Linux-versies. Bijvoorbeeld de GRUB-shell ls
commando is niet de Bash ls
commando. Het heeft er weinig mee gemeen. We kunnen dit zien door de --help
keuze.
ls --help
Het bevat slechts vijf opties. Dat staat ver af van de tientallen opties die worden ondersteund door ls
in Bash. Desalniettemin kunnen we, zelfs met ons ietwat gedempte palet aan commando’s, de situatie nog steeds rechtzetten.
Typ achter de prompt ls
en druk op “Enter”.
ls
Op deze computer staan drie items vermeld.
- (hd0) is de eerste harde schijf.
- (hd0,gpt1) is de eerste partitie op de eerste harde schijf.
- (hd0,gpt2) is de tweede partitie op de eerste harde schijf.
Het label “gpt” staat voor GUID-partitietabel. We moeten de haakjes opnemen “()
” wanneer we verwijzen naar een partitie, maar we kunnen het label weglaten.
Om beurtelings naar de partities te kijken, gebruiken we ls
.
ls (hd0,1)
ls (hd0,2)
We hebben ontdekt dat de tweede partitie een Linux-bestandssysteem heeft. We zullen wat verder onderzoeken door naar de hoofdmap van die partitie te kijken.
ls (hd0,2)/
Het is duidelijk dat dit de Linux-partitie is, met de opstartmap erop. Hier worden de GRUB-bestanden, Linux-opstartimages en andere opstartbestanden opgeslagen.
Op deze computer moeten we verwijzen naar de partitie (hd0,2)
wanneer we onze bevelen geven. Op je computer zou je de partitie gebruiken waarop je je Linux-installatie aantreft.
We kunnen de cat
opdracht om tekstbestanden te zoeken door het mappad en de bestandsnaam als volgt aan de partitienaam toe te voegen:
cat (hd0,2)/etc/issue
Bij multi-boot installaties is dit een handige manier om te controleren of u zich op de juiste partitie bevindt. Het is ook geweldig om in configuratiebestanden te kijken.
Hier gebruiken we de ls
commando met de -l
(lang) en -h
(door mensen leesbare formaten) opties om de bestanden in de map “/ boot” weer te geven.
ls -lh (hd0,2)/boot
Om deze computer op te starten, moeten we GRUB vertellen dat onze nieuw ontdekte Linux-partitie de opstartbestanden bevat.
set root=(hd0,2)
We moeten specificeren vanaf welke Linux-kernel moet worden opgestart. Dit doen we met de linux
commando. Merk op dat we ook de hoofdmap moeten opgeven met behulp van het gebruikelijke Linux-schema voor de naamgeving van harde schijven en partities.
linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2
Op onze voorbeeldcomputer gebruiken we (hd0)
dat is de eerste harde schijf. Dit heet sda
in de gebruikelijke Linux-nomenclatuur. We hebben ontdekt dat de tweede partitie de Linux-partitie is, dus we moeten dit specificeren sda2
.
Uw machine kan anders zijn. Als uw Linux-partitie bijvoorbeeld wordt gerapporteerd als (hd2,1)
dat betekent partitie één op de derde harde schijf, of sdc1
.
We moeten ook specificeren welke RAM-gebaseerde bestandssysteemafbeelding moet worden gebruikt wanneer de computer opstart. Dit moet dezelfde numerieke component gebruiken als de Linux-kernel die we gebruiken.
initrd /boot/initrd.img-6.2.0-20-generic
Om ons systeem op te starten, typt u “boot” en drukt u op “Enter”.
Dit zou je computer moeten opstarten in Linux. Dat heeft ons weer aan het werk gezet, maar we moeten GRUB nog repareren, zodat we dit niet elke keer hoeven te doen als we onze computer opstarten.
We zullen rennen update-grub
. Dit zal ons systeem scannen, besturingssystemen identificeren en een nieuwe GRUB-configuratie maken. We moeten dit uitvoeren als de rootgebruiker.
sudo update-grub
Het komt zelden voor dat je de GRUB-bootloader ook opnieuw moet installeren met behulp van grub-install
.
sudo grub-install /dev/sda
Merk op dat u niet hoeft op te geven op welke partitie u wilt installeren, alleen op welk station. Bij normale installaties is dit dezelfde schijf waarop je Linux staat.
Het bewijs van de pudding komt met de volgende herstart. Uw computer zou normaal opnieuw moeten opstarten.
De GRUB Rescue Shell gebruiken
Afhankelijk van de aard van het opstartprobleem, wordt u mogelijk niet in de GRUB-shell gedropt. Je zou kunnen worden achtergelaten in de GRUB redden modus. Als dat het geval is, ziet uw prompt er als volgt uit:
grub rescue>
De commando’s die we in deze shell moeten geven, zijn verschillend. We moeten gebruiken ls
om de Linux-partitie te vinden, net alsof je de GRUB-shell gebruikt. Nadat u de Linux-partitie hebt geïdentificeerd, kunt u doorgaan en deze opdrachten invoeren.
Vergeet niet de stations-ID’s en kernelversienummers te gebruiken die correct zijn voor uw computer. De insmod
opdracht laadt kernelmodules.
set prefix=(hd0,2)/boot/grub
set root=(hd0,2)
insmod normal
insmod linux
linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2
initrd /boot/initrd.img-6.2.0-20-generic
U kunt dan “boot” typen en op “Enter” drukken om uw computer opnieuw op te starten. Zodra het opnieuw is opgestart en je bent ingelogd, werk je GRUB bij met de update-grub
commando.
Andere mogelijke remedies
Als het probleem blijkt te bestaan uit ontbrekende opstartbestanden, zoals de bestanden “vmlinuz” en “initrd.img”, kunt u uw computer opstarten vanaf een Live DVD of een opstartbare Linux USB-flashdrive en de ontbrekende bestanden naar hun plaats kopiëren.
Merk op dat de bestanden “vmlinuz” en “initrd.img”. moeten hebben dezelfde versienummers, omdat ze werken als een overeenkomend paar.