web-dev-qa-db-fra.com

Récupération d'un crash de «grub rescue>»

Initialement publié sur AskUbuntu.com ...

AskUbuntu a adopté une politique de fermeture questions sur les versions EOL (End Of Life). Il y a aussi un contingent vocal pour les supprimer. Pour éviter une éventuelle perte de cette question populaire (342335 vues à ce jour), je place ici une version révisée. --- docsalvager

Le système "classique" ...

  • Puppy Linux 5.2.8 (Lucid) basé sur Ubuntu 10.04 (Lucid Lynx)
  • GRUB 2 chargeur de démarrage

GRUB 2 met un certain nombre de *.mod fichiers (modules du noyau) dans /boot/grub. La suppression de ces fichiers (pensant qu'il s'agissait de fichiers audio mal placés) a entraîné un échec au redémarrage et l'invite grub rescue>.

Comment récupérer dans cette situation?

27
DocSalvager

Récupération d'un crash de sauvetage grub ...

  • grub rescue> Ne prend pas en charge cd, cp ni aucune autre commande de système de fichiers à l'exception de sa propre variante de ls qui est en réalité une sorte de find commander.
  • Il a donc fallu d'abord trouver la partition avec le répertoire /boot Contenant le vmlinuz et les autres fichiers image de démarrage ...

    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 
    
    • ls sans arguments renvoie les quatre partitions de ce système.
    • ls (hd0,4)/boot ne trouve pas de répertoire /boot sur la partition (hd0,4).
    • ls (hd0,3)/boot ne trouve pas de répertoire /boot sur la partition (hd0,3).
    • ls (hd0,2)/boot trouve un répertoire /boot sur la partition (hd0,2) et contient un vmlinuz et d'autres fichiers d'image de démarrage que nous voulons.
  • Pour démarrer manuellement à partir de l'invite grub rescue> ...

    grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic  
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
    • Définissez root pour utiliser le répertoire /boot Sur la partition (hd0,2).
    • Charger le module grub linux.
    • Définissez ce module pour utiliser l'image du noyau vmlinuz-2.6.32-33-generic.
    • Définissez initrd (init RAM disk) pour utiliser l'image initrd.img-2.6.32-33-generic.
    • Démarrez Linux.
  • Cela démarre à une invite de ligne de commande BusyBox qui contient toutes les commandes de base du système de fichiers ( et puis certaines !).

  • Ensuite, vous pourriez déplacer les fichiers *.mod Dans le répertoire /boot/grub ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Redémarrage réussi !

Voir aussi ...

29
DocSalvager

Cette réponse s'adresse à d'autres personnes pour lesquelles la réponse de DocSalvager ne fonctionne pas.

  1. J'ai suivi l'utilisation de ls par DocSalvager pour trouver la bonne partition de disque dur. Dans mon cas, c'était (hd0,msdos5).
  2. J'ai ensuite exécuté les commandes suivantes pour revenir à l'écran normal du chargeur de démarrage grub.

    grub rescue>  set boot=(hd0,msdos5)
    grub rescue>  set prefix=(hd0,msdos5)/boot/grub
    grub rescue>  insmod normal  
    grub rescue>  normal  
    
  3. Après avoir démarré dans Ubuntu, j'ai réparé le chargeur de démarrage grub avec les commandes suivantes du terminal.

    Sudo grub-install /dev/sda 
    

Veuillez faire référence à cette source pour une présentation visuelle de ce processus.

43
Gibado