web-dev-qa-db-fra.com

Grub rescue - erreur: système de fichiers inconnu

J'ai un système multi-démarrage mis en place. Le système a trois lecteurs. Le démarrage multiple est configuré avec Windows XP, Windows 7 et Ubuntu - tous sur le premier lecteur. Il me restait beaucoup d'espace non partitionné sur le disque et je le réservais pour l'ajout d'autres systèmes d'exploitation et le stockage de fichiers à l'avenir.

Un jour, je suis allé de l'avant et j'ai téléchargé Partition Wizard. J'ai créé une partition logique NTFS à partir de Windows 7, un espace non partitionné restant. Tout a bien fonctionné, jusqu'à ce que je redémarre l'ordinateur quelques jours plus tard.

Maintenant j'obtiens:

error: unknown filesystem.  
grub rescue>

Tout d'abord, j'ai été surpris de ne trouver aucune sorte d'aide à la commande en essayant:

help, ?, man, --help, -h, bash, cmd, etc.

Maintenant, je suis coincé avec un système non-bootable. J'ai commencé à rechercher le problème et à constater que les utilisateurs recommandent généralement de démarrer sur un Live CD et de résoudre le problème à partir de cet emplacement. Existe-t-il un moyen de résoudre ce problème à partir de grub rescue sans recourir au Live CD?

UPDATE

En suivant les étapes à partir de commandes persistantes saisies à GRUB rescue , j'ai pu démarrer à l'invite initramfs. Mais pas n'importe où plus loin que ça.

Jusqu'ici, loin de lire le manuel sur grub rescue , j'ai pu voir mes lecteurs et partitions à l'aide de la commande ls. Pour le premier disque dur, je vois ce qui suit:
(hd0) (hd0, msdos6) (hd0, msdos5) (hd0, msdos2) (hd0, msdos1)

Je sais maintenant que (hd0, msdos6) contient Linux, puisque ls (hd0,msdos6)/ répertorie les répertoires. D'autres donneront "erreur: système de fichiers inconnu."

UPDATE 2

Après les commandes suivantes, j'arrive maintenant au menu de démarrage et je peux démarrer sous Windows 7 et Ubuntu, mais au redémarrage, je dois répéter ces étapes.

ls
ls (hd0,msdos6)/
set root=(hd0,msdos6)
ls /
set prefix=(hd0,msdos6)/boot/grub
insmod /boot/grub/linux.mod
normal

UPDATE 3

Merci Shashank Singh, avec vos instructions, j’ai simplifié mes étapes comme suit. J'ai appris de vous que je peux remplacer msdos6 par un 6 et que je ne peux que faire insmod normal au lieu de insmod /boot/grub/linux.mod. Maintenant, je dois juste comprendre comment sauvegarder ces paramètres à partir de grub lui-même, sans démarrer sous aucun OS.

set root=(hd0,6)
set prefix=(hd0,6)/boot/grub
insmod normal
normal

UPDATE 4

Eh bien, il semble que le démarrage sous Linux soit obligatoire. Après avoir démarré sous Ubuntu, j’ai exécuté les étapes suivantes décrites dans le manuel :

Sudo update-grub
Sudo grub-install /dev/sda

Cela n'a pas résolu le problème. Je reçois toujours l'invite de sauvetage. Que dois-je faire pour le réparer définitivement?

J'ai aussi appris que les numéros de lecteur comme dans hd0 doivent être traduits en lettres de lecteur comme dans/dev/sda pour certaines commandes. HD1 serait SDB, HD2 serait SDC, et ainsi de suite. Les partitions listées dans grub en tant que (hd0, msdos6) seraient traduites en/dev/sda6.

UPDATE 5

Je ne pouvais pas comprendre pourquoi ce qui suit n'a pas résolu le problème:

Sudo update-grub
Sudo grub-install /dev/sda

J'ai donc téléchargé boot-repair sur la base d'une réponse de https://help.ubuntu.com/community/Boot-Repair post. Cela a semblé faire l'affaire après avoir choisi l'option "Réparation recommandée (répare les problèmes les plus fréquents)".

57
user53817

Je ne pouvais pas comprendre pourquoi ce qui suit n'a pas résolu le problème:

Sudo update-grub
Sudo grub-install /dev/sda

J'ai donc téléchargé boot-repair sur la base d'une réponse de commandes de persistance saisies sur GRUB rescue post. Cela a semblé faire l'affaire après avoir choisi l'option "Réparation recommandée (répare les problèmes les plus fréquents)".

J'ai également utilisé Grub Customizer pour personnaliser l'ordre des entrées de démarrage.

23
user53817

Il existe une autre cause à ce problème. Dans ce cas particulier, GRUB était en quelque sorte corrompu et devait être réparé ou réinstallé. Cependant, comme indiqué dans le sauvetage de Grub échoue avec "Réparation du démarrage" avec l'erreur "Système de fichiers inconnu" , il est également possible que la partition racine sur laquelle GRUB soit installé puisse être corrompue. Pour résoudre ce problème:

C'est une solution possible, mais il ne faut pas l'utiliser, de peur que votre partition racine ne soit davantage corrompue. En exécutant la commande fsck -t ext4 /dev/sda1, ce programme tente de rechercher et de réparer les erreurs sur un système de fichiers corrompu. Remplacez sda1 par votre partition racine réelle. Remplacez ext4 par le système de fichiers actuel; vous devez connaître le système de fichiers sinon la partition sera plus corrompue. Voir Réparation d'un système de fichiers corromp pour plus d'informations.


Même si cette question a une réponse, il existe un autre moyen de résoudre le problème qui a fonctionné pour moi. Les étapes sont expliquées dans la vidéo douloureuse Grub Rescue - Guide du débutant . En bref, il faudra réinstaller GRUB 2 au lieu de le réparer.

Parce que cette vidéo est si pénible à regarder, je vais énumérer les étapes ci-dessous (comme je devrais le faire indépendamment de la pénibilité de regarder la vidéo)

  1. Lancer une session en direct d'Ubuntu. La vidéo utilise un CD en direct alors que j'ai utilisé une clé USB en direct. Je me suis assuré que le Live USB avait la même version d'Ubuntu que celle que j'avais sur mon disque dur.
  2. Trouvez où votre partition racine a été montée. Dans la vidéo, l'utilisateur utilise Nautilus pour naviguer dans chaque lecteur monté. Il était monté avec une longue chaîne de chiffres et de caractères. Si tel est le cas, suivez les étapes suivantes pour remonter la partition. Sinon, passez à l'étape 5.
  3. Amenez le terminal avec Ctrl + Alt + T et utilisez la commande mount pour rechercher le nom de la partition.
  4. Montez la partition. Créez un nouveau dossier dans votre dossier multimédia. Sudo mkdir /media/ubuntu. Ensuite, montez simplement votre partition dans ce dossier. Sudo mount /dev/sdxx /media/ubuntuxx of sdxx est déterminé à l'étape 3.
  5. Liez les répertoires suivants du répertoire racine de votre live CD/USB à celui de votre répertoire racine sur votre version d’Ubuntu. Les répertoires sont les suivants: devproc and sys. Faites-le avec les commandes suivantes:

    Sudo mount --bind /dev /media/ubuntu/dev
    Sudo mount --bind /sys /media/ubuntu/sys
    Sudo mount --bind /proc /media/ubuntu/proc
    
  6. Changez le répertoire racine en celui de votre partition Ubuntu. Sudo chroot /media/ubuntu/

  7. Ceci fait, installer à nouveau GRUB 2 l’installera dans le répertoire racine de votre distribution Ubuntu et non dans celui du CD/USB. Alors allez-y et lancez Sudo grub-install /dev/sdx

Et voilà comment réparer GRUB en utilisant un live CD/USB. Cette méthode a été développée par l'utilisateur de YouTube, crazytechzone.

7
Nil

Utilisation:

  1. set prefix=(hdX,Y)/boot/grub. Utilisez les valeurs déterminées précédemment.
    Exemple: si le système Ubuntu est sur sda5, entrez:
    set prefix=(hd0,5)/boot/grub
  2. set root=(hdX,Y). Exemple: set root=(hd0,5)
  3. insmod normal. Essayez de charger le module normal.
  4. normalname__

Nous avons essentiellement besoin de GRUB pour savoir où se trouve le dossier /boot/grub. Si cela ne fonctionne pas, je suppose que faire une installation de GRUB à partir d'un CD de démarrage est une bonne option.

5
Shashank Singh

C'est drôle, j'ai aussi eu le même problème il y a une heure!

En tout cas, c'est ce que j'ai fait.

  1. Charger Ubuntu:

    set root=(hd0,6)
    set prefix=(hd0,6)/boot/grub
    insmod normal
    normal
    

    puisque votre Ubuntu est installé dans 6 non?

  2. terminal d'exécution:

    Sudo -i *to access root*
    grub-install --root-directory=/mnt/ /dev/sda
    Sudo update-grub
    Sudo grub-install /dev/sda
    
3
Francis

Une autre cause du problème est que le système de fichiers sur le lecteur de démarrage peut être bloqué dans de rares cas. Comme indiqué dans d’autres réponses, j’utilise d’abord la commande lspour répertorier tous les lecteurs/partitions de l’invite GRUB rescue, mais all signaler erreur de système de fichiers inconnue . J'ai finalement résolu le problème sur Ubuntu 16.04 (Xenial Xerus) en récupérant le système de fichiers comme suit:

  1. Démarrez à partir d'une clé USB (essayez Ubuntu sans installer)

  2. Recherchez le lecteur de démarrage (vérifiez la capacité du lecteur ou effectuez la procédure fscksur chaque partition):

    Sudo fdisk -l
    
  3. Récupérer le système de fichiers:

    Sudo fsck /dev/sdb1
    
  4. Une fois le système de fichiers réparé et nettoyé, redémarrez la machine à partir du lecteur de démarrage.

0
user84246