Vraag Het herstellen van verplaatste .mod-bestanden met behulp van grubrescue


Ik deed een stom ding ... ik vergat dat Ubuntu 10.04 (Lucid Lynx) was overgeschakeld naar ROOIEN2 waarin een ton * .mod-bestanden (kernelmodules) wordt geplaatst /boot/grub. Ik dacht dat ze soundtrackbestanden waren die er verkeerd waren geplaatst en ik heb ze verplaatst. Onnodig te zeggen dat de volgende reboot traumatisch was. Ik kreeg iets te zien waar ik geen herinnering aan had ooit te hebben gezien ... een prompt van 'grub rescue'.

Met de hulp van Fix GRUB error: "error: unknown filesystem" ik was echter in staat om te herstellen ...

  • Ik ontdekte dat GRUB rescue geen 'cd', 'cp' of andere bestandsysteemopdrachten heeft behalve zijn eigen variatie van 'ls'.
  • Dus eerst moest ik de partitie vinden met de /boot map met vmlinuz bestand en andere boot image bestanden ... (benadering uit het geheugen van mislukte pogingen, maar ook lege regels voor de duidelijkheid, toegevoegd 2014-07-10 door docsalvage) 

    grub rescue>  ls  
    (hd0,4) (hd0,3) (hd0,2) (hd0,1)  
    
    grub rescue>  ls (hd0,4)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,3)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,2)/boot
    ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic 
    
  • ik heb gevonden /boot map met de vmlinuz het dossier vmlinuz-2.6.32-33-generic op partitie (hd0,2).

  • Vervolgens ben ik handmatig opgestart vanaf de prompt 'grub-rescue'. De volgende opdrachten zullen ...

    • Stel de root om de te gebruiken /boot map op partitie (hd0,2).
    • Laad kernelmodule linux.
    • Stel die module in om de kernelafbeelding te gebruiken vmlinuz-2.6.32-33-generic.
    • Stel initrd in (initialize RAM disk) om de afbeelding te gebruiken initrd.img-2.6.32-33-generic.
    • Start Linux.
  • grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
  • Dit start op en crasht naar de BusyBox-prompt die wel wat rudimentaire commando's voor het bestandssysteem heeft.

  • Daarna heb ik de * .mod-bestanden teruggezet naar de /boot/grub directory ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Het herstarten was succesvol, maar dat was veel werk.

Is er een gemakkelijkere manier?


33
2017-10-08 14:57


oorsprong


Bootreparatie zou veel gemakkelijker zijn, naar mijn mening. Bekijk een van mijn meerdere antwoorden op Boot-Repair voor meer informatie over het gebruik ervan. - SirCharlo
De "gemakkelijkste" manier is niet altijd de beste manier. Ik ben het ten zeerste oneens met alle opmerkingen die suggereren met behulp van een live-cd; het is echt heel moeilijk om van een Live-CD te booten op systemen die geen CD / DVD-lezer hebben. - Simón
ican de partitie niet lokaliseren met de map / boot. Alle partities bij ls geven onbekende bestandssysteemuitvoer. - Rafed Nole
Je bericht was erg handig voor het handmatig opstarten van de kernel en initrd, maar mijn systeem kon geen dev, sys of proc, etc / fstab of sbin / init vinden. Dat leidde me naar een andere post, waarin werd voorgesteld om de kernel te laden en de root in te stellen zoals beschreven in de handleiding opstartrichtingen in de GRUP-documentatie, bijvoorbeeld:  grub> linux (hd0,X)/boot/vmlinuz-a.b.c-d-generic root=/dev/sdaX, waar X is de partitie met /boot, a.b.c-d is de kernelversie. Toen is mijn systeem goed opgestart! Bedankt! - Mark Mikofski
in aanvulling op [Fixing GRUB error: "error: unknown filesystem" [duplicate]] (askubuntu.com/q/142300/36961) Een andere goede link die deze stappen omvat, is Hoe een GRUB 2 die niet opstart te redden op Linux, de grub 2 handleiding is ook erg nuttig - Mark Mikofski


antwoorden:


Nee. Ik denk dat je de makkelijkste manier hebt gevonden om te herstellen van de staat van je systeem met rooien redden; het is een zeer minimalistisch systeem dat net genoeg mogelijkheden geeft om het systeem op te starten.

Trouwens, ik geloof dat je de .mod bestanden en uitgevoerd insmod linux of de linux opdracht zou mislukt zijn.

De enige andere manier, zoals vermeld, zou zijn om een ​​Live-CD op te starten en grub2 na chroot'ing naar het 'kapotte' systeem opnieuw te installeren.


5
2017-10-08 17:11



Je hebt helemaal gelijk! Ik was vergeten dat ik dat had gedaan. Toegevoegd aan mijn oorspronkelijke bericht hierboven voor toekomstige referentie. Ik moet meer gedisciplineerd zijn in het houden van zorgvuldige aantekeningen in deze situaties. Geef aan of verdere bewerkingen nodig zijn. - DocSalvager
Ik moest ook root opgeven bij het laden van de kernel zoals in de grub docs  bv  grub> linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2 - Mark Mikofski
Merk ook op dat als je de .mod-bestanden hebt gevonden, je "grub-rescue" kunt herstellen naar GRUB met alle functies: # Inspect the current prefix (and other preset variables): set # Find out which devices are available: ls # Set to the correct value, which might be something like this: set prefix=(hd0,1)/grub set root=(hd0,1) insmod normal normal  Bron: gnu.org/software/grub/manual/html_node/... - MegaBrutal


Hier zijn enkele algemene en basisinstructies om te helpen met opstartfouten zoals GRUB loading stage 1.5 error 15    (bijvoorbeeld na de installatie van Windows op een ander schijfstation):

  1. Start op met een LiveDVD (bijvoorbeeld de Ubuntu Desktop-schijf).

  2. Open een terminal en schrijf de GRUB-configuratie opnieuw met behulp van deze opdrachten:

    • sudo mount /dev/sdXY /mnt
    • sudo grub-install --root-directory=/mnt /dev/sdX

Waar /dev/sdX is de schijf waarop Ubuntu is geïnstalleerd, en /dev/sdXY is de partitie op de schijf waarop Ubuntu is geïnstalleerd. Met andere woorden, /dev/sdXY bevat /boot enzovoort.

Gebruik fdisk -l om de Ubuntu-installatielocatie te verifiëren.


7
2017-12-03 08:25



Werkte niet. Misschien als de aanwijzingen specifieker waren geweest, zou het gewerkt hebben. - Tim Stewart
Toen ik een grub2 probleem had op een machine zonder cd-station kon ik herstellen met behulp van mijn Gparted Live USB-memory stick. Ik ben live in Gparted opgestart. Vervolgens startte ik een terminal en typte fdisk -l (dat is letter ell, niet nummer 1). Op de uitvoer daarvan kon ik de partitie identificeren die de rootpartitie had en vandaar volgde ik de uitstekende instructies hierboven en ik was snel weer duizelig weer aan het booten . - Vic


  1. Start op Live CD

  2. Open Terminal (CTRL + ALT + T)

  3. Voer de volgende opdrachten in:

sudo fdisk -l

En zoek je Ubuntu-partitie (zou / dev / sda1 moeten zijn als het de eerste partitie is)

sudo mount /dev/sda1 /mnt

sudo mount --bind /sys /mnt/sys

sudo mount --bind /proc /mnt/proc

sudo mount --bind /dev /mnt/dev

sudo chroot /mnt

Installeer nu Grub2 opnieuw

sudo apt-get install --reinstall grub2

4
2017-10-08 15:02



Is dit een betere manier dan beter dan sudo mount /dev/sda1 /mnten sudo grub-install --root-directory=/mnt/ /dev/sda && sudo update-grub?


Ik had hetzelfde probleem toen ik mijn systeem heb bijgewerkt.

Ik stel de volgende eenvoudige stappen voor:

  1. Start uw systeem op met ubuntu live-cd of live-USB.
  2. Open de terminal en voer de opdracht uit sudo add-apt-repository ppa: yannubuntu / boot-repair && sudo apt-get update
  3. Installeer vervolgens de opstartreparatie door de opdracht uit te voeren sudo apt-get installeer -y boot-repair && boot-repair

  4. Start de bootreparatie na installatie. Gebruik bijvoorbeeld uit het menu System->Administration->Boot-Repair  (Alleen Ubuntu 10.04) en volg de instructies.

    Het kan 15-20 minuten duren om het probleem te achterhalen en op te lossen.

Ga voor meer hulp naar de link https://help.ubuntu.com/community/Boot-Repair


4
2017-12-17 17:59





Je zou live-CD kunnen booten, je harde schijf kunnen aankoppelen, nautilus als root kunnen openen en die bestanden naar / boot kunnen kopiëren.


0
2017-10-08 17:41