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

Revision as of 23:27, 4 February 2022 by Senkuu (talk | contribs) (Created page with "==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 mainten...")
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.


Use manjaro-chroot

Manjaro deploys a script called manjaro-chroot takes an optional argument which will search the visible devices - scan the partitions for signs of an operating system. If more than one Linux operating system is found you will get a choice of which system to chroot otherwise the file /etc/fstab from the system is used to mount the partitions and chroot into this system.This script is only available in live iso by default but you can get it in an installed system by installing manjaro-tools-base package.

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


root # manjaro-chroot -a COPY TO CLIPBOARD


Manual chroot

(Unnecessary if you have used manjaro-chroot) Mount the partitions using the designated temporary mountpoint and always start with root

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


Info
With a BTRFS filesystem, you should note that the subvolumes must be mounted. That would be in such a case:
root # mount -o subvol=@ /dev/sdyC /mnt COPY TO CLIPBOARD


Then - if applicable - mount boot

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


Then - if applicable - mount efi

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


Create the chroot environment and use bash as shell

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



Reinstall GRUB

One possible cause why you are reading this document - is an unfinished update - which in turn can be caused by several situations - situation we will not dive into. To fix what ever caused this you should run a full system update including grub to ensure everything is in place.

root # pacman -Syu grub COPY TO CLIPBOARD


When the transaction as completed continue below using the section matching your system

BIOS System

On a BIOS/GPT system there is no MBR and therefore no place to store the loader. The GPT partition specification allows for an unformatted partition of the BIOS boot partition type (0xEF02). The size of this partition can be as small as 1 mebibyte. The Calamares installer uses a fixed size of 32 mebibyte. On a BIOS/MBR system a part of the bootloader is written to the Master Boot Record for the primary disk.

The device is the disk (not a partition)

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


Make sure the grub configuration is up-to-date

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