Wie kann ich die Memtest86 + -Optionen wieder zum Grub-Menü hinzufügen?


34

Bei Verwendung von UEFI Lesen Sie die Frage "Kann ich memtest86 + bei Verwendung von UEFI booten?".

Nachdem ich die 64-Bit-Version von Ubuntu 12.04 auf meinem Lenovo B570 installiert hatte, stieß ich auf dieselben Probleme, die ich bei der Installation von 11.10 mit Grub hatte und die mit einem uEFI-System nicht gut funktionierten. Ich habe die gleiche Technik wie beim letzten Mal angewendet, um das Problem zu lösen (mithilfe einer Super Grub Disc LiveCD-Sitzung, um Grub zu reparieren) und mein System konnte problemlos zwischen Ubuntu und Windows 7 dual gebootet werden

Wenn ich jetzt allerdings hochfahre, wird nur das Grub-Menü angezeigt

  • Ubuntu, mit Linux 3.2.0-24-generisch
  • Ubuntu, mit Linux 3.2.0-24-generic (Wiederherstellungsmodus)
  • Frühere Linux-Versionen
  • Windows 7 (Loader) (auf / dev / sda1)
  • Windows-Wiederherstellungsumgebung (Loader) (on / dev / sda4)

Nachdem ich im Ubuntu Software Center überprüft habe, dass das Paket installiert ist, wird die Option zur Verwendung von Memtest86 + nicht mehr angezeigt. Wie kann ich die Option zur erneuten Ausführung im Grub-Menü aktivieren?

Ich habe es versucht:

sudo update-grub 

Das macht keinen Unterschied.

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

Ergebnisse in:

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

und betreten

ls /etc/grub.d/

Ergebnisse in:

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

Fügen Sie das Skript wie unten beschrieben hinzu, kopieren Sie es von meinem Computer, führen Sie das Update von chmod + x und grub durch und prüfen Sie, ob das funktioniert. Ich sehe, Sie haben - willkommen.
23 93 26 35 19 57 3 89

Antworten:


19

Versuchen Sie, ein Terminal zu öffnen und zu starten

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

Überprüfen Sie, ob es da ist

grep memtest /boot/grub/grub.cfg

Genau so gemacht, wie ich es deaktiviert hatte

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+ ###

Sie können versuchen, die Datei mithilfe von nano in einem Terminal zu erstellen, wenn sie nicht vorhanden ist

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

oder mit einem GUI-Editor

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

Fülle es mit

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

Stellen Sie sicher, dass Sie danach den Befehl chmod + x ausführen.

Ich wäre ein bisschen besorgt, dass es fehlt - hast du alles andere in 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

sudo chmod +x /etc/grub.d/20_memtest86+resultierte in:chmod: cannot access /etc/grub.d/20_memtest86+': No such file or directory
Titelbild

1
Ich fand es irgendwie 20_memtest86+lauernd /etc/grub.d.bak/. Verschob es an seinen Platz, aktualisierte GRUB und alles funktionierte gut für mich.
Naftuli Kay

3
update-grubfindet memtest binary nicht, egal was ich tue :(
Experte

2
liegt das nicht daran, dass die GPL-Versionen von memtest EFI nicht unterstützen? Also, wenn Sie über EFI booten, gibt es keine Möglichkeit , memtest mit dem, was mit Ubuntu geliefert wird , zum Laufen zu bringen?
Jeff Atwood

1
Ich habe folgendes, X @ ubuntu: ~ $ cat /boot/grub/grub.cfg | grep memtest ### BEGIN /etc/grub.d/20_memtest86+ ### ### END /etc/grub.d/20_memtest86+ ###
user1945827

13

Ich hatte das gleiche Problem und aufgrund der Tatsache, dass ich EFI auf meinem Laptop habe, funktioniert die von Ubuntu gelieferte memtest86 + -Version 4.x nicht, da EFI nur von Version 5 und höher unterstützt wird.

Die neuesten Versionen sind nicht GPL-konform und müssen manuell von der memtest-Website heruntergeladen werden (sie verfügen über ISO- und USB-Images), sind jedoch zumindest kostenlos.



Die neuesten Versionen sind nicht GPL-konform und müssen manuell von der memtest-Website heruntergeladen werden (sie verfügen über ISO- und USB-Images), sind jedoch zumindest kostenlos. memtest86 ist nicht GPL und proprietär und memtest86 + ist GPL.
Ramchandra Apte

6
apt-get install memtest86+

Dadurch wird grub automatisch neu konfiguriert und der Eintrag zum Startmenü hinzugefügt.

Wenn Sie den Fehler erhalten, memtest86+ is already the newest versionverwenden Sie sudo apt-get install --reinstall memtest86+

Wenn alles andere fehlschlägt, können Sie eine bootfähige ISO erhalten , die Sie auf eine CD brennen und von der Sie booten können. Natürlich, wenn Sie UEFI booten, sollten Sie stattdessen hier sein.


Für Ubuntu 16.04 Server war dies genau die Lösung. Ohne apt-get install memtest86+erwähnte Datei /etc/grub.d/20_memtest86+war auf meinem System nicht vorhanden.
mstrap

@mstrap, es war auch für mich die Lösung. Ich verstehe nicht, warum meine Antwort zweimal abgelehnt wurde.
Michael Franzl

1
Diese Lösung hat bei mir nicht funktioniert - der obige Befehl hat eine memtest86+ is already the newest versionNachricht erhalten. Ich vermute, dass diese Lösung nur für Nicht-UEFI-Systeme funktioniert, während sich die ursprüngliche Frage speziell auf memtest auf UEFI-Systemen bezieht.
JayDin

1
Dies hat auch bei mir nicht funktioniert, da JayDin memtest bereits installiert war. Ich habe synaptik package manager verwendet, um memtest zu entfernen, neu gestartet und dann neu installiert. Dies hat das Problem für mich behoben.
user111667

5

Ich habe es nicht geschafft, diese Arbeit in 2 Tagen zu machen, dann habe ich Synaptic auf Grub-Pakete überprüft ... Scheint, dass das Fehlen von Paketen grub-imagebootdie Wurzel des Problems ist.

sudo apt-get install grub-imageboot

Ich habe es versucht und es hat nicht funktioniert.
Hitechcomputergeek

2
Gefundene Memdisk: / boot / memdisk Imagepfad / boot / Bilder nicht gefunden
Aaron Franke

1

Das habe ich getan, um das neueste (nicht kostenlose) memtest86 + zum Grub-Boot-Menü für das UEFI-Booten hinzuzufügen. Aktuelle memtest Version ist 8.2. Benötigte Tools: Disk Image Mounter und Grub-Customizer, letzterer dient nur der Vereinfachung :) Dateien: memtest binary (siehe unten)

  1. Laden Sie die memtest-Binärdatei von folgender Adresse herunter: https://www.memtest86.com/download.htm Das "Image zum Erstellen eines bootfähigen USB-Laufwerks auf einem Windows / Linux / Mac-System" ist in Ordnung.
  2. Extrahieren Sie die IMG-Datei (memtest86-usb.img)
  3. Öffne die IMG-Datei mit Disk Image Mounter (rechte Maustaste auf Ubuntu)
  4. aus dem gemounteten Image-Extrakt /EFI/BOOT/BOOTX64.efi
  5. Erstelle memtest86 Boot-Verzeichnis:
    sudo mkdir / boot / efi / EFI / memtest86
  6. Kopieren Sie die Datei BOOTX64.efi in Ihren neuen Ordner auf der Boot-Partition (z. B. / boot / efi / EFI / memtest86).
  7. öffne grub-customizer
  8. Menüpunkt hinzufügen, benennen, Typ auswählen: Sonstige
  9. Fügen Sie die folgende Startsequenz hinzu (vorausgesetzt, Sie starten von 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. speichere und beende grub-customizer

  2. starte neu und genieße Memtest86


Für andere / mich: # 3 Disk Image Mounter = Gnome-Disks. # 6 muss root sein. # 8 Warum ist Typ Sonstige nicht memtest? # 9 woher weißt du ob du von hd0 bootest? [Klicken Sie in Ihrem Startlaufwerk-Eintrag auf Bearbeiten und kopieren Sie den Eintrag für diesen Satz-Stamm]. Vielen Dank für diese hervorragende Antwort übrigens.
dez93_2000

Wenn jemandes Ubuntu-Wurzel HD2 ist, dann ändern Sie vermutlich die 0 auf 2 an 4 Stellen, inc ahci? Unabhängig davon erhalte ich den Fehler, dass kein solches Gerät 1A22-970F & die Datei '/EFI/memtest86/BOOTX64.efi' nicht gefunden wurde. Die Datei befindet sich defo in / boot / efi / EFI / memtest86 /. Irgendwelche Gedanken? Prost
dez93_2000

'error disk hd2, gpt2 not found' erscheint jetzt mit 'no such device'; Datei nicht gefunden wird nicht angezeigt. nicht sicher, warum es sich ändern würde ...
dez93_2000
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.