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

34

Si vous utilisez UEFI Veuillez consulter la question suivante: "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 lors de l'installation de 11.10 avec Grub qui ne fonctionnait pas bien avec un système uEFI. J'ai utilisé la même technique que la dernière fois pour résoudre le problème (utilisation d'une session LiveCD sur Super Grub Disc pour réparer Grub) et mon système a heureusement doublé le démarrage entre Ubuntu et Windows 7.

Cependant, maintenant, lorsque je lance le menu Grub, il n’affiche que

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

Je ne vois plus la possibilité d'utiliser Memtest86 +, qui était là auparavant, après avoir vérifié dans le Centre logiciel Ubuntu, je peux voir que le paquet est installé, mais comment puis-je faire en sorte que l'option de le réexécuter apparaisse dans le menu Grub?

J'ai essayé:

sudo update-grub 

ce qui ne fait aucune différence.

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

résulte en:

chmod: cannot access /etc/grub.d/20_memtest86+': No such file or directory

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
vignette
la source
Essayez d’ajouter le script décrit ci-dessous, de le copier de ma machine, de mettre à jour chmod + x et grub pour voir si cela fonctionne. Je vois que tu l'as fait - bienvenue.
23 93 26 35 19 57 3 89

Réponses:

19

Essayez d'ouvrir un terminal et de courir

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

Vérifiez si c'est là

grep memtest /boot/grub/grub.cfg

Juste fait la même chose que 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] password for hob: 
hob@hob-HP-dx5150-MT:~$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-24-generic
Found initrd image: /boot/initrd.img-3.2.0-24-generic
Found linux image: /boot/vmlinuz-3.2.0-23-generic
Found initrd image: /boot/initrd.img-3.2.0-23-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Ubuntu 11.10 (11.10) on /dev/sda6
Found Trisquel 5.5 (5.5) on /dev/sda8
Found Ubuntu 12.04 LTS (12.04) on /dev/sda9
done
hob@hob-HP-dx5150-MT:~$ cat /boot/grub/grub.cfg |grep memtest
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    linux16 /boot/memtest86+.bin
menuentry "Memory test (memtest86+, serial console 115200)" {
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
### END /etc/grub.d/20_memtest86+ ###

Vous pouvez 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+

Le remplir 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
  # no grub file, so we notify and exit gracefully
  echo "Cannot find grub config file, exiting." >&2
  exit 0
fi

# We can't cope with loop-mounted devices here.
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 "Found memtest86+ image: $MEMTESTPATH" >&2
  cat << EOF
menuentry "Memory test (memtest86+)" {
EOF
  printf '%s\n' "${prepare_boot_cache}"
  cat << EOF
    $LX $MEMTESTPATH
}
menuentry "Memory test (memtest86+, serial console 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 "Found memtest86+ multiboot image: $MEMTESTPATH" >&2
#  cat << EOF
#menuentry "Memory test (memtest86+, experimental multiboot)" {
#EOF
#  printf '%s\n' "${prepare_boot_cache}"
#  cat << EOF
#   multiboot   $MEMTESTPATH
#}
#menuentry "Memory test (memtest86+, serial console 115200, experimental multiboot)" {
#EOF
#  printf '%s\n' "${prepare_boot_cache}"
#  cat << EOF
#   multiboot   $MEMTESTPATH console=ttyS0,115200n8
#}
#EOF
#fi

Assurez-vous d’exécuter la commande chmod + x par la suite.

Je serais un peu préoccupé par le fait qu'il manque - 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
23 93 26 35 19 57 3 89
la source
sudo chmod +x /etc/grub.d/20_memtest86+a abouti à:chmod: cannot access /etc/grub.d/20_memtest86+': No such file or directory
thumbnail
1
J'ai trouvé en 20_memtest86+train de se cacher /etc/grub.d.bak/. Mis en place, mis à jour GRUB et tout a bien fonctionné pour moi.
Naftuli Kay
3
update-grubne trouve pas le binaire memtest, peu importe ce que je fais :(
expert
2
n'est-ce pas parce que les versions GPL de memtest ne prennent pas en charge EFI? Donc, si vous démarrez via EFI, il n’ya aucun moyen de faire fonctionner memtest avec ce qui est livré avec Ubuntu.
Jeff Atwood
1
J'ai obtenu ce qui suit, X @ ubuntu: ~ $ cat /boot/grub/grub.cfg | grep memtest ### BEGIN /etc/grub.d/20_memtest86+ ### ### END /etc/grub.d/20_memtest86+ ###
utilisateur1945827
13

Le même problème se posait. Etant donné que 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 les versions 5 et plus récentes.

Les dernières versions ne sont pas compatibles GPL et doivent être téléchargées manuellement sur le site Web memtest (elles possèdent des images ISO et USB), mais au moins elles sont gratuites.

Cristian Măgherușan-Stanciu
la source
Les dernières versions ne sont pas compatibles GPL et doivent être téléchargées manuellement à partir du site Web memtest (elles possèdent des images ISO et USB), mais au moins elles sont gratuites. memtest86 est non-GPL et propriétaire, et memtest86 + est GPL.
Ramchandra Apte
6
apt-get install memtest86+

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

Si vous obtenez l'erreur, memtest86+ is already the newest versionutilisez sudo apt-get install --reinstall memtest86+

En cas d'échec, vous pouvez obtenir une image ISO amorçable que vous pouvez graver sur un CD et démarrer à partir. Bien sûr, si vous démarrez UEFI, vous devriez plutôt être ici.

Michael Franzl
la source
Pour le serveur Ubuntu 16.04, c'était exactement la solution. Sans le apt-get install memtest86+fichier mentionné /etc/grub.d/20_memtest86+n'était pas présent sur mon système.
Mstrap
@ mstrap, c'était la solution pour moi aussi. Je ne comprends pas pourquoi ma réponse a été rejetée deux fois.
Michael Franzl
1
Cette solution n'a pas fonctionné pour moi - la commande ci-dessus a reçu un memtest86+ is already the newest versionmessage. Je suppose que cette solution ne fonctionne que pour les systèmes non UEFI, alors que la question initiale concernait spécifiquement le test de mémoire sur les systèmes UEFI.
JayDin
1
Cela n'a pas fonctionné pour moi non plus, comme JayDin memtest était déjà installé. J'ai utilisé le gestionnaire de paquets synaptik pour supprimer memtest, le redémarrer puis le réinstaller. Cela a résolu le problème pour moi.
user111667
5

Je n’ai pas réussi à faire fonctionner cela en 2 jours, puis j’ai vérifié que Synaptic possédait des paquets grub ... On dirait que l’absence de paquet grub-imagebootest à l’origine du problème.

sudo apt-get install grub-imageboot
PLaci
la source
J'ai essayé ça et ça n'a pas marché.
Hitechcomputergeek
2
Memdisk trouvé: / boot / memdisk Chemin d'image / boot / images non trouvées
Aaron Franke
1

C’est ce que j’ai fait pour ajouter le plus récent (non gratuit) memtest86 + au menu d’amorçage Grub pour l’amorçage UEFI. La version actuelle de memtest est la 8.2. Outils nécessaires: Disk Image Mounter et grub-customizer, ce dernier n’est que pour plus de commodité :) Fichiers: memtest binary (voir ci-dessous)

  1. Téléchargez le fichier binaire memtest à partir de: https://www.memtest86.com/download.htm 'L'image permettant de créer un lecteur USB amorçable sur un système Windows / Linux / Mac' convient parfaitement.
  2. Extraire le fichier IMG (memtest86-usb.img)
  3. ouvrez le fichier img avec la mémoire d'image disque (bouton droit de la souris sur Ubuntu)
  4. à partir de l'extrait d'image monté /EFI/BOOT/BOOTX64.efi
  5. faire le répertoire de démarrage de memtest86:
    sudo mkdir / boot / efi / EFI / memtest86
  6. copiez le fichier BOOTX64.efi dans votre nouveau dossier sur la partition de démarrage (par exemple, / boot / efi / EFI / memtest86)
  7. ouvert grub-customizer
  8. Ajouter un élément de menu, lui donner un nom, choisir le type: autre
  9. ajoutez la séquence de démarrage suivante (en supposant que vous démarrez à partir de 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
  1. enregistrer et quitter grub-customizer

  2. redémarrez et profitez de Memtest86

Vic
la source
Pour les autres / moi: # 3 Disk Image Mounter = gnome-disks. # 6 doit être la racine. # 8 Pourquoi le type autre n'est pas memtest? # 9 comment savez-vous si vous démarrez à partir de hd0? [cliquez sur modifier sur votre entrée de lecteur de démarrage et copiez l'entrée pour cette racine]. Merci pour cette excellente réponse.
dez93_2000
Si sa racine ubuntu est hd2, on peut supposer que vous modifiez le 0 en 2 en 4 endroits, inc ahci? Peu importe l'erreur que je reçois, aucun appareil de ce type 1A22-970F & fichier '/EFI/memtest86/BOOTX64.efi' n'a pas été trouvé. Le fichier est par défaut dans / boot / efi / EFI / memtest86 /. Des pensées? À la vôtre
dez93_2000
«Erreur disque hd2, gpt2 introuvable» apparaît maintenant avec «aucun périphérique de ce type»; Le fichier non trouvé n'apparaît pas. je ne sais pas pourquoi cela changerait ...
dez93_2000