Ajouter memtest86 au menu grub

mar. 17 décembre 2024
D'après
https://www.yosoygames.com.ar/wp/2020/03/installing-memtest86-on-uefi-grub2-ubuntu/
  • Télécharger memtest86, par exemple ici : https://www.memtest86.com/downloads/memtest86-usb.zip
  • Dé-zipper memtest86-usb.zip, ce qui produit entre autres le fichier memtest86-usb.img.
  • Le site yosoygames donne un moyen direct de monter le volume adéquat dans memtest86-usb.img, mais je trouve ça complexe. Je préfère la méthode ci-dessous. Il faut être root, ou bien, tout préfixer avec sudo.
# losetup -P /dev/loop0 memtest86-usb.img

# losetup -a
/dev/loop0: [66310]:4860911 (/home/sebastien/memtest86-usb.img)

# fdisk -l /dev/loop0
Disque /dev/loop0 : 1 GiB, 1073741824 octets, 2097152 secteurs
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 : E2BF71FD-A275-4D88-AC0B-8A6CB119584E

Périphérique   Début     Fin Secteurs Taille Type
/dev/loop0p1    2048  524287   522240   255M Données de base Microsoft
/dev/loop0p2  524288 1048575   524288   256M Système EFI
/dev/loop0p3 1048576 2097118  1048543   512M Données de base Microsoft

# mkdir p2

# mount /dev/loop0p2 p2

# ls -al p2/EFI/BOOT
total 6584
drwxr-xr-x 3 root root    4096 31 oct.  00:38 .
drwxr-xr-x 3 root root    4096 31 oct.  00:38 ..
drwxr-xr-x 2 root root    4096 31 oct.  00:38 Benchmark
-rwxr-xr-x 1 root root    5834 31 oct.  00:38 blacklist.cfg
-rwxr-xr-x 1 root root 1328664 31 oct.  00:38 BOOTAA64.efi
-rwxr-xr-x 1 root root 1476120 31 oct.  00:38 BOOTIA32.efi
-rwxr-xr-x 1 root root 1543512 31 oct.  00:38 BOOTX64.efi
-rwxr-xr-x 1 root root    6823 31 oct.  00:38 mt86.png
-rwxr-xr-x 1 root root 2355408 31 oct.  00:38 unifont.bin

# mkdir /boot/efi/EFI/memtest86

# cp -aiv p2/EFI/BOOT/* /boot/efi/EFI/memtest86/.

Créer le fichier /etc/grub.d/39_memtest86 avec le contenu suivant :

#!/bin/sh
exec tail -n +3 $0
# From
#   https://www.yosoygames.com.ar/wp/2020/03/installing-memtest86-on-uefi-grub2-ubuntu/
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'memtest86' {
    insmod part_gpt
    insmod fat
    search --no-floppy --fs-uuid --set=root CBB6-0A32
    chainloader /EFI/memtest86/BOOTX64.efi
}

Évidemment il faut adapter l'uuid du disque root (EFI). Pour ce faire :

# fdisk -l /dev/nvme0n1
Disque /dev/nvme0n1 : 238,47 GiB, 256060514304 octets, 500118192 secteurs
Modèle de disque : INTEL SSDPEKKW256G7
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 : 1C6AE4C0-69B3-4FDF-9D86-91C41904AFA3

Périphérique       Début       Fin  Secteurs Taille Type
/dev/nvme0n1p1      2048   2099199   2097152     1G Système EFI
/dev/nvme0n1p2   2099200  63539199  61440000  29,3G Système de fichiers Linux
/dev/nvme0n1p3 359450624 359483391     32768    16M Réservé Microsoft
/dev/nvme0n1p4 359483392 500117503 140634112  67,1G Données de base Microsoft
/dev/nvme0n1p5 357449728 359450623   2000896   977M Partition d'échange Linux
/dev/nvme0n1p6 173377536 357449727 184072192  87,8G Système de fichiers Linux

Les entrées de la table de partitions ne sont pas dans l'ordre du disque.
maison:/etc/grub.d# ls -al /dev/disk/by-uuid
total 0
drwxr-xr-x 2 root root 320 17 déc.  14:09 .
drwxr-xr-x 8 root root 160 17 déc.  09:24 ..
...
lrwxrwxrwx 1 root root  15 17 déc.  09:24 OR507090554982R0 -> ../../nvme0n1p4
lrwxrwxrwx 1 root root  15 17 déc.  09:24 CBB6-0A32 -> ../../nvme0n1p1
lrwxrwxrwx 1 root root  15 17 déc.  09:24 rs3-49s6-87rq-66rsq999s992 -> ../../mmcblk0p2
...

Précision : le site yosoygames indique un autre moyen de définir le volume root. Personnellement je préfère l'instruction search qui produit un bon résultat du moment que l'UUID donné est le bon (la partition EFI). Pas besoin d'indiquer un numéro de disque ou un numéro de partition sur un disque.

Category: TI Tagged: memtest86 grub