GRUB/Restaurer le programme de d'amorçage GRUB

Revision as of 23:38, 4 February 2022 by Senkuu (talk | contribs) (Created page with "Le périphérique est le '''disque''' (''pas une partition'') {{RootCmd|command=grub-install --force --target=i386-pc --recheck --boot-directory=/boot /dev/sdy}} Assurez-vous...")
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎français • ‎русский

Aperçu

Afin de charger le système d'exploitation, un chargeur d'amroçage compatible avec Linux, tel que GRUB, rEFInd ou Syslinux, doit être installé sur le Master Boot Record (MBR) ou le GUID Partition Table (GPT) du support contenant le système d'exploitation. Les installations créées à l'aide de Manjaro ISO utilisent par défaut GRUB.

Pour diverses raisons, il arrive que le chargeur de démarrage soit corrompu, effacé ou mal configuré, ce qui entraîne un écran noir avec un message d'échec au démarrage, du type No boot loaders found in /dev/.... Pour restaurer le fonctionnement du système sans réinstaller votre système d'exploitation ni perdre vos données, vous devez utiliser votre support d'installation Manjaro, tel qu'un CD/DVD ou une clé USB.

Processus de démarrage d'Archlinux
Plus d'informations sur le processus de démarrage des distributions basées sur Archlinux sont disponibles sur Archwiki

Préparation

Identifiez le type de système que vous tentez de sauver car les commandes impliquées sont légèrement différentes.

  • Système BIOS/MBR/GPT
  • Système EFI/GPT

Lancer le média d'installation de Manjaro

Modification de l'ordre de démarrage du système
Pour modifier l'ordre de démarrage du système, le fournisseur a prévu une touche dédiée. Sur la plupart des claviers d'ordinateurs portables, les touches de fonction sont à usage multiple et la fonction principale peut être inversée. Dans ce cas, une touche Fn doit être utilisé avec la touche de fonction. Si vous ne savez pas, consultez la documentation de votre système. Nom d'utilisateur et mots de passe par défaut de l'ISO Manjaro
Utilisateur par défautMot de passe par défaut
manjaromanjaro
rootmanjaro

Identifier les partitions

Pour identifier vos partitions et leur utilisation prévue, vous devez exécuter un gestionnaire de partitions. Selon l'environnement, il existe différents outils. Les ISO basés sur GTK offrent GpartEd, les ISO basés sur QT offrent KParted et les outils CLI sont communs à tous.

user $ lsblk -o PATH,PTTYPE,PARTTYPE,FSTYPE,PARTTYPENAME COPY TO CLIPBOARD


.

Des informations plus complètes peuvent être trouvées en utilisant fdisk. (nécessite le superutilisateur) et vous pouvez limiter le périphérique sondé, par exemple /dev/sda ou /dev/nvme0n1.

user $ sudo fdisk -l /dev/sda COPY TO CLIPBOARD


Les indices à rechercher sont mbr vs. gpt et la présence d'une petite partition - généralement la première - formatée avec le système de fichiers vfat suivie d'une plus grande partition formatée en ext4.

{{Important : ce document et son contenu ne doivent jamais être utilisés comme une ressource de copier/coller. Le reste de ce document utilisera des pseudo noms et une numérotation des partitions. Les périphériques seront désignés par /dev/sdy et les partitions par /dev/sdyA et vous devrez les remplacer par les valeurs réelles de votre système.}}

Utiliser le contexte root

Lorsque vous avez chargé l'ISO live - selon l'environnement - ouvrez un terminal et passez dans le contexte root. Utilisez la combinaison root:password mentionnée ci-dessus.

user $ su COPY TO CLIPBOARD


Environnement chroot

Chroot est une méthode pour restreindre diverses tâches à une zone restreinte, par exemple l'installation de paquets et d'autres tâches de maintenance du système. Suivez le [lien https://wiki.archlinux.org/index.php/Change_Root] pour en savoir plus sur le chroot sur le wiki Arch.

Identifier les partitions du système

De ce qui précède, nous supposons que vous avez identifié les partitions pertinentes sur votre système et ce document fera référence aux partitions comme suit. Les partitions non nécessaires pour ce type de maintenance ont été intentionnellement laissées de côté (par exemple, home, swap).

Partition ! ! Utilisation ! ! Commentaire
/dev/sdyA Système EFI Requis pour le système EFI et monté sur /boot/efi.
/dev/sdyB Boot Facultatif mais monté sur /boot/efi. L'utilisation principale est lorsque GRUB ne peut pas écrire sur / (par exemple, f2). (ex. : f2fs)
/dev/sdyC root Obligatoire pour le système de fichiers racine et monté sur / - généralement formaté avec ext4.
Info
Si votre système est un système BIOS/MBR, il n'y a pas de partition efi. Si votre système est un système BIOS/GPT, vous trouverez une partition non formatée de 1 à 32 Mo de type partition de démarrage BIOS.


Utiliser manjaro-chroot

Manjaro déploie un script appelé manjaro-chroot avec un argument optionnel qui va rechercher les périphériques visibles - scanner les partitions à la recherche de signes d'un système d'exploitation. Si plus d'un système d'exploitation Linux est trouvé, vous aurez le choix du système à chrooter, sinon le fichier /etc/fstab du système est utilisé pour monter les partitions et chrooter dans ce système. Ce script n'est disponible que dans l'iso live par défaut mais vous pouvez l'obtenir dans un système installé en installant le paquet manjaro-tools-base.

root # pamac install manjaro-tools-base COPY TO CLIPBOARD


root # manjaro-chroot -a COPY TO CLIPBOARD


Chroot manuel

(Inutile si vous avez utilisé manjaro-chroot) Montez les partitions en utilisant le point de montage temporaire désigné et commencez toujours avec root.

root # mount /dev/sdyC /mnt COPY TO CLIPBOARD


Info
Avec un système de fichiers BTRFS, vous devez noter que les sous-volumes doivent être montés. Ce serait dans ce cas:
root # mount -o subvol=@ /dev/sdyC /mnt COPY TO CLIPBOARD


Ensuite - si c'est le cas - montez boot.

root # mount /dev/sdyB /mnt/boot COPY TO CLIPBOARD


Puis - si applicable - montez efi.

root # mount /dev/sdyA /mnt/boot/efi COPY TO CLIPBOARD


Créer l'environnement chroot et utiliser bash comme shell

root # manjaro-chroot /mnt /bin/bash COPY TO CLIPBOARD



Reinstaller GRUB

Une cause possible pour laquelle vous lisez ce document - est une mise à jour inachevée - qui à son tour peut être causée par plusieurs situations - situation dans laquelle nous n'allons pas plonger. Pour corriger la cause, vous devez exécuter une mise à jour complète du système, y compris grub, pour vous assurer que tout est en place.

root # pacman -Syu grub COPY TO CLIPBOARD


Lorsque la transaction est terminée, continuez ci-dessous en utilisant la section correspondant à votre système

Système BIOS

Sur un système BIOS/GPT, il n'y a pas de MBR et donc pas d'endroit pour stocker le chargeur. La spécification de partition GPT permet une partition non formatée du type de partition de démarrage du BIOS (0xEF02). La taille de cette partition peut être aussi petite que 1 megaoctet. Le programme d'installation Calamares utilise une taille fixe de 32 megaoctet. Sur un système BIOS/MBR, une partie du chargeur de d'amorçage est écrite dans le Master Boot Record du disque primaire.

Le périphérique est le disque (pas une partition)

root # grub-install --force --target=i386-pc --recheck --boot-directory=/boot /dev/sdy COPY TO CLIPBOARD


Assurez-vous que la configuration de grub est à jour

root # grub-mkconfig -o /boot/grub/grub.cfg COPY TO CLIPBOARD


EFI System

Info
You need to be in chroot for this procedure.


Reinstall grub

root # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck COPY TO CLIPBOARD


Update the grub configuration

root # grub-mkconfig -o /boot/grub/grub.cfg COPY TO CLIPBOARD



EFI grub install messages
EFI variables are not supported on this system.

Verify the existance of an EFI system partition

root # lsblk -o PATH,PTTYPE,PARTTYPE,FSTYPE,PARTTYPENAME COPY TO CLIPBOARD


Verify the efi filesystem is loaded

root # ls /sys/firmware/efi COPY TO CLIPBOARD


Exit chroot

root # exit COPY TO CLIPBOARD


Try loading the efi filesystem

root # modprobe efivarfs COPY TO CLIPBOARD


Re-enter chroot

root # manjaro-chroot /mnt /bin/bash COPY TO CLIPBOARD


Then mount the efi filesystem

root # mount -t efivarfs efivarfs /sys/firmware/efi/efivars COPY TO CLIPBOARD


Verify the efi filesystem is loaded

root # ls /sys/firmware/efi COPY TO CLIPBOARD


If successfull re-run above installation commands

Troubleshooting

Arch Linux is not recognized

If Arch Linux wasn't recognized after an update-grub then probably your Arch installation is missing the package lsb-release.

See also