web-dev-qa-db-fra.com

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 lors de l'installation de 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 (utiliser 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, au démarrage, 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)
  • 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 l'option 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
32
coversnail

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

Vient de faire 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 que cela 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
18

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 elles sont au moins gratuites.

Je n’ai pas réussi à faire fonctionner cela en 2 jours, puis j’ai vérifié dans Synaptic les paquets grub ... Il semblerait que l’absence du paquet grub-imageboot soit à l’origine du problème.

Sudo apt-get install grub-imageboot
5
PLaci
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 version, utilisez Sudo apt-get install --reinstall memtest86+

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

5
Michael Franzl