web-dev-qa-db-ja.com

マルチブートUEFIシステムで、再起動する前に起動するシステムを選択することはできますか?

UEFIと2つの異なるOS(私の場合はWindows10とLinuxMint 17.x)がインストールされたコンピューターで、選択するためにシステムがシャットダウンするのを待つ必要がない方法があるかどうか疑問に思っています。起動する別のシステム。

さらに説明するには:
マルチブートシステムが通常機能する方法は、コンピューターの起動時に(uefiマネージャーやブートローダーなどから)メニューが表示され、起動するOSを選択することです。このメニューは通常、デフォルトを持つように構成できます。そのため、無人のままにすると、それ自体で「選択を行う」か、最後の選択を記憶して、別の選択を行うまで再利用します(少なくともそれは従来のGRUBの場合)。

私のコンピューターでは、Mintがデフォルトであり、ほとんどの場合機能します。ただし、Windowsを使用していて、Windowsを再起動したい場合は、GRUBメニューが表示されるのを待ってWindowsを選択する必要があります。そうしないと、Mintで再起動します。シャットダウン時にしばらく時間がかかる場合があります(特に更新プログラムをインストールする場合)。これは、コンピューターの近くにいることを意味します。そうしないと、離れることができます。

理想的には、コンピューターに再起動するように指示するときにOSを選択できるようにしたいと思います。

明らかに、これはどちらのシステムの標準の「シャットダウン」メニューの一部ではありませんが、実行するスクリプトで発生する可能性があると思います。
たとえば、GRUBを使用すると、構成ファイルを変更して特定のシステムをデフォルトとして設定してから再起動を開始するスクリプトを作成できる場合がありますが、時間がかかりすぎ、root権限が必要であり、ミントからの仕事。

特別な確認なしにどちらのOSからも機能する利用可能なブートマネージャー(たとえば、rEFInd)を使用するそのような方法はありますか?

編集:rEFInd自体がそのような機能をサポートしているようです。 リンク 同じページで、Linuxから変数を設定する方法も提案されています。また、MSDNには、Windows10で利用可能なC++コードを介してEFI変数を設定するメソッドがあるようです。 リンク
したがって、これを行う方法を設定することは可能であるように思われます。しかし、私は今から数日後までそれを試みることができません。

4
George T

あなたの質問自体にはいくつかの可能な答えが含まれています。もう1つは、EFIのBootNextパラメーターを操作することです。これにより、指定したターゲットブートプログラムにワンタイムブートが設定されます。これは、Linuxでefibootmgrユーティリティを介して実行できます。

  1. efibootmgr(または詳細を取得するにはefibootmgr -v)をrootとして入力するか、Sudoを使用して入力します。これにより、起動オプションのリストが表示されます。
  2. 起動する起動オプションを特定します。たとえば、Windowsを直接起動するには、Windows Boot Managerというタイトルのオプションが必要になる可能性があります。 (ただし、これらの名前は誤解を招く場合があることに注意してください。yourシステムの詳細を実験して理解する必要がある場合があります。)
  3. efibootmgr -n ####rootと入力するか、Sudoを使用して、次にBoot####で起動するようにシステムに指示します。ここで、####は起動するエントリの番号です。

Windowsでは EasyUEFI と同様のことができると思いますが、これはGUIツールであるため、説明するシナリオには役立たない可能性があります。おそらくbcdeditでうまくいくかもしれませんが、私はそれを調べていません。

2
Rod Smith