Memtest86 +オプションをGrubメニューに戻すにはどうすればよいですか?


34

UEFIを使用している場合、 UEFIを使用している場合、memtest86 +を起動できますか?」という質問を参照してください

Lenovo B570に64ビットバージョンのUbuntu 12.04をインストールした後、Grubで11.10をuEFIシステムでうまく再生できない場合と同じ問題に遭遇しました。問題を解決するために前回と同じ手法を使用し(Super Grub Disc LiveCDセッションを使用してGrubを修復する)、UbuntuとWindows 7の間でシステムを喜んでデュアルブートしました

ただし、今ではGrubメニューを起動すると表示されるだけです

  • Ubuntu、Linux 3.2.0-24-genericを使用
  • Ubuntu、Linux 3.2.0-24-generic(回復モード)
  • 以前のLinuxバージョン
  • Windows 7(ローダー)(/ dev / sda1上)
  • Windows Recovery Environment(ローダー)(/ dev / sda4上)

パッケージがインストールされていることを確認できるUbuntu Software Centerで確認したMemtest86 +を使用するオプションは表示されなくなりましたが、Grubメニューにもう一度実行するオプションを表示するにはどうすればよいですか?

私はもう試した:

sudo update-grub 

違いはありません。

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

結果:

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

そして入る

ls /etc/grub.d/

結果:

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

以下に詳述するようにスクリプトを追加して、マシンからコピーし、chmod + xとgrubの更新を行って、それが機能するかどうかを確認してください。どういたしまして-ようこそ。
23 93 26 35 19 57 3 89

回答:


19

ターミナルを開いて実行してみてください

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

そこにあるかどうかを確認します

grep memtest /boot/grub/grub.cfg

無効にしたのと同じようにした

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

端末にnanoを使用して、ファイルが存在しない場合は作成することができます

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

またはGUIエディターを使用して

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

で埋める

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

その後、必ずchmod + xコマンドを実行してください。

私はそれが欠落していることを少し心配します-あなたは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+結果:chmod: cannot access /etc/grub.d/20_memtest86+': No such file or directory
カバーネイル

1
私が見つかりました。20_memtest86+中に潜んで/etc/grub.d.bak/何とか。それを所定の場所に移動し、GRUBを更新し、すべてがうまく機能しました。
ナフトゥリケイ

3
update-grub何をしてもmemtestバイナリが見つからない:(
専門家

2
これは、memtestのGPLバージョンがEFIをサポートしていないためですか?EFIから起動する場合、Ubuntuに同梱されているものを使用してmemtestを動作させる方法はありませんか?
ジェフアトウッド

1
X @ ubuntuを入手しました:〜$ cat /boot/grub/grub.cfg | grep memtest ###開始/etc/grub.d/20_memtest86+ ### ### END /etc/grub.d/20_memtest86+ ###
user1945827

13

私は同じ問題を抱えていましたが、ラップトップにEFIがあるため、ubuntuから出荷されたmemtest86 +バージョン4.xは機能しません。EFIはバージョン5以降でのみサポートされているためです。

最新バージョンは非GPLであり、memtest Webサイトから手動でダウンロードする必要があります(ISOおよびUSBイメージがあります)が、少なくとも無料です。



最新バージョンは非GPLであり、memtest Webサイトから手動でダウンロードする必要があります(ISOおよびUSBイメージがあります)が、少なくとも無料です。memtest86は非GPLで独自仕様であり、memtest86 +はGPLです。
ラムチャンドラアプテ

6
apt-get install memtest86+

これにより、grubが自動的に再構成され、ブートメニューにエントリが追加されます。

エラーが発生した場合はmemtest86+ is already the newest version、使用します sudo apt-get install --reinstall memtest86+

他のすべてが失敗した場合は、CDに書き込んでブートできるブート可能なISOを取得できます。もちろん、UEFIを起動する場合は、代わりここにいる必要があります。


Ubuntu 16.04サーバーでは、これがまさにソリューションでした。なしでapt-get install memtest86+言及したファイル/etc/grub.d/20_memtest86+の私のシステム上に存在しませんでした。
mstrap

@mstrap、それは私にとっても解決策でした。私の答えが2回ダウン投票された理由がわかりません。
マイケルフランツル

1
この解決策はうまくいきませんでした-上記のコマンドはmemtest86+ is already the newest versionメッセージを受け取りました。元の質問は特にUEFIシステムでのmemtestに関するものですが、このソリューションは非UEFIシステムでのみ機能すると思われます。
JayDin

1
JayDin memtestがすでにインストールされているように、これも私にとってはうまくいきませんでした。synaptikパッケージマネージャーを使用してmemtestを削除し、再起動してから再インストールしました。これで問題は解決しました。
user111667

5

2日間でこの作業を行うことができなかったので、Synapticでgrubパッケージを確認しました...パッケージgrub-imagebootが存在しないことが問題の原因であるようです。

sudo apt-get install grub-imageboot

私はこれを試しましたが、うまくいきませんでした。
Hitechcomputergeek

2
memdiskが見つかりました:/ boot / memdisk Imagepath / boot / imagesが見つかりません
アーロンフランケ

1

これは、UEFIブート用のgrubブートメニューに最新の(無料ではない)memtest86 +を追加するために行ったことです。現在のmemtestバージョンは8.2です。必要なツール:Disk Image Mounterとgrub-customizer、後者は便宜上のものです:)ファイル:memtestバイナリ(下記参照)

  1. https://www.memtest86.com/download.htmからmemtestバイナリをダウンロードします 。「Windows / Linux / Macシステムで起動可能なUSBドライブを作成するためのイメージ」は問題ありません。
  2. IMGファイル(memtest86-usb.img)を抽出します
  3. ディスクイメージマウンターでimgファイルを開きます(Ubuntuではマウスの右ボタン)
  4. マウントされたイメージ抽出/EFI/BOOT/BOOTX64.efiから
  5. memtest86ブートディレクトリを作成します。
    sudo mkdir / boot / efi / EFI / memtest86
  6. BOOTX64.efiをブートパーティションの新しいフォルダーにコピーします(例/ boot / efi / EFI / memtest86)
  7. grub-customizerを開く
  8. メニュー項目を追加し、名前を付け、タイプを選択します:その他
  9. 次の起動シーケンスを追加します(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. grub-customizerを保存して終了します

  2. 再起動してMemtest86をお楽しみください


others / meの場合:#3 Disk Image Mounter = gnome-disks。#6はルートでなければなりません。#8なぜ型はmemtestではないのですか?#9 hd0から起動したかどうかをどのように確認しますか?[ブートドライブエントリの[編集]をクリックし、そのsetrootのエントリをコピーします]。この素晴らしい答えをありがとう。
dez93_2000

ubuntuのルートがhd2の場合、おそらく4か所で0を2に変更します。とにかく、このようなデバイス1A22-970Fとファイル '/EFI/memtest86/BOOTX64.efi'が見つかりませんというエラーが表示されます。ファイルは/ boot / efi / EFI / memtest86 /のdefoです。何かご意見は?乾杯
dez93_2000

「エラーディスクhd2、gpt2が見つかりません」が「no such device」と表示されます。ファイルが見つかりませんが表示されません。なぜ変わるのかわからない...
dez93_2000
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.