Windows10、Server2019のBIOSモードがレガシーかUEFIモードか確認する方法、コマンド

以前、Windows Server 2012 R2を構築していた時に、サーバのローカルディスクが2テラバイト以上で構成されていて、通常のOSインストールができない事象が発生しました。理由として、BIOSモードによって変わるようで、これまでのレガシーモードではなく、UEFIであれば、2TB以上のディスクサイズをサポートするようです。


また、2TB以上のパーティションを作成するには、パーティション作成の前に、ディスクをGPT (GUID Partition Table)ディスクに変換する必要があり、未使用のパーティション未設定のディスクのみがGPTディスクに変換可能になります。


このあたりが意外と難しいのですが、最近のOSはUEFIでセットアップされていることが多いみたいです。そして、実際にOSがどちらで構成されているのかを確認する方法があります。


通常、PC起動時のブートデバイスメニューでBIOSUEFIかを選択できるようになっています。


UEFIについての詳細は、マイクロソフトの公式サイトを参照してください。

>>UEFI とは(Microsoft

http://windows.microsoft.com/ja-jp/windows-8/what-uefi

 

UEFIのメリット】※サイトより抜粋

▼ブートキット攻撃に対する起動前 (プリブート) プロセスの保護によるセキュリティの強化。
▼起動時間と休止状態からの復帰の時間の短縮。
▼2.2 TB を超えるドライブのサポート。
▼システムがスタートアップ時に 172 億 GB を超えるメモリをアドレス指定するために使用できる、最新の 64 ビット ファームウェアバイス ドライバーのサポート。
UEFI ハードウェアで BIOS を使用する機能。


UEFIは大容量のディスクにもOSをインストールすることができるので、俗に言う2TBの壁を超えることができます。ただ、一般的にサーバでも2TBを超えることは多くはないとは思いますが、ゼロではないので、意識する必要があります。


そして、この設定が現状どうなっているのかを確認する方法、コマンドがいくつかあるので紹介します。

 

 

■システム情報(msinfo32)で確認する


まずは、システム情報(msinfo32)です。


これを表示する方法は2通りあります。


コマンドプロンプト、ファイル名を指定して実行で「msinfo32」を実行する
②「ここに入力して検索」で「システム情報」を検索
③「コントロールパネル」→ 「システムとセキュリティ」 →「管理ツール」 →「システム情報」


以下のシステム情報の画面が表示されます。

f:id:merrywhite:20200716170136j:plain



そこに、「BIOSモード」の項目があるので、そこで「レガシ」となっていたらBIOSモードという事になります。また、UEFIモードの場合は、「UEFI」と表示されます。上記は検証環境用のWindows Server 2012 R2で「レガシ」となっていますが、自宅のWindows10は「UEFI」になっていました。


■bcdeditで確認する

「bcdedit」をコマンドプロンプトで実行しても確認できます。自宅のWindows10で実行した結果です。「path」の部分がUEFIなので「efi」になっています。
C:\WINDOWS\system32>bcdedit

Windows ブート マネージャー
--------------------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description Windows Boot Manager
locale ja-JP
inherit {globalsettings}
default {current}
resumeobject {e50f6f6e-0438-11e8-a49e-dc62d5590ddb}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 0

Windows ブート ローダー
--------------------------------
identifier {current}
device partition=C:
path \WINDOWS\system32\winload.efi
description Windows 10
locale ja-JP
inherit {bootloadersettings}
recoverysequence {e50f6f70-0438-11e8-a49e-dc62d5590ddb}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject {e50f6f6e-0438-11e8-a49e-dc62d5590ddb}
nx OptIn
bootmenupolicy Standard

C:\WINDOWS\system32>


一方、仮想環境のWindows Server 2016では、「exe」でレガシーモードになっていますね。

C:\Users\Administrator>bcdedit

Windows ブート マネージャー
--------------------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
description Windows Boot Manager
locale ja-JP
inherit {globalsettings}
bootshutdowndisabled Yes
default {current}
resumeobject {42150759-32bc-11e7-8d02-a8370f41e58c}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30

Windows ブート ローダー
--------------------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Windows Server 2016
locale ja-JP
inherit {bootloadersettings}
recoverysequence {4215075b-32bc-11e7-8d02-a8370f41e58c}
recoveryenabled Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {42150759-32bc-11e7-8d02-a8370f41e58c}
nx OptOut

後は、GPTとMBRの確認をするなら、デバイスマネージャーで対象のディスクのプロパティから確認することもできます。サーバならコンピュータの管理からですね。


ちなみに、UEFIで構成されたパソコンの場合、「回復パーティション」というパーティションが作成されるよになるようです。実際にレガシー、MBRで構成されたOSでは表示されていませんでした。インストール時にも自動で表示されるのはUEFIとして認識されているからですね。


OSインストール時にこの回復パーティションが表示された場合は、UEFIとして認識されているというチェックにもなります。また、UEFIの場合は、OSがそもそもサポートしているかという問題もありますが、最近のOSならほぼ問題ないと思います。


後、UEFIを採用する場合、使えるツール(起動に関連する)などが制限されるようなので、サーバー構築時には注意が必要です。