49 votes

Comment puis-je ajouter les options Memtest86+ au menu Grub ?

Si vous utilisez UEFI, veuillez consulter cette question, "Puis-je démarrer memtest86+ si j'utilise UEFI?"

Après avoir installé la version 64 bits d'Ubuntu 12.04 sur mon Lenovo B570, j'ai rencontré les mêmes problèmes que j'avais lors de l'installation de la version 11.10 avec Grub ne fonctionnant pas correctement avec un système uEFI. J'ai utilisé la même technique que la dernière fois pour résoudre le problème (en utilisant une session Super Grub Disc LiveCD pour réparer Grub) et mon système démarre en dual-boot entre Ubuntu et Windows 7

Cependant, maintenant lorsque je démarre le menu Grub n'affiche que

  • Ubuntu, avec Linux 3.2.0-24-generic
  • Ubuntu, avec Linux 3.2.0-24-generic (mode de récupération)
  • Anciennes versions de Linux
  • Windows 7 (chargeur) (sur /dev/sda1)
  • Environnement de récupération Windows (chargeur) (sur /dev/sda4)

Je ne vois plus l'option d'utiliser Memtest86+ qui était là auparavant, en vérifiant dans le Centre de logiciels Ubuntu je peux voir que le paquet est installé, mais comment faire réapparaître l'option pour l'exécuter dans le menu Grub?

J'ai essayé:

sudo update-grub 

qui ne fait aucune différence.

sudo chmod +x /etc/grub.d/20_memtest86+ 

résulte en:

chmod: impossible d'accéder à /etc/grub.d/20_memtest86+': Aucun fichier ou dossier de ce type

et en entrant

ls /etc/grub.d/

résulte en:

00_header        10_linux      30_os-prober  41_custom
05_debian_theme  20_linux_xen  40_custom     README

27voto

wvdschel Points 6111

Essayez d'ouvrir un terminal et d'exécuter

sudo chmod +x /etc/grub.d/20_memtest86+
sudo update-grub

Vérifiez s'il est là

grep memtest /boot/grub/grub.cfg

Juste fait la même chose car je l'avais désactivé

hob@hob-HP-dx5150-MT:~$ cat /boot/grub/grub.cfg |grep memtest
hob@hob-HP-dx5150-MT:~$ sudo chmod +x /etc/grub.d/20_memtest86+
[sudo] mot de passe pour hob:
hob@hob-HP-dx5150-MT:~$ sudo update-grub
Génération de grub.cfg ...
Image Linux trouvée: /boot/vmlinuz-3.2.0-24-generic
Image initrd trouvée: /boot/initrd.img-3.2.0-24-generic
Image Linux trouvée: /boot/vmlinuz-3.2.0-23-generic
Image initrd trouvée: /boot/initrd.img-3.2.0-23-generic
Image memtest86+ trouvée: /boot/memtest86+.bin
Ubuntu 11.10 (11.10) trouvé sur /dev/sda6
Trisquel 5.5 (5.5) trouvé sur /dev/sda8
Ubuntu 12.04 LTS (12.04) trouvé sur /dev/sda9
terminé
hob@hob-HP-dx5150-MT:~$ cat /boot/grub/grub.cfg |grep memtest
### DÉBUT /etc/grub.d/20_memtest86+ ###
menuentry "Test de mémoire (memtest86+)" {
    linux16 /boot/memtest86+.bin
menuentry "Test de mémoire (memtest86+, console série 115200)" {
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
### FIN /etc/grub.d/20_memtest86+ ###

Vous pourriez essayer de créer le fichier s'il n'est pas là, en utilisant nano dans un terminal

sudo nano /etc/grub.d/20_memtest86+

ou avec un éditeur graphique

gksudo gedit /etc/grub.d/20_memtest86+

Remplissez-le avec

#!/bin/sh
set -e

if [ -f /usr/lib/grub/grub-mkconfig_lib ]; then
  . /usr/lib/grub/grub-mkconfig_lib
  LX=linux16
elif [ -f /usr/lib/grub/update-grub_lib ]; then
  . /usr/lib/grub/update-grub_lib
  LX=linux
else
  # pas de fichier grub, donc nous notifions et sortons proprement
  echo "Impossible de trouver le fichier de configuration de grub, sortie." >&2
  exit 0
fi

# Nous ne pouvons pas gérer les périphériques montés en boucle ici.
case ${GRUB_DEVICE_BOOT} in
  /dev/loop/*|/dev/loop[0-9]) exit 0 ;;
esac

prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")"

if test -e /boot/memtest86+.bin ; then
  MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+.bin" )
  echo "Image memtest86+ trouvée : $MEMTESTPATH" >&2
  cat << EOF
menuentry "Test de mémoire (memtest86+)" {
EOF
  printf '%s\n' "${prepare_boot_cache}"
  cat << EOF
    $LX $MEMTESTPATH
}
menuentry "Test de mémoire (memtest86+, console série 115200)" {
EOF
  printf '%s\n' "${prepare_boot_cache}"
  cat << EOF
    $LX $MEMTESTPATH console=ttyS0,115200n8
}
EOF
fi

#if test -e /boot/memtest86+_multiboot.bin ; then
#  MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+_multiboot.bin" )
#  echo "Image memtest86+ multiboot trouvée : $MEMTESTPATH" >&2
#  cat << EOF
#menuentry "Test de mémoire (memtest86+, multiboot expérimental)" {
#EOF
#  printf '%s\n' "${prepare_boot_cache}"
#  cat << EOF
#   multiboot   $MEMTESTPATH
#}
#menuentry "Test de mémoire (memtest86+, console série 115200, multiboot expérimental)" {
#EOF
#  printf '%s\n' "${prepare_boot_cache}"
#  cat << EOF
#   multiboot   $MEMTESTPATH console=ttyS0,115200n8
#}
#EOF
#fi

N'oubliez pas d'exécuter la commande chmod +x ensuite.

Je serais un peu préoccupé s'il manque cependant - avez-vous tout le reste dans grub.d ?

ls /etc/grub.d/

00_header        10_linux.bak       20_memtest86+  41_custom
05_debian_theme  10_linux.dpkg-old  30_os-prober   README
10_linux         20_linux_xen       40_custom

18voto

Michael Franzl Points 595
apt install memtest86+

Cela reconfigurera automatiquement grub et ajoutera l'entrée au menu de démarrage.

Si vous obtenez l'erreur memtest86+ est déjà la version la plus récente alors utilisez sudo apt-get install --reinstall memtest86+

Si tout échoue, vous pouvez obtenir un ISO bootable que vous pouvez graver sur un CD et démarrer. Bien sûr, si vous démarrez en UEFI, vous devriez être ici à la place.

14voto

Panomosh Points 661

J'ai rencontré le même problème, et comme j'ai EFI sur mon ordinateur portable, la version 4.x de memtest86+ fournie par ubuntu ne fonctionnera pas, car EFI n'est pris en charge que par la version 5 et ultérieure.

Les versions les plus récentes ne sont pas sous GPL et doivent être téléchargées manuellement depuis le site web de memtest (ils proposent des images ISO et USB), mais au moins elles sont gratuites.

5voto

PLaci Points 51

Je n'ai pas réussi à faire fonctionner cela en 2 jours, puis j'ai vérifié Synaptic pour les packages grub... Il semble que l'absence du package grub-imageboot soit la cause du problème.

sudo apt-get install grub-imageboot

1voto

Vic Points 371

C'est ce que j'ai fait pour ajouter le dernier (non gratuit) memtest86+ au menu de démarrage de grub pour le démarrage UEFI. La version actuelle de memtest est 8.2. Outils nécessaires : Disk Image Mounter et grub-customizer, ce dernier n'est là que pour la commodité :) Fichiers : binaire memtest (voir ci-dessous)

  1. Téléchargez le binaire memtest depuis : https://www.memtest86.com/download.htm L' 'Image pour la création d'une clé USB bootable sur un système Windows/Linux/Mac' est correcte.

  2. Extrayez le fichier IMG (memtest86-usb.img)

  3. Ouvrez le fichier img avec disk image mounter (clic droit sur Ubuntu)

  4. Depuis l'image montée, extrayez /EFI/BOOT/BOOTX64.efi

  5. Créez le répertoire de démarrage de memtest86 : sudo mkdir /boot/efi/EFI/memtest86

  6. Copiez BOOTX64.efi dans votre nouveau dossier sur la partition de démarrage (par exemple /boot/efi/EFI/memtest86)

  7. Ouvrez grub-customizer

  8. Ajoutez un élément de menu, donnez-lui un nom, choisissez le type : autre

  9. Ajoutez la séquence de démarrage suivante (en supposant que vous démarrez depuis hd0):

    insmod part_gpt insmod fat set root='hd0,gpt2' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set-root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 1A22-970F else search --no-floppy --fs-uuid --set-root 1A22-970F fi chainloader /EFI/memtest86/BOOTX64.efi

  10. Enregistrez et quittez grub-customizer

  11. Redémarrez et profitez de Memtest86

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X