UEFI BIOS改造の予備知識

最終更新日

Intel CPU対応マザーボード + UEFI BIOS 向けの記事です。

BIOS改造の危険性について

BIOS更新に失敗したり、使ったBIOSファイルに誤りがあると、BIOSが正常に動作しません。

PCの電源を入れた時、最初に実行されるプログラムがBIOSです。BIOSが動作しなければ、PCが使えなくなります。

↓ 以前、UEFI BIOSを壊したときの話。
BIOS飛んだ。ブートブロックまで飛んだ。

結局、SPI Programmerを使って復旧させました。

メーカー以外の第三者によって修正・変更されたBIOSは、改造BIOS(Modified BIOS, Mod BIOS)と呼ばれます。メーカーの動作保証はありません。動作確認をするのは自分です。

PC環境が違う人のBIOS改造方法を、そのまま真似しないでください。自分のPC環境に合わせる必要があります。(マザーボードの型番・BIOSバージョン・CPUが同じ場合は、ほぼ同条件と考えていいでしょう)

BIOS改造の目的

  • 制限の解除
  • BIOS初期設定の変更
  • BIOS設定画面の項目の表示/非表示を変更
  • Microcodeのupdate・追加
  • BIOS内蔵ドライバ・各種機能の変更
  • PC起動時のロゴの変更
  • マシン固有のデータの変更
    (BIOS・OS・特定のソフトウェアの動作に影響がある場合)

どうやってBIOSを改造するのか。

BIOSファイルを部分的に変更。 → そのファイルでBIOS update (BIOS Chipの内容を書き換え)

ごく一部のデータについては、直接BIOS Chip内の該当箇所だけを書き換えることもできます。それには、専用のBIOSツールを使う必要があります。(例: AMI DMI Editor … AMI BIOS用)

ただし、BIOS保護機能があるため、書き換えを拒否されることがあります。

BIOSが書き込まれている場所

BIOSのコードは、マザーボード上のBIOS Chipにflash(write)されています。BIOS Chipは不揮発性です。(通電を切っても記憶が消えません) マザーボード上に1コか2コ搭載されています。ベンダーのスペック表にはだいたい「BIOS ROM」と書かれています。

BIOS Chipとして使われるMemoryの種類・形状はいろいろ。現在多く使われている種類は、Serial Flash Memory。デスクトップ用マザーボードでよく見る形状は、SOIC8とDIP8です。(8は足の数)

  • SOIC8

    マザーボードに直にハンダ付け。

  • DIP8

    マザーボード上のソケットに差し込まれている。取り外し可能。

実は、BIOS updateでは、いったんBIOS chip全体または部分的にerase(消去)してからflashされます。これはSerial Flash Memory等の性質上、上書きできないからです。

BIOSのユーザー設定データ

内蔵時計の時刻(RTC = Real Time Clock)とともに、別の場所に保存されています。保存場所はチップセットの世代によって異なります。

揮発性(通電が切れると記憶が消えます)ですが、PCの電源を落としてもバックアップバッテリー(ボタン電池)があるため、データは消えません。

このデータを消す(=BIOS設定をデフォルトに戻すこと)には、バックアップバッテリーも含め、マザーボードへの通電を完全に絶ちます。(CMOSクリア)

BIOSの構成・内容・サイズに影響する条件

  • メーカー製PC / マザーボード単体購入・BTO
  • PCの機種 (メーカー製PCの場合)
    • Desktop / Laptop
  • マザーボードの型番・Revision

    • マザーボードベンダー (ASUS / ASRock / GYGABYTE / MSI / Intel / EVGA 等)
    • 対応CPUのメーカー (Intel / AMD 等)
    • チップセットの世代・種類
    • BIOS Chipのタイプ・容量
    • BIOSベンダー (AMI / AWARD / Phoenix / Insyde / Intel 等)
    • UEFI BIOS / Legacy BIOS
  • BIOSバージョン

BIOS Chipの最大容量とBIOSファイル sizeの例

2018年発売 ASUS ROG STRIX Z390-F GAMING (UEFI BIOS)
2015年発売 ASUS Z170 PRO GAMING (UEFI BIOS)
BIOS Chip: 128MB
BIOSファイル: 16MB
2007年発売 ASUS P5B-Plus (legacy BIOS)
BIOS Chip: 8MB
BIOSファイル: 1MB

BIOS Chipの内容

Intel Skylake CPU対応チップセット搭載マザーボードの場合は、次のように複数のregion(領域)に分けられています。

  • Descriptor (DSC)
  • Intel ME
  • GbE (Intel integrated LAN)
  • BIOS
  • PDR (Platform Descriptor Region)
Descriptor region
各regionのスペースの割り当て、読み書きの許可、ベンダー固有のデータ等の情報
このregionは必ず先頭に配置される。
Intel ME region
Intel MEアプリケーションのコードと設定データ (Intel ME Firmware)
GbE region
Intel integrated LANのコードと設定データ
(PDR regionが無い場合もある)
BIOS region
コンピュータ全体にかかわるコードと設定データ
PDR region
製造元によるカスタム機能の説明
(PDR regionが無い場合もある)

参照: System Tools for SkyLake - Intel(R) Management Engine Firmware 11.0 User Guid

※ ハードウェアベンダー(製造元)によって、製品(型番)固有のデータが組み込まれることがあります。

BIOS updateで更新される領域

PC・マザーボード付属のBIOS update機能の場合
主にBIOS region部分、時にはME region部分も。
Full BIOSファイルを使用する場合も、同上。
他のBIOS Flashing Toolの場合
BIOS Chip全体の更新や、部分的な更新が可能なものがあります。
ただしWrite Protectがかかっているregionは更新できません。
注意

後者のBIOS Flashing Toolを使用する場合は、本当にそのregionやblockを更新する必要があるのかよく考えてください。

マザーボードやメーカー製PCによっては、製品やOEM固有のデータが書き込まれていないとBIOSが動作しないことがあります。(経験上、ASUS製マザーボードのUEFI BIOSは要注意)

改造するBIOSファイルの選定

  • ベンダー(メーカー)が配布しているBIOSファイル

    PCの機種ごとに異なる。他機種のBIOSファイルは使用不可。
  • 自分のマシンからバックアップ(output)したBIOSファイル

バックアップの場合は、正常に動作している時のもの、できれば最近バックアップしたもの。ベリファイをして破損やバックアップのミスがないことを確認してください。

基本的に最新バージョンを使います。ただし、特殊な目的には、古いバージョンを使う必要があるかもしれません。

BIOSファイルとして配布されてるものには次の2種類があります。

  • BIOS Chipの全regionが含まれている。
  • BIOS region(とIntel ME region 等)だけ。

BIOSファイルを扱う際には、「Full BIOS(全region)」のファイルと「BIOS regionのみ」のファイルを区別する必要があります。

自分でPCからバックアップしたBIOSファイルは、工場出荷時のBIOSとは同一ではありません。

UEFI BIOSの場合、PCを使用していくうちに、BIOS Chipの内容が部分的に書き換えられていきます。割と頻繁に。(Intel Skylake cpu + Intel 100-series chipset + AMI UEFI BIOS)

Intel MEの動作も関係しています。
参照: Intel ME・CSMEとは何か?

バックアップBIOSファイルでME regionも更新した場合、BIOS設定画面でIntel (CS)MEのバージョンが0.0.0.0と表示されることがあります。

(バックアップではない、cleanな)Intel ME FWファイルでME regionを更新すれば直ります。→ 参照: Intel (CS)ME Firmware

たとえ改造には使わなくても、BIOSのバックアップは取っておきましょう。

BIOSファイル改造時にやってはいけないこと

  • 他機種のBIOSファイルの使用
  • BIOSファイルサイズの変更
  • Regionサイズの変更
  • Moduleサイズの変更

(BIOS region等には多数のmoduleが入っています)

BIOS内のどこかに、各region・moduleの開始位置が書かれています。マシンはそれに従ってコードを読み込み、実行します。

Regionやmoduleのサイズを変えた場合、直後の(サイズ変更可能な)余白で調整するか、後ろのregion・moduleの開始位置データの書き換える必要があります。自分でそのような修正ができなければ、サイズの変更は避けてください。

なお、BIOS chip内の各regionの開始位置(offset)は、Descriptor regionに書かれています。

Descriptor regionに書かれている各regionのoffset

バイナリエディター画面 BIOS regionの開始位置

改造BIOSファイルでupdateするための手段

  • PC・マザーボード付属のBIOS update機能

    ASUS製マザーボード & UEFI BIOSの場合
    改造BIOSファイルは使用不可。(公式配布のBIOSファイルには署名があるが、改造したBIOSファイルは署名無しとなり、弾かれてしまう)

    ASUS以外のマザーボードの場合
    改造BIOSでも使用可能なことが多い。

  • Intel FPT (Flash Programming Tool)

    ソフトウェア

    Intel ME対応BIOS搭載PCで使用可能。

    参照: Intel FPTによるUEFI BIOS backup / update

    Write Protectがかかっているregionは、flash不可。

    ASUS製マザーボード & AMI UEFI BIOS の場合
    BIOS regionはflash不可 (→ Write Protectを解除する方法は後日の記事に書く予定)
  • SPI Programmer

    小型のハードウェア

    これを用いて、BIOS Chipに直接接続し、Erase→Flashする。(ROM焼き)

    Flash作業用に別のマシンが必要。

    容易に外せないタイプのBIOS Chip(例 SOIC8)の場合は、Test ClipのようにBIOS ChipとSPI Programmerをつなげるものが必要。

    (ROM焼き業者に依頼することもできる)

【重要】ASUS製マザーボードのUEFI BIOSについての注意

必ずSystem UUID等の製品固有のデータを保存しておきましょう。そして、標準以外の方法でUEFI BIOSを更新する際は、UUID等を追加したBIOSファイルを使わなければなりません。

System UUID等のデータの保存方法

  1. Full BIOSをバックアップ

  2. FD44Editorを起動
  3. FD44Editorの画面に、1のバックアップBIOSファイルをドラッグアンドドロップ
  4. [OK]
  5. [Copy to clipboard]
  6. テキストエディターに貼り付ける
  7. テキストファイルとして保存

BIOSファイルにSystem UUID等を追加する方法

  1. FD44Editorを起動
  2. FD44Editorの画面に、BIOSファイルをドラッグアンドドロップ
  3. [OK]
  4. Primary card MAC、DTS key、Sysem UUID、Motherboard S/Nを入力
    (DTS keyは、DTSがマザーボードに搭載されていなければ不要)
  5. MAC address storage:
    (Full BIOSファイルの場合) GbE region and system UUID
    (BIOS regionだけのファイルの場合) System UUID only
  6. [Save to BIOS image file...]
  7. 2のBIOSファイルを指定して保存 (上書き)

    注意: FD44Editorは新規ファイルとして保存できないため、既存のファイルに上書きする。
  8. 7で保存したBIOSファイルをFD44Editorで開き、間違いがないことを確認する。
Motherboard S/Nはバックアップのままでokな時もありますが、ダメな時があります。私がASUS Z170 PRO GAMINGを(ROM焼きで)BIOS復旧させた時は、まったく別の英数字を入れました。(参照: Motherboard S/N)

System UUID等をBIOSファイルに追加する理由

BIOS ChipのGbE region、BIOS regionに製品固有のデータ(Primary card MAC、System UUID、Motherboard S/N、DTS key等)が書き込まれています。ASUSが配布されているBIOSファイルには、これらのデータは含まれていません。(マザーポード付属DVDのBIOSファイルも同様)

マザーボード搭載のBIOS update機能
ASUSが配布しているBIOSファイルをそのまま使用できます。
その他のBIOS updateツール、ROM焼き(SPI Programmerを使用)
BIOSファイルにSystem UUID等を追加しておく必要があります。

System UUID等のデータが含まれないBIOSファイル使用した場合

  • ROM焼き(Full BIOS)
    → BIOSが起動しない。
  • Intel FPTでBIOS regionだけ更新
    → BIOSは起動できるが、Primary card MAC以外の製品固有データが消失

    ※ Primary card MAC (= Primary LANカードの物理アドレス)が残ったのは、GbE regionに書き込まれているため)

固有データが消え、バックアップもなくてわからなくなった時
Primary card MAC
関連記事