BIOS(非UEFI)環境でGPTディスクからWindows 7/10を起動する方法
本記事では、最新のUEFI環境に対応していない従来型のBIOSファームウェア搭載の旧式PCにおいて、GPTパーティションテーブルを使用したハードディスクから、Windows 7やWindows 10を含むモダンなWindowsをインストール・起動する方法を詳しく解説します。この手法が必要になったきっかけは、HP DL380 G8サーバー(HP DLサーバーはEFI非対応)に、RAID 5で合計4TB超のローカルディスク構成のもとWindows Server 2008 R2をインストールしようとした際でした。MBRディスクへの標準的なWindowsインストールでは、システムが利用できるのは2TBまでに制限され、残りの2TBのディスク領域は割り当てることもアクセスすることもできません。利用可能なディスク容量をすべて活用する唯一の方法は、ディスクレイアウトをGPT形式に変換することです。
この記事では、クラシックなBIOS(非UEFI)またはレガシーBIOSモードのコンピューター上で、GPTパーティションテーブルとしてマークされたハードディスクからWindowsを起動できるように設定する手順を説明します。旧式のBIOSシステムでは、Windows OSはGPTディスクから直接起動できません。この制限を回避するため、Windowsブートローダー(BCD)を、MBRパーティションテーブルを持つ別の小型USBフラッシュドライブ(またはHDD)に移動します。このUSBメモリはWindowsブートローダーの起動にのみ使用され、その後GPTパーティションテーブルを持つディスク上にあるメインのWindowsイメージへ制御を引き渡します。この手順は汎用的であり、Windows 7やWindows 10、さらにその他のサポート対象のx86/x64版Windowsでも動作します。
目次
- GPTがMBRより優れている点
- GPTディスクからのWindows起動について
- BIOS搭載PCでのGPTディスクへのWindowsインストール
- Gptgen:パーティションを削除せずにMBRをGPTへ変換
- WindowsブートローダーをUSBフラッシュドライブへ移動する
GPTがMBRより優れている点
新しいハードディスクのパーティションテーブル形式であるGUIDパーティションテーブル(GPT)には、どのような利点があるのでしょうか。GPTは、従来のMBRパーティションテーブルの多くの制限を克服できます。主なポイントを挙げます。
- 2.2TBを超えるハードディスクに対応(GPTディスクの最大サイズは9.4ゼタバイト=9.4×10²¹バイト);
- 最大128個のパーティションを作成可能(MBRでは基本4パーティションのみ);
- 高い信頼性:パーティションテーブルがディスク上の複数箇所に複製され、CRC(巡回冗長検査)によって検証されます。そのため、ディスク先頭セクターが破損してもパーティション構造が失われることはありません;
- エラーが発生しやすい論理パーティションを使用する必要がありません。
GPTディスクからのWindows起動について
Microsoftの公式ドキュメント(https://msdn.microsoft.com/en-us/windows/hardware/gg463525.aspx)によると、Windows Server 2003 SP1以降のすべてのOSは、データディスクとしてGPT形式のボリュームをサポートしています。しかし、GPTボリュームから起動できるのは、新しいUEFI仕様(Unified Extensible Firmware Interface)をサポートするマザーボードにインストールされた64ビット版Windowsのみです。つまり、クラシックなBIOSファームウェアを搭載した旧式のコンピューターでは、GPTディスクからWindowsをインストール・起動することはできません。
ヒント: BIOS搭載コンピューターでGPTディスクからWindows 10/7 x64を起動する回避策もいくつか存在します。その一つは、EFIをエミュレートするDUET(Developer's UEFI Environment)を含んだブートディスクを使用する方法です。この構成では、BIOSがSYSLINUXから起動し、SYSLINUXがUEFIエミュレーター(DUET)を読み込みます。DUETはさらに標準のWindowsブートローダーであるbootx64.efiを呼び出します。また、Linuxツールのgdiskを使ってディスクをハイブリッドMBRモードに変換する方法もあります。ただしいずれの場合も手順がかなり複雑で、高度なLinuxの知識が必要です。
常に念頭に置くべき重要な事実として、x64版WindowsをGPTディスクから起動できるのはUEFIベースのシステムのみという点があります。
したがって、PCがBIOSベースでありながらGPTパーティションテーブルを持つディスクが必要な場合、最も簡単な方法は、もう一台のMBRハードディスク(HDDまたはSSD)を追加し、そこにWindowsをインストールしてそのディスクから起動することです。
ここでは、この手法を少し改良してみましょう。必要なのは、MBR形式でフォーマットした小型のUSBフラッシュドライブまたはSDカード(最低64MB)で、その上に小さなWindowsブートマネージャー(bootmgr)を配置します。この起動用USBメモリが初期起動を行い、GPTボリューム上にあるメインシステムのブートローダーへ制御を引き渡します。
重要: お使いのBIOSがUSBフラッシュドライブまたはSDカードからの起動に対応している必要があります。
これにより、BIOSベースのシステム(EFIなし)でも、あらゆるWindowsバージョン(x86/x64の両方!)の起動が可能になります。
BIOS搭載PCでのGPTディスクへのWindowsインストール
ここでは、新しいGPTパーティションテーブルを使用するハードディスクを搭載したBIOS(非UEFIファームウェア)コンピューターを想定します。このようなコンピューターのGPTドライブにWindowsをインストールしようとすると、セットアップ画面で次のエラーが表示されます。
Windows cannot be installed to this disk. The selected disk is of the GPT Partition Style.(選択されたディスクはGPTパーティションスタイルのため、Windowsをインストールできません)

ヒント: Windowsセットアップ画面でShift+F10を押すとコマンドプロンプトを開けます。データをすべて消去してもよい場合は、以下のコマンドでドライブのパーティションテーブルをMBRからGPTへ変換できます。
Diskpart
select disk 0(システムにハードディスクが1台の場合)
clean(ディスクの内容を消去)
convert gpt(パーティションテーブルをGPTへ変換)
この方法でGPTディスクにWindows 10/8.1/7をインストールできるのは、DUETによるUEFIエミュレーション経由のUEFIモードのみですが、前述のとおり64ビット版Windowsしかインストールできず、手順も非常に複雑です。
そこで、通常どおりMBRディスクにWindowsをインストールしておき、その後gptgenを使ってGPTへ変換する方が簡単です。
Gptgen:パーティションを削除せずにMBRをGPTへ変換
Windowsのディスクの管理スナップインでは、未割り当て(空)のディスクであればMBRからGPTへ変換できますが、OSがインストール済みのディスクは変換できません。
補足: Windows 10 1703以降には、データを失わずにディスクのパーティションテーブルをMBRからGPTへ変換できるコンソールユーティリティmbr2gpt.exeが用意されています(「Windows 10でデータを失わずにMBRをGPTへ変換する」の記事参照)。
OSが入ったハードディスクをオンラインのままMBRからGPTへ変換するには、小さなツールGptgenを使用します。このツールは、ディスク上のパーティションを削除することなく(データ損失なしに)、パーティションテーブルの形式をその場で変更できます。
重要: 変換前に、重要なデータは必ず外部ドライブなどへバックアップしてください。筆者自身はgptgenの実行によってファイルシステムが完全に破壊される事例を見たことはありませんが、パーティションテーブル変換の前に重要データを保存しておくことを強く推奨します。
gptgenをダウンロードし、任意のディレクトリ(例:c:\tools\gptgen-1.1)に展開します。
- 管理者権限でコマンドプロンプトを起動します;
- コマンドを実行:
diskpart; - diskpartでシステム内の全ディスクを表示:
list disk
この例では、40GBのディスクが1台(Disk 0)存在します。ご覧のとおり、このディスクは標準的なMBRパーティションテーブルを持っています(Gpt列が空欄); - コマンド
gptgen.exe -w \\.\physicaldrive0で、Disk 0のパーティションテーブルをMBRからGPTへ変換します。コマンド実行中に、GPTへの変換完了後もこのパーティションから起動できることを開発者が保証しない旨の警告が表示されます。
注: physicaldrive末尾の0は、ディスク0を変換対象とすることを示します。
gptgen.exe: Partition table converter v1.1
Boot: 1, Type: 0x7, Start: sector 2048, Length: 204860 sectors
Boot: 0, Type: 0x7, Start: sector 206858, Length: 83685636 sectors
WARNING: Boot partition(s) found. This tool cannot guarantee that such partitions will remain bootable after conversion.
Do you want to continue? [Y/N] y
Writing primary GPT and protective MBR to LBA address 0…
Writing secondary GPT to LBA address 83786657…
Success!

これで、パーティションテーブルのGPTへの変換が正常に完了しました!
WindowsブートローダーをUSBフラッシュドライブへ移動する
コンピューターを再起動し、BIOSがGPTテーブルを持つハードディスクから起動できないことを確認します。問題ありません。小型のUSBフラッシュドライブまたはSDカードを接続し、Windowsインストールメディア(DVD/USB、適切なWindows 10またはWindows 7のインストールイメージ)から起動して、Windowsセットアップ画面でShift+F10を押してコマンドプロンプトを開きます。
- コマンドを実行:
diskpart; - システム内のディスク一覧を表示:
list disk。現在システムには2台のディスクがあります。Disk 0はOSがインストールされた40GBのハードディスク(Gpt列の*印はGPTパーティションテーブルを示す)、Disk 1は1GBのUSBフラッシュドライブです。
- ディスクと割り当てられたドライブ文字を確認します。HDDを選択:
select disk 0、ボリューム一覧を表示:list volume
ボリュームサイズから、システムがVolume 2(ドライブ文字D:)にインストールされていることがわかります(Windows自体が表示するシステムディスクの文字とは異なる場合があります)。 - USBフラッシュドライブにパーティションを作成します:
select disk 1(USBフラッシュドライブを選択)
clean(ディスク内容を消去)
create partition primary size=1000(USBメモリに基本パーティションを作成。この例では1GB)
format fs=fat32(FAT32ファイルシステムでフォーマット。NTFSは使用しないでください。NTFSではシステムが起動できません)
select partition 1(USBメモリの最初のパーティションを選択)
active(アクティブとしてマーク)
list volume(ボリューム一覧を再表示。この例では作成したボリュームはNo.3)
select volume 3(そのボリュームを選択)
assign letter=G(空いている任意のドライブ文字、例えばGを割り当て)

list volume(フラッシュドライブのパーティションにG:が割り当てられたことを確認)
exit(diskpartを終了) - システムボリュームからUSBフラッシュドライブへWindowsブート環境ファイルをコピーします:
bcdboot d:\Windows /l ja-jp /s g: - bootmgr(Windowsブートマネージャー)の起動を可能にするため、USBフラッシュドライブにブートコードを書き込みます:
bootsect /nt60 G: /mbr /force - 再起動します。
BIOS設定画面に入り、起動順序を変更してUSBフラッシュドライブまたはSDカードが最初になるようにします。変更を保存します。正しく作業が完了していれば、システムは正常に起動するはずです。WindowsがGPTドライブ上にあることは、ディスクの管理(diskmgmt.msc)を開いてシステムディスクのプロパティを確認すればわかります。ボリュームタブで、パーティションの種類がGPT(パーティションのスタイル:GUID パーティション テーブル)になっていることが確認できます。

このようにWindowsブートマネージャーを独立したUSBフラッシュドライブへ移すことで、UEFI非搭載のBIOSベースシステムでもGPTの利点をすべて活かし、ハードディスクの全容量(2.2TB超)を利用できるようになります。このテクニックは、以下のWindowsバージョン(x86版を含む)で実行可能です。
- Windows 10 / Windows Server 2016
- Windows 8、Windows 8.1、Windows Server 2012 / 2012 R2
- Windows 7、Vista、Windows Server 2008 / 2008 R2
- Windows Server 2003 SP1 / 2003(x64)
- Windows XP x64
また、デバイスの電源投入・再起動のたびに、MBRテーブルとブートローダーを格納したUSBフラッシュドライブをコンピューターに接続しておく必要がある点にも注意してください。接続されていない場合、Windowsは単純に起動しません。
入手可能な情報によると、一部の旧式BIOS搭載コンピューターモデルでは、GPTドライブとの互換性がまったくなく、CMOSの段階でそうしたディスクが認識されないケースもあります。
-
Windows 7でBIOS設定画面に入る方法【手順とトラブル対処法を徹底解説】
第1部:BIOSとは? BIOS(Basic Input/Output System:基本入出力システム)は、マザーボード上の小さなメモリチップに格納されたプログラムです。BIOSは、コンピューターの起動やキーボード制御といった基本機能の実行を指示する役割を担っています。さらに、CPU(プロセッサー)、ハードディスク、光学ドライブ、メモリなど、PC内部のハードウェアの確認や設定にも使用されます。 第2部:なぜBIOSが必要なのか? BIOSでは、ハードウェア構成に関するさまざまな基本的な調整を行えます。例えば、起動順序の変更(PCが最初にどのデバイスからプログラムを読み込むかの指定)、日付
-
Windows から Linux への移行 - ディスク管理
今日は、Windows から Linux へのチュートリアルの最近のテンプレートから脱却したいと思います。このテンプレートは、さまざまなプログラムをインストール、構成、および使用する方法を示すことに重点を置いており、通常は Windows 用に設計または意図されており、次のようなフレームワークを使用しています。ワイン。今日お話しするのは、ディスクとドライブの管理に関するジューシーなトピックです。 アプリケーション以外にも、考慮すべきデータがあります。そして、データはすべてにとって重要です。 Windows と Linux の根本的な違いを考えると、事態はさらに複雑になります。前者は NTFS