---
Linuxの場合
Linuxの場合は、/sys/firmware/efiの存在を確認する(Ubuntu 14.04で確認)。$ ls -al /sys/firmware/efi total 0 drwxr-xr-x 4 root root 0 Dec 2 23:54 . drwxr-xr-x 5 root root 0 Dec 2 23:54 .. drwxr-xr-x 2 root root 0 Dec 2 23:54 efivars -r-------- 1 root root 4096 Dec 2 23:54 systab drwxr-xr-x 27 root root 0 Dec 2 23:55 vars
Macの場合は違うことがあるようだが、未検証。詳しくはArch Wikiをどうぞ。
Windows8 の場合
GUIで調べる
Windows8以降の場合、コントロールパネル>管理ツール>システム情報の「システムの要約」に「BIOSモード」という項目があり、これが「UEFI」か「レガシ」かで判断することが可能。コマンドラインで調べる
PowerShellの「Get-SecureBootUEFI」コマンドレットの結果を見ることで確認できる(要管理者権限)BIOSの場合、サポートされていない旨が表示される:
PS C:> Get-SecureBootUEFI -Name SetupMode Get-SecureBootUEFI : このプラットフォームではサポートされていないコマンドレット: 0xC0000002 発生場所 行:1 文字:1 + Get-SecureBootUEFI -Name SetupMode + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotImplemented: (Microsoft.Secur...BootUefiCommand:GetSecureBootUefiCommand) [Get-SecureBootUEFI], PlatformNotSupportedException + FullyQualifiedErrorId : GetFWVarFailed,Microsoft.SecureBoot.Commands.GetSecureBootUefiCommand
UEFIの場合、変数の値に関するメッセージ、あるいは値そのものが表示される:
(値が定義されていない場合)
PS C:> Get-SecureBootUEFI -Name SecureBoot Get-SecureBootUEFI : 変数は現在定義されていません: 0xC0000100 発生場所 行:1 文字:1 + Get-SecureBootUEFI -Name SecureBoot + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (Microsoft.Secur...BootUefiCommand:GetSecureBootUefiCommand) [Get-SecureBootUEFI], StatusException + FullyQualifiedErrorId : GetFWVarFailed,Microsoft.SecureBoot.Commands.GetSecureBootUefiCommand
(値が定義されている場合)
PS C:> Get-SecureBootUEFI -Name SetupMode Name Bytes Attributes ---- ----- ---------- SetupMode {0} BOOTSERVICE ACCESS...
Windows7の場合
いまどきWindows7で調べるか、という感じがするのであまり調べてないが、コントロールパネル>管理ツール>システム情報も、Get-SecureBootUEFIもないので、別の方法を使う必要がある。「次のいずれかの方法を使って、Windows が正しいファームウェア モードでインストールされたことを確かめる」
に記述されている「GetFirmwareEnvironmentVariable」関数を呼ぶPowerShellスクリプトがScript Centerにある。
Determine UEFI or Legacy BIOS from PowerShell (Three methods)
bcdeditを実行して、ブートローダーのpathに.efiのファイルがあるかどうか確認する方法も恐らく使える。
(Windows7/BIOS)
C:\>bcdedit | find "path" path \Windows\system32\winload.exe
(以下はWindows8.1/UEFIの出力だが、似たような感じになるのではないかと)
C:\2>bcdedit | find "path" path \EFI\Microsoft\Boot\bootmgfw.efi path \Windows\system32\winload.efi
なお、Webで検索すると、パーティションテーブルがGPTかどうかを確認する方法がよく見つかるが、WindowsでもGPT + BIOSができるようなので、あまり正確でないのでは?と思うが未検証。
Windows 7: Boot Windows 7/8 from GPT on BIOS system : No hybrid MBRs or DUET!
0 件のコメント:
コメントを投稿