OSはどのように起動順序を変更できますか?


2

UEFIとGRUBを使用して起動するマシンでは、Windowsが起動順序を変更することにしました。私は、ブート順序は私と私のマザーボードのためだけのもので、ブートローダー、OS、その他すべてのものから見れば単に存在しないと考えました。 OSはどのようにこれを変更できますか。

この動作に関する質問は以前にもありました。

Windows 8が起動順序を変更

この質問は、具体的には「これはどのように可能ですか?」という質問です。 「なぜこれが起こるのか」、「これは起こるのか」、または「これを有効/無効にすることはできますか」ではなく。


easyuefiをチェックしてください、そしてそれはウィンドウズの下で走っていて、uefiブートエントリーをリネーム/修正/リオーダすることができます。そうはい、それは間違いなく可能です。
Chris.C

回答:


3

まあ、OSは何ですか インストール 最初はブートローダなので、明らかにそれをある程度制御しています。

UEFIファームウェアには、メニューの選択やその他のパラメータを次のように保存する統合ブートマネージャがあります。 EFI変数 といった Boot0001BootOrderBootNext

それらは他のファームウェア設定と同じNVRAMに保存されています - 実際、多くのファームウェア設定もEFI変数として公開されています - そしてオペレーティングシステムはEFIコードを呼び出すことによってそれらを読み書きすることができます。 (UEFIインターフェースの定義が多少良くなっている点を除けば、古いスタイルの割り込みでBIOSを呼び出すのと似ています。)

# ls /sys/firmware/efi/efivars/Boot*
/sys/firmware/efi/efivars/Boot0003-8be4df61-93ca-11d2-aa0d-00e098032b8c
/sys/firmware/efi/efivars/Boot0004-8be4df61-93ca-11d2-aa0d-00e098032b8c
/sys/firmware/efi/efivars/Boot0005-8be4df61-93ca-11d2-aa0d-00e098032b8c
/sys/firmware/efi/efivars/Boot0006-8be4df61-93ca-11d2-aa0d-00e098032b8c
/sys/firmware/efi/efivars/BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c
/sys/firmware/efi/efivars/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c

# efibootmgr --verbose
BootCurrent: 0004
Timeout: 2 seconds
 BootOrder:0004,0003,0005,0006  Boot0003 * WindowsブートマネージャHD(1、GPT、785c8ca2-bb16-48fd-917b-19d69543338f、0x800,0x32000)/ファイル(\ EFI \ Microsoft \ Boot \ bootmgfw.efi)
Boot0004 * LinuxブートマネージャHD(1、GPT、785c8ca2-bb16-48fd-917b-19d69543338f、0x800,0x32000)/ファイル(\ EFI \ gummiboot \ gummibootx64.efi)
Boot0005 *ハードドライブ掲示板(HD 、、 0x0)P0:ST9640320AS。
Boot0006 * CD / DVDドライブ掲示板(CD-ROM 、、、 0x0)P1:SlimtypeDVD A DS8A5SH。

#efibootmgr --bootnext 0003  BootNext:0003  BootCurrent:0004
タイムアウト:2秒
BootOrder:0004,0003,0005,0006
...

#efivar --print --name 8be4df61-93ca-11d2-aa0d-00e098032b8c-Boot0004
GUID:8be4df61-93ca-11d2-aa0d-00e098032b8c
名前: "Boot0004"
属性:
    不揮発性
    ブートサービスへのアクセス
    ランタイムサービスアクセス
値:
00000000 01 00 00 00 72 00 4c 00 69 00 6e 00 75 00 78 00 | .... r.L.i.n.ux. |
00000010 20 00 42 00 6f 00 6f 00 74 00 20 00 4d 00 61 00 | 。ブート。 。
00000020 6e 00 61 00 67 00 65 00 72 00 00 00 04 01 2a 00 | n.a.g.e.r ..... * | |
00000030 01 00 00 00 00 00 00 00 00 00 00 20 03 00 | ............... |
00000040 00 00 00 00 a2 8c 5c 78 16 bb fd 48 91 7b 19 d6 | ...... \ x ... H。{.. |
00000050 95 43 33 8f 02 02 04 04 44 00 5c 00 45 00 46 00 | .C3 ..... D \ \ E.F. |
00000060 49 00 5c 00 67 00 75 00 6d 00 6d 00 69 00 62 00 | I。\。g.u.m.m.i.b |
00000070 6f 00 6f 00 74 00 5c 00 67 00 75 00 6d 00 6d 00 | o.o.t \ \ g.u.m.m |
00000080 69 00 62 00 6f 00 6f 00 74 00 78 00 36 00 34 00 | i.b.o.o.t.x.6.4 |
00000090 2e 00 65 00 66 00 69 00 00 7f ff 04 00 | ..e.f.i ....... |

#efivar --print --name 8be4df61-93ca-11d2-aa0d-00e098032b8c-BootNext
GUID:8be4df61-93ca-11d2-aa0d-00e098032b8c
名前: "BootNext"
属性:
    不揮発性
    ブートサービスへのアクセス
    ランタイムサービスアクセス
値:
00000000 03 00 | .. | 

このリストには、UEFIブートローダーと「BIOS互換モード」MBRディスクの両方が含まれていることがよくあります。


BIOSシステムでは、この設定に直接アクセスすることはできません。しかし、OSはもちろん既存のブートセクタを自分自身で上書きすることができ、実際にはほとんどの場合そうします。 なぜなら 設定はありません。例えばWindowsをインストールする 常にWindowsのブートセクタを書き込みます


サイドノート: "EFI変数"はEFIに固有のものではありません - 同様のテクニックも存在していました ARCシステム 元々Windows NTが開発されたもの。 Windowsで使用されるNTLDRブートローダと "boot.ini"ファイルは、 エミュレーション ARCが本来提供していたものについて。


-2

OSだから可能だ する ブートローダを制御します。あなたはブートローダをBIOSと混同していますが、それは全く違います。

コンピュータが起動すると、次のことが起こります。

  1. POSTチェックを行います
  2. 制御はBIOSに渡されてどちらを選択するか デバイス から起動する。これはOSが制御できないものです。
  3. 起動元のデバイスが見つかると、そのデバイスに制御が渡されます。
  4. デバイスはブートローダをロードします。これにより、自動的にまたはユーザの制御下でOSを起動できます。
  5. 制御はついにOSに渡されます。

一般的に、ブートローダはハードドライブのMBRセクション(最初の数セクター)にあり、通常はOS自身がアクセス可能なファイルを参照します。 できる 必要に応じて起動順序を変更します。


あなたはそれが可能であることを示しますまだ順序を変える方法を説明しません。
Ramhound

経験的には可能です。この答えはもっと具体的になるかもしれませんが、それは私がトリックだと思うことを示唆しています。マザーボードとOSはどちらも、マザーボードに保存されている設定を変更するのではなく、起動順序を変更するためにハードディスクに書き込むだけです(実際にはマザーボードに保存されている他のマザーボード設定とは異なります)。それでも複数の物理ディスクの状況は不明のままですが、私は質問者なのでわかりません。
Praxeolitic

この答えは BIOS ブートプロセス、しかし質問は明確にについてです EFI / UEFI ブートプロセス、これは大きく異なります。
Rod Smith
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.