Démarrage sur grub rescue

Résolu/Fermé
letroolldu67 Messages postés 32 Date d'inscription vendredi 27 août 2021 Statut Membre Dernière intervention 3 septembre 2022 - 3 oct. 2021 à 10:01
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 5 oct. 2021 à 11:25
Bonjour,

Depuis une réinstallation d'Ubuntu, je me trouve dans grub rescue.
La commande ls ne marche pas ! Il me dise "Unknown files system"
Je dois faire quoi ?
J'ai également lu que avec un clé de démarrage Windows 10 (Windows 10 étant installé) je pouvais faire "bootrec /fixmbr" ce à quoi l'invite le répond "Opération réussi" puis je fait "bootrec /fixboot" mais l'invite me répond "Accés refusé"! Je ne sais plus quoi faire !

Configuration: Android / Chrome 94.0.4606.71
A voir également:

2 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
Modifié le 5 oct. 2021 à 11:45
Bonjour,

Je confirme ce que dit Gribouille, le plus simple dans ton cas est d'utiliser
boot-repair
.

Par contre les approches windows ne t'aideront pas à réinstaller
grub
, tu peux les oublier.

Enfin, note que dans l'absolu, n'importe quel live USB suffit à réparer
grub
. Mais cela réclame quelques connaissances (et ça revient à faire ce que te fait faire
boot-repair
).

Réparer grub sans boot-repair

1) Démarrer l'ordinateur sur un live USB (par exemple une clé permettant d'installer Ubuntu).

2) Ouvrir un terminal et passer en root, avec
sudo -s
(Ubuntu) ou
su -
(autres distributions).

Puis, repérer avec la commande
fdisk -l
ou
parted -l
la partition associée à la partition
/
du système linux à démarrer. Si
/boot
est sur une partition séparée, il faudra également la repérer.

Exemple : Ici on cherche une partition associée à un système de fichiers Linux. On peut hésiter entre
/dev/sda6
et
/dev/sda7
mais comme
/
est généralement significativement plus petite que
/home
, on en déduit que c'est probablement
/dev/sda6
qui nous intéresse.

Note que sur un live USB,
/dev/sda
correspondra probablement au live USB et
/dev/sdb
au disque dur qui contient ton Linux, et pour une installation Ubuntu classique, la partition / sera vraisemblablement
/dev/sdb5
.

Exemple :

(root@silk) (~) # fdisk -l
[sudo] Mot de passe de mando :
Disque /dev/sda : 476,94 GiB, 512110190592 octets, 1000215216 secteurs
Modèle de disque : Micron_1100_MTFD
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : F7977EE1-814B-4FC2-BD0B-4F0E9F0D433D

Périphérique Début Fin Secteurs Taille Type
/dev/sda1 2048 534527 532480 260M Système EFI
/dev/sda2 534528 567295 32768 16M Réservé Microsoft
/dev/sda3 567296 501470811 500903516 238,8G Données de base Microsoft
/dev/sda4 501471232 503234559 1763328 861M Environnement de récupération Windows
/dev/sda5 503234560 511047679 7813120 3,7G Partition d'échange Linux
/dev/sda6 511047680 608704511 97656832 46,6G Système de fichiers Linux
/dev/sda7 608704512 1000214527 391510016 186,7G Système de fichiers Linux


Remarque importante : dans ce qui suit, je suppose que
/
correspond à
/dev/sda6
, il faut bien entendu remplacer
/dev/sda6
par le device associé à ton propre partitionnement (e.g.
/dev/sdb5
).

Remarque : si tu as installé Linux avec LVM, tu verras aussi apparaître les noms des volumes logiques (les devices dont le nom commence par
/dev/mapper
), dont on aura besoin un peu plus loin. Dans mon exemple, on n'en voit pas, donc c'est une installation sans LVM. Si Linux est installé sur le même disque dur que windows, c'est une installation sans LVM. Pour plus d'information sur ce qu'est LVM et à quoi ça sert, je te renvoie à cette page.

3) Monter le système Linux du disque dur dans le dossier
/linux
(que l'on va créer) du live USB. On va également monter
/dev
dans
/linux/dev
car la commande
update-grub
en aura besoin.

Il y a ensuite quelques variations selon que tu as installé Linux avec ou sans LVM.

a) Si c'est une installation sans LVM :

mkdir /linux
mount /dev/sda6 /linux
mount --bind /dev /linux


b) Si c'est une installation avec LVM (non chiffré) :

mkdir /linux
mount /dev/mapper/vg-root /linux
mount --bind /dev /linux


(le nom
vg-root
peut varier : il correspond au nom du volume logique qui contient
/
).

c) Si c'est une installation avec LVM (chiffré) :

cryptsetup luksOpen /dev/sda6 sda6_crypt # Cela crée /dev/mapper/sda6_crypt
# Taper le mot de passe LUKS de la partition
apt install lvm2
modprobe dm-mod
vgchange -ay
lvscan # Ici on devrait voir le device associé à la partition déchiffrée, e.g. /dev/mapper/vg-root
mount /dev/mapper/vg-root /linux
mount --bind /dev /linux


4) À ce stade, il est important de vérifier qu'on a bien monter la bonne partition dans
/linux
en regardant le résultat de
ls /linux
. On devrait voir apparaître les sous dossiers
/linux/dev
,
/linux/boot
,
/linux/home
, etc...).

Si
/boot
est installée sur une partition dédiée, il faut le monter dans
/linux/boot
. Note que ça n'est généralement pas le cas pour une installation classique. On peut contrôler le contenu de
/linux/boot
avec la commande
ls /linux/boot
pour s'en assurer.

5) Repositionner
/
au niveau de
/linux
, ainsi tout se passe "comme si" on avait démarré normalement. Puis monter les derniers bouts nécessaires au bon fonctionnement d'
update-grub
.

chroot /linux/
mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t devpts devpts /dev/pts


6) Si c'est une installation LVM, lancer le service associé :

/etc/init.d/lvm2 start


7) Réparer grub :

update-grub


Si un module grub n'est pas trouvé (e.g.
normal.mod
), le copier dans
/boot
(e.g.
cp /usr/lib/grub/i386-pc/* /boot/grub/i386-pc/
). Note que ce genre d'erreur ne devrait pas arriver.

8) Si c'est une installation LVM, lister les services associés (voir
ls /etc/init.d/lvm*
) et stopper chacun d'entre eux :

/etc/init.d/lvm2 stop
# Idem pour chaque service lvm


9) Quitter proprement :

umount /proc
umount /sys
umount /dev/pts
exit
umount /linux/dev
umount /linux
reboot


Bonne chance
2