Bagaimana saya bisa menambahkan opsi Memtest86 + kembali ke menu Grub?

34

Jika menggunakan UEFI Silakan lihat pertanyaan ini, "Bisakah saya mem-boot memtest86 + jika saya menggunakan UEFI?"

Setelah menginstal versi 64bit Ubuntu 12.04 pada Lenovo B570 saya, saya mengalami masalah yang sama ketika menginstal 11,10 dengan Grub tidak bermain dengan baik dengan sistem uEFI. Saya menggunakan teknik yang sama seperti terakhir kali untuk menyelesaikan masalah (menggunakan sesi LiveCD Super Grub Disc untuk memperbaiki Grub) dan sistem saya dengan senang hati melakukan dual boot antara Ubuntu dan Windows 7

Namun sekarang ketika saya boot menu Grub hanya menampilkan

  • Ubuntu, dengan Linux 3.2.0-24-generik
  • Ubuntu, dengan Linux 3.2.0-24-generic (mode pemulihan)
  • Versi Linux sebelumnya
  • Windows 7 (loader) (di / dev / sda1)
  • Lingkungan Pemulihan Windows (loader) (on / dev / sda4)

Saya tidak lagi melihat opsi untuk menggunakan Memtest86 + yang sudah ada sebelumnya, setelah memeriksa di Pusat Perangkat Lunak Ubuntu saya dapat melihat bahwa paket tersebut diinstal, tetapi bagaimana cara saya membuat opsi untuk menjalankannya sekali lagi muncul di menu Grub?

Saya sudah mencoba:

sudo update-grub 

yang tidak ada bedanya.

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

menghasilkan:

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

dan masuk

ls /etc/grub.d/

menghasilkan:

00_header        10_linux      30_os-prober  41_custom
05_debian_theme  20_linux_xen  40_custom     README
coversnail
sumber
Coba tambahkan skrip seperti yang dijelaskan di bawah ini, salin dari mesin saya, lakukan chmod + x dan pembaruan grub dan lihat apakah itu berfungsi. Saya melihat Anda melakukannya - selamat datang.
23 93 26 35 19 57 3 89

Jawaban:

19

Coba buka terminal dan jalankan

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

Periksa apakah ada di sana

grep memtest /boot/grub/grub.cfg

Hanya melakukan hal yang sama seperti saya menonaktifkannya

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

Anda dapat mencoba membuat file jika tidak ada di sana, menggunakan nano di terminal

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

atau dengan editor gui

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

Isi dengan

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

Pastikan untuk menjalankan perintah chmod + x di atasnya sesudahnya.

Saya akan sedikit khawatir bahwa itu hilang - apakah Anda memiliki semuanya di 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
sumber
sudo chmod +x /etc/grub.d/20_memtest86+menghasilkan:chmod: cannot access /etc/grub.d/20_memtest86+': No such file or directory
coversnail
1
Saya menemukan 20_memtest86+mengintai /etc/grub.d.bak/entah bagaimana. Memindahkannya ke tempatnya, memperbarui GRUB dan semuanya bekerja dengan baik untuk saya.
Naftuli Kay
3
update-grubtidak menemukan biner memtest tidak peduli apa yang saya lakukan :(
ahli
2
bukankah ini karena versi memtest GPL tidak mendukung EFI? Jadi jika Anda boot melalui EFI, tidak ada cara untuk mendapatkan memtest untuk bekerja menggunakan apa yang dikirimkan dengan Ubuntu ??
Jeff Atwood
1
Saya mendapat yang berikut, X @ ubuntu: ~ $ cat /boot/grub/grub.cfg | grep memtest ### BEGIN /etc/grub.d/20_memtest86+ ### ### END /etc/grub.d/20_memtest86+ ###
user1945827
13

Saya memiliki masalah yang sama, dan karena saya memiliki EFI di laptop saya, memtest86 + versi 4.x yang dikirimkan oleh ubuntu tidak akan berfungsi, karena EFI hanya didukung oleh versi 5 dan yang lebih baru.

Versi terbaru adalah non-GPL dan harus diunduh secara manual dari situs web memtest (memiliki gambar ISO dan USB), tetapi setidaknya tidak gratis.

Cristian Măgherușan-Stanciu
sumber
Versi terbaru adalah non-GPL dan harus diunduh secara manual dari situs web memtest (memiliki gambar ISO dan USB), tetapi setidaknya tidak gratis. memtest86 adalah non-GPL dan berpemilik dan memtest86 + adalah GPL.
Ramchandra Apte
6
apt-get install memtest86+

Ini akan secara otomatis mengkonfigurasi ulang grub dan menambahkan entri ke menu boot.

Jika Anda mendapatkan kesalahan memtest86+ is already the newest versionmaka gunakan sudo apt-get install --reinstall memtest86+

Jika semuanya gagal, Anda bisa mendapatkan ISO yang dapat di - boot yang dapat Anda bakar ke CD dan boot dari. Tentu saja jika Anda mem-boot UEFI, Anda harusnya ada di sini.

Michael Franzl
sumber
Untuk server Ubuntu 16.04 ini persis solusinya. Tanpa apt-get install memtest86+disebutkan file /etc/grub.d/20_memtest86+tidak ada di sistem saya.
mstrap
@strap, itu solusi untuk saya juga. Saya tidak mengerti mengapa jawaban saya dibatalkan dua kali.
Michael Franzl
1
Solusi ini tidak berfungsi untuk saya - perintah di atas menerima memtest86+ is already the newest versionpesan. Saya menduga solusi ini hanya berfungsi untuk sistem non UEFI sementara pertanyaan aslinya khusus tentang memtest pada sistem UEFI.
JayDin
1
Ini tidak bekerja untuk saya juga, seperti memtest JayDin sudah diinstal. Saya menggunakan manajer paket synaptik untuk menghapus memtest, reboot lalu menginstalnya kembali. Ini memperbaiki masalah bagi saya.
user111667
5

Saya tidak berhasil membuat pekerjaan ini dalam 2 hari, kemudian saya memeriksa Synaptic untuk paket grub ... Tampaknya, bahwa tidak adanya paket grub-imagebootadalah akar masalahnya.

sudo apt-get install grub-imageboot
PLaci
sumber
Saya mencoba ini dan tidak berhasil.
Hitechcomputergeek
2
Ditemukan memdisk: / boot / memdisk Imagepath / boot / images tidak ditemukan
Aaron Franke
1

Ini yang saya lakukan untuk menambahkan memtest86 + sekarang terbaru (tidak gratis) ke menu boot grub untuk booting UEFI. Versi memtest saat ini adalah 8.2. Alat yang diperlukan: Disk Image Mounter dan grub-customizer, yang terakhir hanya untuk kenyamanan :) File: memtest binary (lihat di bawah)

  1. Unduh biner memtest dari: https://www.memtest86.com/download.htm 'Gambar untuk membuat Drive USB yang dapat di-boot pada sistem Windows / Linux / Mac' tidak masalah.
  2. Ekstrak file IMG (memtest86-usb.img)
  3. buka file img dengan mount image disk (tombol kanan mouse di Ubuntu)
  4. dari ekstrak gambar yang terpasang / EFI/BOOT/BOOTX64.efi
  5. membuat direktori boot memtest86:
    sudo mkdir / boot / efi / EFI / memtest86
  6. salin BOOTX64.efi ke folder baru Anda di partisi boot (mis. / boot / efi / EFI / memtest86)
  7. buka grub-customizer
  8. Tambahkan item menu, berikan nama, pilih tipe: lainnya
  9. tambahkan urutan boot berikut (dengan asumsi Anda boot dari 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. simpan dan keluar dari grub-customizer

  2. reboot dan nikmati Memtest86

Vic
sumber
Untuk yang lain / saya: # 3 Disk Image Mounter = gnome-disks. # 6 harus root. # 8 Mengapa tipe lainnya bukan memtest? # 9 bagaimana Anda tahu jika Anda boot dari hd0? [klik edit pada entri boot drive Anda dan salin entri untuk setroot itu]. Terima kasih atas jawaban yang luar biasa ini btw.
dez93_2000
Jika root ubuntu seseorang adalah hd2 maka mungkin Anda mengubah 0 ke 2 di 4 tempat, termasuk ahci? Apapun yang saya dapatkan kesalahan tidak ada perangkat seperti itu 1A22-970F & file '/ EFI/memtest86/BOOTX64.efi' tidak ditemukan. File di defo di / boot / efi / EFI / memtest86 /. Adakah pikiran? Cheers
dez93_2000
'kesalahan disk hd2, gpt2 tidak ditemukan' sekarang muncul dengan 'tidak ada perangkat'; file tidak ditemukan tidak muncul. tidak yakin mengapa itu akan berubah ...
dez93_2000