Como posso adicionar as opções do Memtest86 + de volta ao menu do Grub?

25

Se estiver usando UEFI Por favor, veja esta pergunta, "Posso inicializar o memtest86 + se eu estiver usando UEFI?"

Depois de ter instalado a versão de 64 bits do Ubuntu 12.04 no meu Lenovo B570, encontrei os mesmos problemas que tive ao instalar o 11.10 com o Grub não tocando bem com um sistema uEFI. Eu usei a mesma técnica da última vez para resolver o problema (usando uma sessão do Super Grub Disc LiveCD para reparar o Grub) e meu sistema felizmente carrega dualmente entre o Ubuntu e o Windows 7

No entanto, agora, quando eu inicializo o menu do Grub, apenas exibe

  • Ubuntu, com o Linux 3.2.0-24-genérico
  • Ubuntu, com o Linux 3.2.0-24-genérico (modo de recuperação)
  • Versões anteriores do Linux
  • Windows 7 (loader) (em / dev / sda1)
  • Ambiente de Recuperação do Windows (loader) (em / dev / sda4)

Eu não vejo mais a opção de usar o Memtest86 + que estava lá anteriormente, tendo verificado no Ubuntu Software Center eu posso ver que o pacote está instalado, mas como eu faço a opção de executá-lo mais uma vez aparecer no menu do Grub ?

Eu tentei:

sudo update-grub 

que não faz qualquer diferença.

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

resulta em:

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

e entrando

ls /etc/grub.d/

resulta em:

00_header        10_linux      30_os-prober  41_custom
05_debian_theme  20_linux_xen  40_custom     README
    
por coversnail 27.04.2012 / 16:10

4 respostas

15

Tente abrir um terminal e executar

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

Verifique se está lá

grep memtest /boot/grub/grub.cfg

Acabei de fazer o mesmo que eu fiz com ele desativado

[email protected]:~$ cat /boot/grub/grub.cfg |grep memtest
[email protected]:~$ sudo chmod +x /etc/grub.d/20_memtest86+
[sudo] password for hob: 
[email protected]:~$ 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
[email protected]:~$ 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+ ###

Você pode tentar criar o arquivo, se não estiver lá, usando o nano em um terminal

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

ou com um editor de gui

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

Preencha com

#!/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

Certifique-se de executar o comando chmod + x depois disso.

Eu ficaria um pouco preocupado com a falta dele - você tem todo o resto no 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
    
por 23 93 26 35 19 57 3 89 27.04.2012 / 16:28
13

Eu tive o mesmo problema, e devido ao fato de eu ter EFI no meu laptop, o memtest86 + versão 4.x fornecido pelo Ubuntu não funcionará, já que o EFI é suportado apenas pela versão 5 e mais recente.

As versões mais recentes são não-GPL e devem ser baixadas manualmente do site do memtest (elas têm imagens ISO e USB), mas pelo menos elas são gratuitas.

    
por Cristian Măgherușan-Stanciu 13.09.2014 / 12:25
4

Eu não consegui fazer isso funcionar em 2 dias, então eu verifiquei o Synaptic para pacotes grub ... Parece que a ausência do pacote grub-imageboot é a raiz do problema.

sudo apt-get install grub-imageboot
    
por PLaci 29.08.2013 / 13:13
0
apt-get install memtest86+

Isso irá reconfigurar automaticamente o grub e adicionar a entrada ao menu de inicialização.

    
por Michael Franzl 01.06.2014 / 17:39