そのPCのファームウェアはBIOSか、それともUEFIか、知りたい?――確認するための6つの方法:その知識、ホントに正しい? Windowsにまつわる都市伝説(149)
PCのROMに組み込まれているBIOSは、PCの起動直後に実行され、OSのブートローダーを呼び出す役割を持ちます。BIOSの種類には、古い(旧、レガシー)BIOSと新しいUEFIの2つがあります。エンドユーザーの多くは、BIOSなのか、UEFIなのかを気にすることなく、PCを使っていると思いますが、知る必要がある場面も出てくるでしょう。その方法を幾つかピックアップしてみました。
UEFIの利点についてのおさらい(念のため)
Windowsのインストールをカスタマイズしたり、OSイメージ展開をしたり、起動問題をトラブルシューティングするようなITプロフェッショナルにとっては、そのPCが古い(旧、レガシー)BIOS(Basic Input/Output System)ベースなのか、新しいUEFI(Unified Extensible Firmware Interface) BIOSベースなのかを知ることは重要です(以降、本稿では古いBIOSを「BIOS」、新しいUEFI BIOSを「UEFI」と表現します)。
しかし、ほとんどのエンドユーザーさんにとっては、日常的なPCの利用において、どちら(BIOS/UEFI)であるかを気にすることはほとんどないし、両者の違いを知らなくても不自由はないでしょう。
一般的に古いPCはBIOSベース、最近の新しいPCはUEFIベースのものが主流です。UEFIは、Windows(特にWindows 10)のセキュリティ機能のシステム要件になっていたり、起動や再開が高速という利点があったりします。
UEFIは、より大きなディスクと多数のパーティションをサポートしているという利点もあります(BIOS/MBR《Master Boot Record》システムは最大4パーティション、最大2TBまで。UEFI/GPT《GUID Partition Table》システムは最大128パーティション、最大18E《エクサ》B)。
WindowsにおけるUEFIの利点について詳しく知りたければ、以下の公式ドキュメントをご覧ください。
- United Extensible Firmware Interface(UEFI)firmware requirements[英語](Microsoft Hardware Dev Center)
そのPCで既にWindowsが動いている場合は、BIOSまたはUEFIのいずれか適切な方に対応した方法でWindowsがセットアップされています。通常、ユーザーが変更するものではありません。UEFI対応のシステムを意図的にBIOSモードにすることも可能ですが、それはWindowsのインストール前に行うことであり、後から変更するとWindowsが起動できなくなるはずです。何らかの理由(OSが対応していなかったなど)で現状、BIOSモードで利用している場合に、新しいOSを新規インストールするタイミングで本来のUEFIモードに戻すということはあるかもしれません。
いずれにしろ、まずはBIOSかUEFIかを知ることが必要になる場合があります。今回はBIOSかUEFIかを知る方法を幾つかピックアップして紹介します。
[方法1]システム情報(Windows標準ツール)
「Windows 8」以降および「Windows Server 2012」以降では、Windowsの標準ツールである「システム情報」(%Windir%\System32\Msinfo32.exe:以下、Msinfo32)を起動すると、「システムの要約」の「BIOSモード」という項目で、BIOSかUEFIかを確認できます。
BIOSの場合は「レガシ」、UEFIの場合は「UEFI」と表示されます(画面1の左と中央)。なお、「Windows 7」以前および「Windows Server 2008 R2」以前の「システム情報」には、「BIOSモード」という項目は存在しません(画面1の右)。
Msinfo32が利用できる場合はこれが最も簡単な方法ですが、古いバージョンのWindowsや、Server CoreインストールのWindows Serverでは利用できません。
[方法2]WMICまたはSysteminfo(Windows標準コマンド)
コマンドプロンプト(またはWindows PowerShellウィンドウ)で、次のいずれかのコマンドラインを実行すると、BIOSのバージョン情報を取得することができます。
WMIC BIOS GET BIOSVersion
または
Systeminfo |findstr /i "BIOS"
「WMIC」はWindows Management Instrumentation(WMI)から情報を取得するコマンド、「Systeminfo」(%Windir%\System32\Systeminfo.exe)はMsinfo32のコマンドライン版のようなものです。取得したBIOSのバージョン情報に「BIOS」または「UEFI」という文字列が含まれていれば、それがヒントになるかもしれません(画面2)。しかしながら、得られる情報はあくまでもヒントであり、決定的なものではありません。
画面2 WMICやSysteminfoコマンドでBIOSバージョン情報から判断できる場合もあるし、できない場合もある。画面左はBIOSのWindows 7 SP1(BIOSと分かる)、画面右はUEFIのWindows 10(UEFIとは判断できない)
[方法3]Get-FirmwareType(PowerShell Gallery)
Windowsでファームウェアの種類を確認する方法としては、プログラム的にWin32 APIを利用する方法が用意されています。Windows 8およびWindows Server 2012以降は「GetFirmwareType」、Windows 7およびWindows Server 2008 R2以前は「GetFirmwareEnvironmentVariable」が用意されています。Msinfo32の「BIOSモード」項目は、GetFirmwareTypeが利用可能になったことにより追加されたのでしょう。
プログラマーではない一般ユーザーがWin32 APIを呼び出すのは容易なことではなく、現実的な方法ではありません。「PowerShell Gallery」で公開されている「GetFirmwareBIOSorUEFI」モジュールを導入し、「Get-FirmwareType」というコマンドレットを実行することで、GetFirmwareTypeまたはGetFirmwareEnvironmentVariableの適切なAPIを使用してBIOSまたはUEFIを識別することができます(画面3)。
- GetFirmwareBIOSorUEFI[英語](PowerShell Gallery)
画面3 GetFirmwareBIOSorUEFIモジュールのGet-FirmwareTypeコマンドレットによるBIOSとUEFIの識別(モジュールのインストール/アンインストールには管理者権限が必要)。画面左はBIOSのWindows 7 SP1、画面右はUEFIのWindows 10
BIOSかUEFIかを識別するためだけに、第三者が作成したPowerShellモジュールを導入するのはちょっと気が引ける、あるいは大げさ過ぎると思うかもしれません。モジュールをインストールするには管理者権限も必要です。筆者自身、Windows標準のコマンドやツールで確認できた方がよいと思います。
[方法4]Get-ComputerInfo(Windows PowerShell 5.1)
Windows PowerShell 5.1では、Msinfo32のPowerShell版ともいえる「Get-ComputerInfo」コマンドレット(Microsoft.PowerShell.Managementモジュールに含まれる)が利用可能になりました。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 次期Windows 10最新動向:リリース秒読みの「19H1」はこう変わる
間もなくリリースされるWindows 10の新しい機能アップデート「19H1」。それに実装される新機能をまとめてみた。また、同時に変更となるライフサイクルなどについても解説する。 - 【新元号発表目前!】Windows 10/Officeの新元号対応どうするどうなる!?
新元号への切り替えが2019年5月1日に行われる。Windows OS/Officeでこの新元号に対応するにはどうすればよいのか、注意すべき点はあるのかなどをまとめる。 - 【Windows 10】できる人は知っているキーボードショートカット
Windows 10でキーボードショートカットを使うと、マウスを使うよりも素早い操作が可能だ。ただ、種類も多く、知っていると便利なのに意外と使われていないものも多いようだ。ここでは基本的なキーボードショートカットを紹介する。 - Windows 10への移行計画を早急に進めるべき理由
本連載では、これからWindows 10への移行を本格的に進めようとしている企業/IT管理者に向け、移行計画、展開、管理、企業向けの注目の機能を解説していきます。第1回目は、「Windows 10に移行すべき理由」を説明します。