web-dev-qa-db-ja.com

Windows 10Grubの交換

私は最初のディストリビューションとしてManjaroをインストールしましたが、grubまですべてが順調に進みました。 LinuxではなくgrubメニューでWindows10を選択すると、Windowsの起動に通常よりもかなり時間がかかります。一度起動すると、問題ないように見えます。次の起動でgrubが完全にスキップされ、Windowsが自動的に読み込まれるまでです。

grubを取り戻すために私が見つけた唯一の方法は、UEFI設定を入力し、Manjaroが一番上になるように起動順序を再配置することです。 Windowsが起動するとすぐに、これが再配置され、Manjaroがリストの一番下に表示されます。

総括する:

  • Grubは、ウィンドウが読み込まれるまで正常に機能します。読み込まれると、Grubは使用されなくなります。
  • Grubを復元するには、UEFIの起動順序を並べ替える必要があります。これは、次のWindowsが起動するまで機能します
  • この問題はLinuxでは発生しません。何回も問題なく起動できます。

grubが常に使用されるように、Windows 10がUEFIで起動順序を並べ替えるのを防ぐにはどうすればよいですか?

3
Harry

この問題はWindows10の設定が原因であることが判明しました。コマンドを使用するbcdedit /set {bootmgr} path \\EFI\\Manjaro\\grubx64.efi問題を完全に修正したようです。 Manjaroブートローダー(grub)で最後に起動されたOSに関係なく、引き続き表示されます。

2
Harry

これはこの問題の上位の結果として表示されるため、すべてのディストリビューションの情報を追加します。

選択した回答の「Manjaro」文字列はOPディストリビューションに固有であるため、これは機能しない可能性があります。この回答をすべてのLinuxディストリビューションでより一般的にするには:

Step1:ここのオプションの1つを使用してEFIパーティションを参照します Windows 10でefiパーティションにアクセスする方法は? (私にとってはadmincmdターミナルの「mountvolP:/ S」が機能しました。)「dirP:\ EFI」を使用して、このUEFIパーティションにディストリビューションが設定するパスを確認します。例えば。 Fedoraの場合は\ EFI\Fedora\grubx64.efiになります

ステップ2:bceditコマンドを実行しますbcdedit/set {bootmgr} path\EFI\YourDistroPath\grubx64.efi

ステップ3:Windows 10で高速スタートアップを無効にするこれは、WindowsUpdateによって変化し続けます。私の場合、電源とスリープの設定->追加の電源設定->電源ボタンの機能を選択します。 [現在利用できない設定を変更する]をクリックすると、ファストスタートオプションが有効になります。

ステップ4:シャットダウンします。再起動しないでください。エボイラ。

ステップ5:(オプション)Microsoftサポートに電子メールを送信し、ブートローダーを破壊するソフトウェアの出荷を停止するように依頼してください。

1
carlsborg

EFI設定ですべてのfastboot関連オプションを無効にします。これで問題が解決しない場合は、ESPパーティション内のすべてのファイルをバックアップしてから、grubx64.efiを/ EFI /に移動またはコピーしてみてください。 Boot/bootx64.efiおよび/またはそれでも機能しない場合は、windows efiファイルbootmgw.efiを別の場所にコピーし、別のファイル名(たとえば、win.efi)を付けてから、grubx64.efiを古いbootmgwにコピーします。 efiを実行し、win.efiの新しいメニューエントリを作成します。それでもそのようには機能しません。何を言うかわかりません。バックアップすることを忘れないでください!!また、ウィンドウやgrubの更新によって変更が上書きされる可能性があることに注意してください。 。

0
Andrei Scutariu

私の場合、bcdeditを使用してgrubを修正できませんでした。

私が見つけた解決策 どこかオンライン (unix.stackexchange.org)には、Windowsブートマネージャーを非アクティブ化することが含まれます。 Linux(可能な場合は元のインストールまたはライブCD/DVD)にアクセスして、次のコマンドを実行します。

efibootmgr

この方法は、LinuxがUEFIモードでインストールされている場合にのみ機能するため、Linuxがレガシーモードでインストールされている場合はエラーが発生することに注意してください。 UEFIモードでインストールした場合は、いくつかの情報とリストが表示されます。リストのどこかにWindowsブートローダー/マネージャーとLinuxがあります。 Windowsの優先度が高くなる可能性があります(起動順序はリストより上です)。

すべてではないにしても、一部のエントリの横に星*があり、アクティブであることを示しています。

Windowsエントリの横にある4桁のブート番号を見て、実行します

Sudo efibootmgr --bootnum #### --inactive

これにより、Windowsエントリが非アクティブ化されます。また、非アクティブ化されたWindowsの優先度がまだ高くない場合は、優先度が高いことを確認してください。

Sudo efibootmgr --bootorder ####,$$$$,&&&&,%%%%

ここで、####はWindowsのブート番号です。

ここで再起動すると、Linuxオプションが最も高い優先度で有効になっている場合は、grubで起動します。

Windowsは、非アクティブ化されていることを認識していないように見えるため、Windowsを起動したり、更新したりしても、元に戻らないことに注意してください。

私は地元のLinuxinstallfestに参加しました。そこでは、関心のある人々のためにLinuxをインストールします。ほとんどの場合、Windowsの隣のセカンダリOSとしてインストールします。私はまだこの方法が失敗するのを見ていません、そして私はいくつかのディストリビューション(主にUbuntuとMint)といくつかのベンダー(Asus、Acer、HP、Lenovo)でそれを試しました。

0
Karlovsky120