Récupération de fichiers .mod déplacés à l'aide de grubrescue

33

J'ai fait une chose idiote ... J'ai oublié qu'Ubuntu 10.04 (Lucid Lynx) est passé à GRUB  2, qui met une tonne de fichiers * .mod (modules du noyau) dans /boot/grub. Je pensais que c'étaient des fichiers de bandes sonores qui y avaient été placés à tort, et je les ai déplacés. Inutile de dire que le prochain redémarrage était traumatisant. On me présenta quelque chose dont je ne me souvenais pas avoir jamais vu… une invite de «sauvetage de grub».

Avec l'aide de l' erreur GRUB Correction: "erreur: système de fichiers inconnu" cependant, j'ai pu récupérer ...

  • J'ai découvert que le sauvetage de GRUB ne comporte pas de commandes "cd", "cp" ou autres, sauf sa propre variante de "ls".
  • Donc, je devais d'abord trouver la partition avec le /bootrépertoire contenant le vmlinuzfichier et d'autres fichiers d'image de démarrage ... (approximation à partir de la mémoire des tentatives infructueuses, ainsi que des lignes vides pour plus de clarté, ajoutée le 2014-07-10 par 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 
    
  • J'ai trouvé un /bootrépertoire contenant le vmlinuzfichier vmlinuz-2.6.32-33-genericsur la partition (hd0,2).

  • Ensuite, j'ai démarré manuellement à partir de l'invite 'sauvetage de grub>'. Les commandes suivantes vont ...

    • Configurez le rootpour utiliser le /bootrépertoire sur la partition (hd0,2).
    • Charger le module de noyau linux.
    • Définissez ce module pour utiliser l'image du noyau vmlinuz-2.6.32-33-generic.
    • Définissez initrd (initialize RAM Disk) pour utiliser l'image initrd.img-2.6.32-33-generic.
    • Démarrer 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  
    
  • Cela démarre et plante à l'invite BusyBox qui a quelques commandes de système de fichiers rudimentaires.

  • Ensuite, j'ai déplacé les fichiers * .mod dans le /boot/grubrépertoire ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Le redémarrage a réussi, mais c'était beaucoup de travail.

Y a-t-il un moyen plus facile?

DocSalvager
la source
1
Réparation de démarrage serait bien plus facile, à mon avis. Consultez l'une de mes réponses multiples sur Boot-Repair pour plus de détails sur son utilisation.
SirCharlo
1
Le moyen le plus "facile" n'est pas toujours le meilleur. Je suis fortement en désaccord avec tous les commentaires suggérant l’utilisation d’un Live CD; C'est vraiment très difficile de démarrer à partir d'un Live CD sur des systèmes sans lecteur de CD / DVD.
Simón
ican ne localise pas la partition avec le répertoire / boot. Toutes les partitions sur la commande ls donnent une sortie inconnue du système de fichiers.
Rafed Nole
1
Votre message a été très utile pour démarrer manuellement le noyau et initrd, mais mon système n'a pas pu trouver dev, sys ou proc, etc / fstab ou sbin / init. Cela m’a conduit à un autre message qui suggérait de charger le noyau et de définir la racine comme indiqué dans les instructions de démarrage manuel de la documentation de grub , par exemple :,grub> linux (hd0,X)/boot/vmlinuz-a.b.c-d-generic root=/dev/sdaXXest la partition avec /boot, a.b.c-dest la version du noyau. Ensuite, mon système a bien démarré! Merci!
Mark Mikofski
1
En plus de [Correction de l'erreur GRUB: “erreur: système de fichiers inconnu” [dupliquer]] ( askubuntu.com/q/142300/36961 ), un autre excellent lien qui couvre ces étapes est Comment récupérer un GRUB 2 non démarrant sous Linux , Le manuel de
Grub

Réponses:

5

Non, je pense que vous avez à peu près trouvé le moyen le plus facile de récupérer de l'état de votre système en utilisant le sauvetage de bouchons ; c'est un système très minimaliste offrant juste assez de capacité pour démarrer le système.

BTW, je crois que vous avez dû trouver les .modfichiers et les exécuter, insmod linuxsinon la linuxcommande aurait échoué.

Comme mentionné, la seule autre façon de procéder serait de démarrer un Live CD et de réinstaller grub2 après une connexion au système "en panne".

StarNamer
la source
Vous avez absolument raison! J'ai oublié que j'avais fait ça. Ajouté à mon message original ci-dessus pour référence future. Je dois être plus discipliné pour garder des notes soigneuses dans ces situations. Veuillez indiquer si d'autres modifications sont nécessaires.
DocSalvager
J'ai également dû spécifier root lors du chargement du noyau, comme dans les documents grub> linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
Grub,
Notez également que si vous avez trouvé les fichiers .mod, vous pouvez restaurer «grub rescue» au format complet GRUB: # 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 Source: gnu.org/software/grub/manual/html_node/…
MegaBrutal
7

Voici quelques instructions générales et de base pour vous aider avec les erreurs de démarrage telles que GRUB loading stage 1.5 error 15 (par exemple, après l'installation de Windows sur un lecteur de disque différent):

  1. Démarrez avec un LiveDVD (par exemple, le disque Ubuntu Desktop).

  2. Ouvrez un terminal et réécrivez la configuration grub en utilisant les commandes suivantes:

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

Où se /dev/sdXtrouve le disque sur lequel Ubuntu est installé et /dev/sdXYla partition du disque sur lequel Ubuntu est installé. En d'autres termes, /dev/sdXYcontient /bootet ainsi de suite.

Utilisez fdisk -lpour vérifier l'emplacement d'installation d'Ubuntu.

lamas
la source
N'a pas fonctionné. Peut-être que si les instructions étaient plus précises, cela aurait fonctionné.
Tim Stewart
Lorsque j’ai eu un problème grub2 sur une machine sans lecteur cd, j’ai pu récupérer en utilisant mon lecteur de clé USB Gparted Live. J'ai démarré dans Gparted live. ALORS, j’ai démarré un terminal et tapé fdisk -l (c’est la lettre ell, pas le numéro 1). Le résultat obtenu m’a permis d’identifier la partition contenant la partition racine. À partir de là, j’ai suivi les excellentes instructions ci-dessus. .
Vic
4
  1. Démarrer en Live CD

  2. Terminal ouvert (CTRL + ALT + T)

  3. Entrez les commandes suivantes:

sudo fdisk -l

Et trouvez votre partition Ubuntu (devrait être / dev / sda1 si c'est la première partition)

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

Maintenant, réinstallez Grub2

sudo apt-get install --reinstall grub2
méchant
la source
2
Est-ce un meilleur moyen que sudo mount /dev/sda1 /mntet sudo grub-install --root-directory=/mnt/ /dev/sda && sudo update-grub?
4

J'ai eu le même problème lorsque j'ai mis à niveau mon système.

Je suggère les étapes simples suivantes:

  1. Démarrez votre système avec le live CD ubuntu ou le live USB.
  2. Ouvrez le terminal et exécutez la commande sudo add-apt-repository ppa: yannubuntu / boot-repair && sudo apt-get update
  3. Puis installez la réparation de démarrage en exécutant la commande sudo apt-get install -y boot-repair && boot-repair

  4. Lancez la réparation de démarrage après l'installation. Par exemple, dans le menu, utilisez System->Administration->Boot-Repair (Ubuntu 10.04 uniquement) et suivez les instructions.

    Cela peut prendre 15 à 20 minutes pour résoudre le problème et le résoudre.

Pour plus d’aide, visitez le lien https://help.ubuntu.com/community/Boot-Repair

Dur
la source
0

Vous pouvez démarrer un live CD, monter votre disque dur, ouvrir Nautilus en tant que root et copier ces fichiers dans / boot.

méchant
la source