web-dev-qa-db-ja.com

GRUBが設定ファイルをロードしない、またはLinuxを自動的に起動しない

私はラップトップ(Asus Zenbook UX305)のウィンドウで基本OSをデュアルブートしようとしていました。そのために、Windowsディスクマネージャーを使用してWindowsパーティションを縮小し、エレメンタリーインストーラーの[Windowsと一緒にインストール]オプションを使用してLinuxパーティションを自動的にセットアップしました。インストール後に再起動すると、grubコンソールになりました。コマンドを使用して手動でLinuxを起動できました

grub> set root=(hd0,gpt4)
grub> linux /boot/vmlinuz-3.19.0-26-generic root=/dev/sda4
grub> initrd /boot/initrd.img-3.19.0-26-generic
grub> boot  

コマンドを実行していることがわかりました

grub> configfile (hd0,gpt4)/boot/grub/grub.cfg

発生するはずの通常のGRUBメニューをロードします。そのため、設定ファイル自体に問題はないようです。ルートとプレフィックスが(hd0、gpt1)にあることもわかりました。

grub> set root=(hd0,gpt4)
grub> set prefix=(hd0,gpt4)/boot/grub
grub> insmod normal
grub> normal

通常のgrubメニューもロードしました。おそらく問題は、grubが間違ったパーティションを探しているということですか?

私のBIOSでは、grubを使用するか、Windowsブートローダーを使用してブートするかを選択できます。 Windowsブートローダーを選択すると、問題なく直接Windowsが起動します。

ただし、再起動後に修正を適用する方法はありません。 grub-install /dev/sdaを再実行し、grub-mkconfigを使用して構成ファイルを再作成し、Ubuntuブート修復guiツールを使用してみましたが、どれも機能しませんでした。どちらか一方または両方のOSを再インストールせずにこの問題を修正する方法はありますか?可能であれば、Windowsを再インストールする必要はありません。

4
user34703

GRUBメニューは/boot/efi/EFI/grub/の不正なefiファイルを読み込んでいるため、ロードに失敗したようです。

ElementaryOSを起動したら、次のコマンドを実行して、そのフォルダー内のgrubx64.efiファイルを置き換えます。

cd /boot/efi/EFI/grub
Sudo cp grubx64.efi grubx64.efi.backup (just in case)
Sudo rm grubx64.efi
Sudo cp /boot/grub/x86_64-efi/grub.efi /boot/efi/EFI/grub/grubx64.efi

この解決策は、報告されたelementaryOSのバグについてユーザーが話し合った結果です。詳細は以下をご覧ください https://bugs.launchpad.net/elementaryos/+bug/1492801

私はあなたとまったく同じ問題に直面し(elementaryOS Freya 0.3.1をWindows 10と一緒にインストールしました)、この解決策を見つける前に、あなたが説明した手順に従いました。

修正を適用する前に、Windows 10で高速起動を無効にしていましたが、効果があるかどうかはわかりません。 http://www.tenforums.com/tutorials/4189-fast-startup-turn-off-windows-10-a.html を参照してください

さらに、これを機能させるには、セキュアブートを無効にする必要がありました。セキュアブートを有効にすると、UX305がGRUBを完全にロードできませんでした。起動時に最初の画面でEscキーを押し、次にセットアップに入り、そこからセキュアブートをオフにします。または、セキュアブートを機能させる方法があるかもしれませんが、今のところこの解決策に満足しています-私のUX305がGRUBメニューにWindowsオプションを追加してロードします!

2
thompsonsj

同じ問題が解決策を見つけました:
1)グラブレスキューモードで「set」を実行します

2)それは私にprefix =(hd1、gp1)/ boot/efi/EFI/ubuntu /を示します
3)私の場合、KDE ​​NEONがあるため、/ boot/efi/EFI/ubuntu /フォルダーは存在しませんが、// boot/efi/EFI/neon /フォルダーは存在します。 SO問題は、存在しないフォルダを指していることです
4)それで、すべてのフォルダ/ boot/efi/EFI/neon /を/ boot/efi/EFI/ubuntu /にコピーしました。それはトリックをしました
私の場合も、hd1、gpt5を指す必要があるため、誤りです(hd1、gp1)。しかし、私はそれを変更し、それはうまくいきました。
変更したのは、msdos形式を使用するためのファイル/boot/efi/EFI/ubuntu/grub.cfgです。

search.fs_uuid xkjdiw-18e9-4d0a-ac55-2skjdh8425f root hd1,gpt5 
set prefix=($root)'/grub'
configfile $prefix/grub.cfg
0
Pol