BIOS/UEFIの基礎と現代実装を総まとめ—歴史・機能・起動プロセス・セキュリティ・アップデートまで詳解
BIOSとは何か — 基本定義と歴史的背景
BIOS(バイオス、Basic Input/Output System)は、パーソナルコンピュータ(PC)におけるファームウェアの一種で、電源投入直後からOSが起動するまでの初期化・制御を担うソフトウェアです。最初のPC時代から存在する仕組みで、古典的なBIOSは16ビットのリアルモードで動作し、ハードウェア初期化、POST(Power-On Self Test)、ブートローダの読み込み(ブートストラップ)といった役割を果たしてきました。
BIOSの主な役割
ハードウェア初期化:CPU、メモリ、チップセット、ストレージコントローラ、グラフィックなどの初期設定を行う。
POST(自己診断):主要ハードウェアが正常に動作するかをチェックして、エラーがあればビープ音や画面表示で通知する。
ブート処理:ブートデバイス(HDD/SSD、光学ドライブ、USB、ネットワークなど)を順に探索してブートローダを読み込み、OSへ制御を渡す。
ランタイムサービス:古典的BIOSはOSやアプリケーション向けに基本的な入出力サービス(画面表示、キーボード入力、割り込みサービス)を提供していたが、現代OSは直接ハードウェアを制御するためこれらは限定的に使われる。
設定保存:ブート順序、クロック、パスワード、オンボードデバイスの有効/無効などの設定を保存・提供する。
BIOSの保存先と電源(CMOSバッテリ)
従来のPCではBIOS設定(日時や各種設定値)はCMOS RAMに保持され、マザーボード上のボタン電池(CMOSバッテリ)で通電状態を保持していました。ただしBIOSコードそのものはROM(EPROM/EEPROM)やフラッシュメモリに格納されます。最近のマザーボードやUEFIファームウェアでは、設定は不揮発性メモリ(フラッシュ)やNVRAMに直接保存されることが一般的で、CMOSバッテリの役割は限定的です。
Legacy BIOS と UEFI(統一拡張ファームウェアインターフェース)の違い
近年は「UEFI(Unified Extensible Firmware Interface)」が従来BIOSを置き換えつつあります。主な差分は次の通りです。
モードと機能:従来BIOSは16ビットリアルモードで制限が多い。一方UEFIは32/64ビットの環境で動作し、より高機能で拡張可能。
ブート方式:BIOSはMBR(Master Boot Record)方式に依存し、2TB以上のディスクや多数のパーティションに制限がある。UEFIはGPT(GUID Partition Table)を使い大容量ディスクや柔軟なパーティション管理をサポートする。
セキュリティ:UEFIはSecure Bootなどの機能で署名されたブートローダのみを許可するなど、起動時のセキュリティ機能が強化されている。
GUI・ネットワーク:UEFIはGUIベースの設定やネットワーク越しのリモート管理、ドライバのロードなどが可能。
BIOS/UEFIの内部構造(概要)
BIOS(またはUEFI)は以下のようなブロックで構成されます:初期ブートローダ、ハードウェア初期化ルーチン、デバイスドライバ(オプションROMを含む)、設定管理インターフェース(BIOSセットアップ)、ランタイムサービス。UEFIではさらにモジュール化されたアプリケーションやドライバ、NVRAM、ネットワーク機能などが含まれます。
起動の流れ(シンプルな説明)
- 電源投入 → ハードウェア供給(電源安定化)
- BIOS/UEFIロード → POST実行
- ブートデバイスの探索(ブート優先順位に従う)
- ブートローダ(MBRあるいはEFIブートローダ)を読み込み、OSに制御を移す
実運用でよく使う操作・コマンド
- BIOSセットアップ画面の呼び出し:電源投入時に Del / F2 / F10 / Esc / F12 など(機種による)
- WindowsでBIOS情報を確認:msinfo32(システム情報)、あるいはPowerShell/WMICで Win32_BIOS を参照
- LinuxでBIOS/UEFI情報:sudo dmidecode -t bios、EFI環境なら sudo efibootmgr -v でブート設定確認
- 仮想環境:SeaBIOS(レガシーBIOS)、OVMF(UEFI実装)などが使われる
BIOS/UEFIのアップデート(フラッシュ)と注意点
BIOSの更新(フラッシュ)は新しいハードウェア対応やバグ修正、セキュリティパッチの適用に有効ですが、失敗すると起動不能(いわゆる“ブリック”)になるリスクがあります。以下の点に注意してください。
- メーカー公式のアップデートを使う(マザーボード/PCベンダーのもの)
- 電源断リスクを避ける(ノートはバッテリを接続、デスクトップは無停電電源推奨)
- 現在のバージョンと変更内容(リリースノート)を確認する
- アップデート手順をよく読み、必要ならBIOS設定のバックアップ/エクスポートを行う
セキュリティ上の重要性と脅威
ファームウェアはOSよりも下位で永続的に存在するため、攻撃者がBIOS/UEFIを書き換えると検出や除去が難しく、持続的な不正コード実行や権限昇格につながる可能性があります。近年はUEFIの脆弱性やファームウェア領域を狙うマルウェア、そしてサプライチェーン攻撃が注目されています。対策としてはSecure Bootの有効化、ベンダー提供の署名検証、ファームウェア整合性チェック、必要なアップデート適用が重要です。
実務的なトラブルシューティングのコツ
- POSTエラーのビープ音やコード(マザーボードにより異なる)を確認する
- 起動しない場合は最小構成(CPU/1枚RAM/オンボードグラフィック/ストレージ除外)で試す
- CMOSクリア(ジャンパやボタン電池一時切断)で設定を初期化して起動を試みる
- BIOSリカバリ機能(デュアルBIOS、USBリカバリ)を持つ機種があるのでマニュアル参照
オープンソースや代替ファームウェア
商用BIOS/UEFIの代替として、coreboot(旧LinuxBIOS)やSeaBIOS、EDK II/OVMF(UEFIのオープン実装)などのプロジェクトが存在します。これらはソース公開や監査可能性の高さから、組み込み用途や研究目的で利用されることがあります。ただし、対応ハードウェアが限定される点に留意してください。
まとめ(実務上のポイント)
- BIOS/UEFIはPC起動の根幹であり、正しい理解と適切な管理が重要。
- UEFIは機能・セキュリティ面での進化版だが、設定ミスや脆弱性は依然リスク。
- アップデートは有益だが慎重に行い、ベンダー手順を遵守する。
- 侵害の可能性がある場合はファームウェア整合性チェックや専門家による解析を検討する。
参考文献
- BIOS — Wikipedia(日本語)
- UEFI Forum(公式サイト)
- Secure Boot の概要 — Microsoft Docs(日本語)
- Intel — UEFI とファームウェアに関する資料
- coreboot(オープンソースファームウェア)
- SeaBIOS(レガシーBIOSのオープン実装)
- dmidecode マニュアル(Linux)
- Win32_BIOS クラス — Microsoft Docs(BIOS情報確認)
- LoJax — 初のUEFIルートキットに関する分析(WeLiveSecurity / ESET)


