Memtest86 + seçeneklerini Grub menüsüne nasıl ekleyebilirim?


34

Eğer UEFI kullanıyorsanız, lütfen "UEFI kullanıyorsam memtest86 + önyükleyebilir miyim?"

Ubuntu 12.04'ün 64bit sürümünü Lenovo B570'ime kurduktan sonra, 11.10'u kurarken Grub'un bir UEFI sistemiyle iyi oynamamasıyla aynı sorunları yaşadım. Sorunu çözmek için aynı tekniği kullandım (Grub'u onarmak için bir Süper Grub Disc LiveCD oturumu kullanarak) ve sistemim Ubuntu ve Windows 7 arasında çift çizme ile mutlu oldu

Ancak şimdi başlattığımda Grub menüsü yalnızca görüntüleniyor

  • Ubuntu, Linux 3.2.0-24-genel ile
  • Ubuntu, Linux 3.2.0-24 genel (kurtarma modu) ile
  • Önceki Linux sürümleri
  • Windows 7 (yükleyici) (açık / dev / sda1)
  • Windows Kurtarma Ortamı (yükleyici) (açık / dev / sda4)

Önceden orada bulunan Memtest86 + kullanma seçeneğini göremiyorum, Ubuntu Yazılım Merkezini kontrol ettim Paketin kurulu olduğunu görebiliyorum, ancak bir kez daha çalıştırma seçeneğini nasıl belirleyebilirim?

Denedim:

sudo update-grub 

Bu hiçbir fark yaratmaz.

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

sonuçlanır:

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

ve girme

ls /etc/grub.d/

sonuçlanır:

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

Aşağıdaki betiği ekleyerek deneyin, makinemden kopyalayın, chmod + x ve grub güncellemesini yapın ve çalışıp çalışmadığını görün. Gördün mü - hoş geldiniz.
23 93 26 35 19 57 3 89

Yanıtlar:


19

Bir terminal açmayı ve koşmayı deneyin

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

Orada olup olmadığını kontrol et

grep memtest /boot/grub/grub.cfg

Yeni yaptığım gibi yaptım

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

Orada değilse, bir terminalde nano kullanarak dosyayı oluşturmayı deneyebilirsiniz

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

veya bir gui editörü ile

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

Doldurun

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

Daha sonra chmod + x komutunu çalıştırdığınızdan emin olun.

Yine de eksik olduğundan biraz endişe duyarım - grubun içinde başka her şeyin var mı?

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+sonuçlandı:chmod: cannot access /etc/grub.d/20_memtest86+': No such file or directory
coversnail

1
Bir şekilde 20_memtest86+gizlenirken buldum /etc/grub.d.bak/. Yerine taşındı, GRUB'u güncelledi ve her şey benim için iyi çalıştı.
Naftuli Kay

3
update-grubne yaparsam yapayım memtest ikilisi bulamıyor :(
uzman 18

2
memtest’in GPL sürümleri EFI’yı desteklemediğinden değil mi? Öyleyse eğer EFI ile önyükleme yapıyorsanız, Ubuntu ile birlikte gelenleri kullanarak memtest'i işe almanın bir yolu yok mu ?
Jeff Atwood

1
Aşağıdakileri aldım, X @ ubuntu: ~ $ cat /boot/grub/grub.cfg | grep memtest ### BEGIN /etc/grub.d/20_memtest86+ ### ### END
/etc/grub.d/20_memtest86+

13

Aynı sorunu yaşadım ve dizüstü bilgisayarımda EFI olduğu için ubuntu tarafından gönderilen memtest86 + sürüm 4.x çalışmayacak çünkü EFI yalnızca sürüm 5 ve daha yeni sürümler tarafından destekleniyor.

En son sürümler GPL değildir ve en gizli web sitesinden manuel olarak indirilmelidir (ISO ve USB görüntüleri vardır), ancak en azından ücretsizdir.



En son sürümler GPL değildir ve en gizli web sitesinden manuel olarak indirilmelidir (ISO ve USB görüntüleri vardır), ancak en azından ücretsizdir. memtest86 GPL değildir ve tescillidir ve memtest86 + GPL'dir.
Ramchandra Apte

6
apt-get install memtest86+

Bu, grubu otomatik olarak yeniden yapılandırır ve girişi önyükleme menüsüne ekler.

Eğer hatayı alırsanız memtest86+ is already the newest versionkullanın sudo apt-get install --reinstall memtest86+

Her şey başarısız olursa , CD'ye yazabileceğiniz ve önyükleyebileceğiniz önyüklenebilir bir ISO alabilirsiniz . Tabii UEFI'yi başlatıyorsanız bunun yerine burada olmalısınız .


Ubuntu 16.04 sunucusu için bu tam olarak çözümdü. Olmadan apt-get install memtest86+belirtilen dosyada /etc/grub.d/20_memtest86+sistemimde mevcut değildi.
mstrap

@mstrap, benim için de bir çözümdü. Cevabımın neden iki defa indirildiğini anlamıyorum.
Michael Franzl

1
Bu çözüm benim için işe yaramadı - yukarıdaki komut bir memtest86+ is already the newest versionmesaj aldı . Bu sorunun sadece UEFI olmayan sistemler için çalıştığından şüpheliyim, asıl soru özellikle UEFI sistemlerindeki memtest ile ilgili.
JayDin

1
Bu benim için de işe yaramadı, JayDin memtest'in zaten kurulu olduğu gibi. Memtest'i kaldırmak için synaptik paket yöneticisini kullandım, yeniden başlattım ve yeniden kurdum. Bu benim için sorunu çözdü.
user111667

5

2 gün içinde bu işi yapmayı başaramadım, daha sonra grub paketleri için Synaptic'i kontrol ettim ... Görünüşe göre, paket yokluğu grub-imagebootsorunun kaynağı.

sudo apt-get install grub-imageboot

Bunu denedim ve işe yaramadı.
Hitechcomputergeek

2
Bulunan memdisk: / boot / memdisk ImagePath / boot / images bulunamadı
Aaron Franke

1

Bu şimdi UEFI önyüklemesi için grub önyükleme menüsüne en son (ücretsiz) memtest86 + 'yı eklemek için yaptım. Mevcut memtest sürümü 8.2. Gerekli araçlar: Disk Image Mounter ve grub-customizer, ikincisi sadece kolaylık sağlamak içindir :) Dosyalar: memtest binary (aşağıya bakınız)

  1. Memtest ikili dosyasını şu adresten indirin: https://www.memtest86.com/download.htm 'Windows / Linux / Mac sisteminde önyüklenebilir USB Sürücü oluşturma görüntüsü' iyi.
  2. IMG dosyasını çıkarın (memtest86-usb.img)
  3. img dosyasını disk image mounter ile açın (Ubuntu'da sağ fare düğmesi)
  4. /EFI/BOOT/BOOTX64.efi / çıkarılmış görüntü özünden
  5. memtest86 önyükleme dizini yapın:
    sudo mkdir / boot / efi / EFI / memtest86
  6. BOOTX64.efi dosyasını boot bölümündeki yeni klasöre kopyalayın (örn. / boot / efi / EFI / memtest86)
  7. grub-customizer'ı açın
  8. Menü öğesi ekle, ona bir isim verin, türünü seçin: diğer
  9. aşağıdaki önyükleme sırasını ekleyin ( hd0'dan önyükleme yaptığınızı varsayarak ):
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. grub-customizer'ı kaydedin ve çıkın

  2. yeniden başlat ve Memtest86'nın tadını çıkar


Diğerleri / ben için: # 3 Disk Image Mounter = gnome-diskler. # 6 kök olmalı. # 8 Neden diğer türler memtest değildir? # 9 hd0'dan boot edip etmediğinizi nasıl biliyorsunuz? [Önyükleme sürücüsü girişinizde düzenleme tıklayın ve bu setroot için girişi kopyalayın]. Bu mükemmel cevap btw için teşekkürler.
dez93_2000

Eğer birinin ubuntu kökü hd2 ise, muhtemelen 0'da 2'yi 4 yerde değiştirirsiniz, inc ahci? Ne olursa olsun hata alıyorum böyle bir cihaz 1A22-970F & '/EFI/memtest86/BOOTX64.efi' dosyası bulunamadı. Dosya, / boot / efi / EFI / memtest86 / dizininde bulunur. Düşüncesi olan var mı? Şerefe
dez93_2000

'hata diski hd2, gpt2 bulunamadı' şimdi 'böyle bir aygıt yok' ifadesiyle görünüyor; bulunamadı dosyası görünmüyor. neden değişeceğinden emin değilim ...
dez93_2000
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.