Làm cách nào tôi có thể thêm các tùy chọn Memtest86 + trở lại menu Grub?


34

Nếu sử dụng UEFI Vui lòng xem câu hỏi này, "Tôi có thể khởi động memtest86 + nếu tôi đang sử dụng UEFI không?"

Sau khi cài đặt phiên bản 64 bit của Ubuntu 12.04 trên Lenovo B570, tôi gặp phải vấn đề tương tự khi cài đặt 11.10 với Grub không chơi tốt với hệ thống uEFI. Tôi đã sử dụng kỹ thuật tương tự như lần trước để giải quyết vấn đề (sử dụng phiên Super Grub Disc LiveCD để sửa chữa Grub) và hệ thống của tôi vui vẻ khởi động kép giữa Ubuntu và Windows 7

Tuy nhiên, bây giờ khi tôi khởi động, menu Grub chỉ hiển thị

  • Ubuntu, với Linux 3.2.0-24 chung
  • Ubuntu, với Linux 3.2.0-24-generic (chế độ phục hồi)
  • Các phiên bản Linux trước
  • Windows 7 (trình tải) (trên / dev / sda1)
  • Môi trường phục hồi Windows (trình tải) (trên / dev / sda4)

Tôi không còn thấy tùy chọn sử dụng Memtest86 + đã có trước đây, khi đã kiểm tra trong Trung tâm phần mềm Ubuntu, tôi có thể thấy gói đó đã được cài đặt, nhưng làm cách nào để tôi tùy chọn chạy nó một lần nữa xuất hiện trong menu Grub?

Tôi đã thử:

sudo update-grub 

mà không làm cho bất kỳ sự khác biệt.

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

kết quả trong:

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

và nhập

ls /etc/grub.d/

kết quả trong:

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

Hãy thử thêm tập lệnh như chi tiết bên dưới, sao chép nó từ máy của tôi, thực hiện cập nhật chmod + x và grub và xem nó có hoạt động không. Tôi thấy bạn đã làm - chào mừng.
23 93 26 35 19 57 3 89

Câu trả lời:


19

Hãy thử mở một thiết bị đầu cuối và chạy

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

Kiểm tra xem nó có ở đó không

grep memtest /boot/grub/grub.cfg

Chỉ cần làm như tôi đã bị vô hiệu hóa

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

Bạn có thể thử tạo tệp nếu không có, sử dụng nano trong thiết bị đầu cuối

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

hoặc với một biên tập viên gui

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

Điền vào nó với

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

Đảm bảo chạy lệnh chmod + x trên đó sau đó.

Tôi có một chút lo ngại rằng nó bị thiếu mặc dù - bạn có mọi thứ khác trong grub.d không?

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+kết quả là:chmod: cannot access /etc/grub.d/20_memtest86+': No such file or directory
covernail

1
Tôi tìm thấy 20_memtest86+lẩn khuất trong một số /etc/grub.d.bak/cách. Di chuyển nó vào vị trí, cập nhật GRUB và mọi thứ hoạt động tốt với tôi.
Naftuli Kay

3
update-grubkhông tìm thấy nhị phân memtest bất kể tôi làm gì :(
chuyên gia

2
không phải vì phiên bản GPL của memtest không hỗ trợ EFI? Vì vậy, nếu bạn đang khởi động thông qua EFI, không có cách nào để memtest hoạt động bằng cách sử dụng những gì được cung cấp với Ubuntu ??
Jeff Atwood

1
Tôi đã nhận được những điều sau đây, X @ ubfox: ~ $ cat /boot/grub/grub.cfg | grep memtest ### BEGIN /etc/grub.d/20_memtest86+ ### ### END /etc/grub.d/20_memtest86+ ###
user1945827

13

Tôi cũng gặp vấn đề tương tự và do thực tế là tôi có EFI trên máy tính xách tay của tôi, phiên bản memtest86 + 4.x được vận chuyển bởi ubfox sẽ không hoạt động, vì EFI chỉ được hỗ trợ bởi phiên bản 5 và mới hơn.

Các phiên bản mới nhất không phải là GPL và phải được tải xuống thủ công từ trang web memtest (chúng có hình ảnh ISO và USB), nhưng ít nhất chúng là miễn phí.



Các phiên bản mới nhất không phải là GPL và phải được tải xuống thủ công từ trang web memtest (chúng có hình ảnh ISO và USB), nhưng ít nhất chúng là miễn phí. memtest86 không phải là GPL và độc quyền và memtest86 + là GPL.
Ramowderra Apte

6
apt-get install memtest86+

Điều này sẽ tự động cấu hình lại grub và thêm mục vào menu khởi động.

Nếu bạn gặp lỗi memtest86+ is already the newest versionthì hãy sử dụng sudo apt-get install --reinstall memtest86+

Nếu vẫn thất bại, bạn có thể lấy ISO có thể khởi động mà bạn có thể ghi vào đĩa CD và khởi động từ đó. Tất nhiên, nếu bạn đang khởi động UEFI, bạn nên ở đây để thay thế.


Đối với máy chủ Ubuntu 16.04, đây chính xác là giải pháp. Không có apt-get install memtest86+tập tin /etc/grub.d/20_memtest86+được đề cập đã không có mặt trên hệ thống của tôi.
mstrap

@mstrap, đó cũng là giải pháp cho tôi. Tôi không hiểu tại sao câu trả lời của tôi bị hạ thấp hai lần.
Michael Franzl

1
Giải pháp này không hiệu quả với tôi - lệnh trên nhận được một memtest86+ is already the newest versiontin nhắn. Tôi nghi ngờ giải pháp này chỉ hoạt động cho các hệ thống không phải UEFI trong khi câu hỏi ban đầu đặc biệt liên quan đến memtest trên các hệ thống UEFI.
JayDin

1
Điều này cũng không hiệu quả với tôi, như Jaytin memtest đã được cài đặt. Tôi đã sử dụng trình quản lý gói synaptik để xóa memtest, khởi động lại sau đó cài đặt lại. Điều này đã khắc phục vấn đề cho tôi.
111667

5

Tôi đã không quản lý để thực hiện công việc này trong 2 ngày, sau đó tôi đã kiểm tra Synaptic cho các gói grub ... Có vẻ như, sự vắng mặt của gói grub-imagebootlà gốc rễ của vấn đề.

sudo apt-get install grub-imageboot

Tôi đã thử điều này và nó đã không hoạt động.
Hitechcomputergeek

2
Đã tìm thấy memdisk: / boot / memdisk Không tìm thấy Imagepath / boot / hình ảnh
Aaron Franke

1

Đây là những gì tôi đã làm để thêm memtest86 + mới nhất (không miễn phí) vào menu khởi động grub để khởi động UEFI. Phiên bản memtest hiện tại là 8.2. Các công cụ cần thiết: Trình xem ảnh đĩa và trình tùy chỉnh grub, phần sau chỉ để thuận tiện :) Tệp: nhị phân memtest (xem bên dưới)

  1. Tải xuống tệp nhị phân memtest từ: https://www.memtest86.com/doad.htmlm 'Hình ảnh để tạo Ổ đĩa USB có thể khởi động trên hệ thống Windows / Linux / Mac' vẫn ổn.
  2. Trích xuất tệp IMG (memtest86-usb.img)
  3. mở tệp img bằng công cụ tìm kiếm hình ảnh đĩa (nút chuột phải trên Ubuntu)
  4. từ trích xuất hình ảnh được gắn /EFI/BOOT/BOOTX64.efi
  5. tạo thư mục khởi động memtest86:
    sudo mkdir / boot / efi / EFI / memtest86
  6. sao chép BOOTX64.efi vào thư mục mới của bạn trên phân vùng khởi động (ví dụ: boot / efi / EFI / memtest86)
  7. mở grub-tùy biến
  8. Thêm mục menu, đặt tên, chọn loại: khác
  9. thêm trình tự khởi động sau (giả sử bạn khởi động từ 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. lưu và thoát grub-customizer

  2. khởi động lại và tận hưởng Memtest86


Đối với những người khác / tôi: # 3 Disk Image Morer = gnome-đĩa. # 6 phải là root. # 8 Tại sao loại khác không phải là memtest? # 9 Làm thế nào để bạn biết nếu bạn khởi động từ hd0? [nhấp vào chỉnh sửa mục nhập ổ đĩa khởi động của bạn và sao chép mục nhập cho setroot đó]. Cảm ơn vì câu trả lời tuyệt vời này btw.
dez93_2000

Nếu root ub Ubuntu của ai đó là hd2 thì có lẽ bạn thay đổi 0 thành 2 ở 4 vị trí, inc ahci? Bất kể tôi gặp lỗi, không tìm thấy thiết bị như vậy 1A22-970F & tệp '/EFI/memtest86/BOOTX64.efi'. Tệp là defo trong / boot / efi / EFI / memtest86 /. Có suy nghĩ gì không? Chúc mừng
dez93_2000

'lỗi đĩa hd2, không tìm thấy gpt2' hiện xuất hiện với 'không có thiết bị như vậy'; tập tin không tìm thấy không xuất hiện. không chắc tại sao nó lại thay đổi ...
dez93_2000
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.