Windows ユーザーがはじめて Linux(Ubuntu など)をインストールするときに知っておきたい基礎知識を、私自身の備忘録も兼ねて記事にしました。
PCの電源が入ると、まずマザーボード内蔵のファームウェアが動き、次にブートローダーが読み込まれ、それからやっと Windows 11 や Ubuntu などの OS が起動します。
このうち最初に動くファームウェアには、古い レガシーBIOS と、いま主流の UEFI の2種類があります。レガシーBIOSかUEFIかで、ディスクの区切り方もブートローダーの置き場所も変わります。Windows も Ubuntu もこのどちらかに乗って起動するので、起動の仕組みを決めるのは OS ではなくファームウェアのほうです。
この記事は、ファームウェア、ブートローダー、パーティション、ファイルシステムといった用語を、聞いたことはあっても中身はよく知らない、という Windows ユーザーに向けたものです。共通の土台を先に押さえたうえで、2つの方式それぞれの起動を、Windows と Linux 両方の場合について見ていきます。
次の2記事を読むための基礎知識にもなります。
1. ファームウェアとブートローダー
電源を入れたとき、最初に動くのは OS ではありません。ファームウェア——マザーボードのフラッシュメモリに書き込まれている基本プログラム——が動き出し、ハードウェアを初期化します。起動中に F2 を連打すると出てくるあの設定画面が、このファームウェアです(キーは機種により F12 / Del / Esc などもあります)。
ただしファームウェアは、OS を直接立ち上げるわけではありません。ディスク(SSDやHDD)からブートローダーという小さなプログラムを読み込んで実行します。ファームウェアはマザーボードにありますが、ブートローダーはディスクの中にあります。OS 本体を探して立ち上げるのはブートローダーの仕事で、デュアルブートで「どちらのOSで起動するか」というメニューを出すのもこれです。ブートローダーは OS ごとに違い、Windows は Windows Boot Manager、Linux でよく使われるのが GRUB(グラブ、Grand Unified Bootloader)です。

ファームウェアには2種類あります。古くからある BIOS(Basic Input/Output System)と、新しい UEFI(Unified Extensible Firmware Interface。旧称 EFI)です。
ただ現在では、ファームウェア全般をざっくり「BIOS」と呼ぶことも一般的です。本記事では混乱を避けるため、古い方式を レガシーBIOS、新しい方式を UEFI と呼び分けます。
自分のPCがどちらのファームウェアなのかは、おおよそ年代で見当がつきます。Windows 8 以降がプリインストールされて売られたPC——2012年の終わりごろ以降の完成品——は UEFI を積んでいます。Windows 8 の認定要件で、UEFI とセキュアブートを有効にして出荷することが決められたためです。ただし積んでいても、設定によってはレガシーBIOS方式で動いていることがあります。
確実に知るには、Windows なら Win + R → msinfo32 →「BIOSモード」項目を見ます。「UEFI」なら UEFI 方式、「レガシ」ならレガシーBIOS方式です。
2. ディスクの区切り方:パーティションとファイルシステム
ディスクは、物理的な記憶装置(HDD・SSD・USBメモリなど)のことを指します。
パーティションは、1つのディスクを論理的に区切った区画のことです。1つのディスクに複数のパーティションを置けます。たとえば1台のSSDを「Cドライブ」「Dドライブ」「リカバリ領域」に分けたとき、その各区画がパーティションです。
ディスクの先頭付近にはパーティションテーブルという「どこからどこまでが何のパーティションか」の区切り情報があります。
区切っただけでは、まだファイルを置けません。各パーティションの中に、ファイルをどう並べて記録するかの形式を用意する必要があります。これがファイルシステムです。Windows の C: ドライブなら NTFS、Linux なら ext4、USBメモリなら FAT32 や exFAT が使われます。パーティションを「フォーマットする」とは、この形式を作る操作のことです。
ファイルシステムを解釈できるプログラムだけが、ファイルを名前で開けます。レガシーBIOS はファイルシステムを解釈しません。 ディスクを、番号の付いた入れ物の並びとしてしか扱えません(4-2)。
Windows 11 PCの「ディスクの管理」(Win + X → ディスクの管理)を開くと、ディスクとパーティションが実際に見られます。

この画面では、3台のディスクと、それぞれの中のパーティションが見えます:
- ディスク 0(232.87 GB、内蔵SSD)→ C:ドライブ、EFIシステム、回復パーティションなど
- ディスク 1(465.76 GB、外付け)→ E:ドライブ
- ディスク 2(465.76 GB、外付けSSD:Buffalo SSD-PUTA)→ F:ドライブ
なお、ディスク 0 の EFIシステムパーティション(ESP, EFI System Partition、100MB)や回復パーティションには、ドライブレター(C: 等)が付いていないため、エクスプローラーからは見えません。ESP の詳しい役割は5章で扱います。
OSによる呼び方の違い:
| Windows | Linux | |
|---|---|---|
| ディスク全体 | ディスク 0、ディスク 1…(数字、0始まり) | /dev/sda、/dev/sdb…(アルファベット順) |
| パーティション | C:、E:、F:(ドライブ文字) | /dev/sda1、/dev/sda2(番号) |
構造は同じで、名前付けの流儀だけが違います。
USBメモリも1台のディスクとして数えられます。 内蔵SSDが Windows の「ディスク 0」/Linux の /dev/sda なら、挿したUSBメモリは「ディスク 1」//dev/sdb、その中のパーティションは /dev/sdb1 になります。番号は接続状況によって変わります。
3. 電源ONからOS起動までの3ステップ
ステップ1:POST(自己診断)
ファームウェア(レガシーBIOS または UEFI)の最初の仕事は、どちらであっても同じです:
- POST(Power-On Self Test、自己診断)
- CPU、メモリ、キーボード、ストレージ等のハードウェアが正常か確認する
- 異常があればビープ音やエラー画面で止まる
ステップ2:起動デバイスの選択
POSTを通ったら、ファームウェアがどのストレージからOSを起動するかを決めます。
- ファームウェアの設定画面にある「起動順位(Boot Order)」に従う
- ブート可能なデバイスが見つかるまで、上から順に試す
レガシーBIOSの設定画面では、この順位はこういう形で並びます(UEFI機では見た目も項目名も変わります)。

「起動オプション #1」から「#5」までが、この順位です。USBメモリから Ubuntu を起動したいときは、USB を内蔵ディスクより前に置きます。
ステップ3:ブートローダーを読み込む
ファームウェアは、選んだデバイスからブートローダー(1章)を読み込んで実行します。
ここが レガシーBIOS と UEFI で最も大きく違うところです。
- レガシーBIOS:ディスクの先頭512バイトのMBRを、位置で指定して読む(4章)
- UEFI:専用パーティションESP内の
.efiファイルを、名前で指定して読む(5章)
4. レガシーBIOS方式の起動:MBRと隙間
レガシーBIOS が最初に読むのは、ディスクの先頭512バイトです。ここに入るのは起動プログラム本体ではなく、続きを読みに行くための短い指示です。だから続きをどこかに置いておく必要があり、その置き場所が、Windows と Linux で違います。
4-1. MBR には何が書かれているか
この先頭512バイトの領域を MBR(Master Boot Record、マスターブートレコード)と呼びます。
| 範囲 | サイズ | 中身 |
|---|---|---|
| 0〜445 | 446B | ブートストラップコード(「OS起動の続きを読みに行け」という指示が書かれた極小コード) |
| 446〜509 | 64B | パーティションテーブル(ディスクをどう区切ったかの情報、最大4区画) |
| 510〜511 | 2B | 「ここはMBRですよ」の目印(決まった値) |
レガシーBIOS はこの目印を見て、起動できるディスクかを判断します。
パーティションテーブルは各パーティションの開始位置・サイズ・種類を保持します。
446バイトのブートストラップコードに何が書かれるかは、Windows を入れたか Ubuntu を入れたかで変わります(4-3)。
4-2. なぜファイルを名前で指定できないのか
レガシーBIOSには、ファイルやフォルダという概念がありません。先頭512バイトを読み込み、そこに書かれたコードを実行します。
その先は、そのコード自身が レガシーBIOS のディスク読み出し機能を呼んで続きを読みます。ただしその読み出しは、「ディスクの何番目のセクタを読め」という位置指定です。「/boot/grub/core.img を開け」というファイル名での指定は通りません。
ファイル名で開くには、そのディスクのファイルシステムを解釈できなければなりません。しかしファイルシステムは NTFS・ext4・FAT32 と何種類もあり、後から新しいものも増えます。どんなディスクでも読めるのは、形式を問わない位置指定のほうです。
UEFI はこれを、ブートローダーを置くパーティションを FAT32 に決めておくことで解いています(5章)。形式が1つなら、ファームウェアがそれを読めるように作れます。
つまり446バイトのコードは、続きの置き場所を位置で指し示さなければなりません。
4-3. 続きをどこに置くか:Windows と GRUB の違い
Windows の場合、MBR のコードは、Windows が起動用に用意した隠しパーティションの先頭セクタを読み込んで実行します。ここにある VBR(Volume Boot Record)は NTFS を読めるので、続きの bootmgr をパーティションの中からファイル名で見つけられます。
Linux(GRUB)の場合は、446バイトに OS選択メニューやカーネル起動の機能を詰め込めません。そのため GRUB は3か所に分けて置かれ、順に読み込まれます。
レガシーBIOS が MBR を読み込んで実行
↓
第1段階 boot.img(446B・MBR の中)
↓ 「core.img を読み込め」だけを実行
第2段階 core.img(30KB前後・MBR の外)
↓ ここからファイルを名前で開けるようになる
第3段階 各種モジュール .mod(数MB・/boot/grub/i386-pc/ 配下)
↓
OS選択メニューを表示 → Linux カーネル起動
第1段階 boot.img は MBR の先頭446バイトに収まる極小プログラムで、仕事はひとつだけ——「core.img を読み込め」。
第2段階 core.img が中間ローダーです。/boot/grub/i386-pc/ からファイルを読み出すのに要る部品だけを組み込んであります。サイズは30KB前後です。
ここでファイルを名前で開けるようになるので、メニュー表示をはじめ残りの機能は第3段階——機能ごとに分けた .mod(モジュール)ファイル、合わせて数MB——として /boot/grub/i386-pc/ から普通のファイルとして読み込まれます。
問題は第2段階の置き場所です。core.img は、512バイトの MBR には入りません。かといって、ファイルシステムの中に普通のファイルとして置くと、boot.img がファイル名で開けません(4-2)。
そこで使うのが、MBR と第1パーティションの間です。

この隙間はどのパーティションにも属さず、どのファイルシステムの管轄でもないので、一度書けばバイト位置が動きません。ここに core.img をそのまま書き込むのが標準の方式で、埋め込み(embedding)と呼ばれます。boot.img は決め打ちの位置を読むだけでよく、確実に起動します。
つまり GRUB はパーティションの外に core.img を置き、Windows は中に bootmgr を置いています。同じ446バイトの制約への、逆の答えです。
いまのパーティショニングツールは、この隙間を約1MB空けます。しかし古いPCやメーカー独自の構成では数KBしかないことがあり、その場合 core.img が入らずインストールが止まります。そうなったときの対処は、別記事で扱います。隙間を使わない Windows 側は、この問題とは無関係です。
5. UEFI方式の起動:GPTとESP
ここまでは、レガシーBIOS方式で起動し、MBR で区切られたディスクを使う場合の話です。いま主流の UEFI 方式では、次のように変わります。
| 観点 | レガシーBIOS方式で起動 | UEFI 方式で起動 |
|---|---|---|
| パーティション方式 | MBR が一般的 | GPT(GUID Partition Table)が標準 |
| ファームウェアが読むもの | ディスク先頭512バイト(位置で指定) | ESP 内の .efi ファイル(名前で指定) |
| 続きの置き場所 | パーティションの中(Windows)/隙間(GRUB) | どちらも ESP の中 |
| 446バイトの制約 | あり | そもそも該当しない |
| 隙間 | GRUB が使う | 使わない |
5-1. GPT:パーティションの区切り方
GPT(GUID Partition Table)には、MBR の4区画までという制約がありません。多くのパーティションを作れます。パーティションテーブル自体もディスクの先頭と末尾の両方に複製して持つため、一方が壊れても他方から復旧できます。
5-2. ESP:ブートローダーの置き場所
UEFI では、ファームウェアが直接ファイルシステム(FAT32)を読めるようになっています。ESP(EFIシステムパーティション)という専用パーティションを用意して、その中の .efi ファイルを実行します。
2章の「ディスクの管理」に見えていた100MBの領域が、これです。
5-3. Windows と Linux の場合
UEFI では、両方とも同じ形になります。それぞれのブートローダーが、ESP の中の1ファイルとして置かれるだけです。
/EFI/Microsoft/Boot/bootmgfw.efi(Windows Boot Manager)/EFI/ubuntu/grubx64.efi(Ubuntu の GRUB)
レガシーBIOS方式で GRUB が使っていた隙間は、UEFI では要りません(4-3)。デュアルブートでも、互いの .efi ファイルが同じ ESP に並ぶだけです。
まとめ
PCの起動は ファームウェア → ブートローダー → OS の順に進みます。最初に動くのは OS ではなく、マザーボードのファームウェアです。
そのファームウェアには レガシーBIOS と UEFI の2種類があります。レガシーBIOS はファイルシステムを解釈できないので、ディスクの先頭512バイト(MBR)を位置で指定して読みます。UEFI は FAT32 を読めるので、ESP の中の .efi ファイルを名前で指定して実行します。自分のPCがどちらかは、msinfo32 の「BIOSモード」で分かります。
Windows と Linux が、別々の仕組みで起動しているわけではありません。同じ起動の仕組みの上で、別のブートローダーを使っているだけです。
実際に Linux を入れる手順と、隙間が狭くて grub-install が止まったときの対処は、次の2記事で扱っています。
用語メモ
サイズの単位:
| 単位 | バイト換算 | 感覚 |
|---|---|---|
| 1 B(バイト) | 1 B(=8ビット) | 半角英数字1文字分 |
| 1 KB | 約 1,000 B(厳密には 1,024 B) | テキスト1段落くらい |
| 1 MB | 約 100万 B(1,000 KB) | 写真1枚〜小説1冊 |
| 1 GB | 約 10億 B(1,000 MB) | 動画ファイル1本 |
用語:
| 用語 | 意味 |
|---|---|
| BIOS(レガシーBIOS) | 古いPCのファームウェア。電源 ON で最初に動き、MBR を読み込む役割。UEFI と区別するため、本記事では「レガシーBIOS」と表記する |
| UEFI | Unified Extensible Firmware Interface。新しいPCのファームウェア。BIOS の後継。ESP の FAT を直接読めるため、ファイルを名前で起動できる |
| EFI | Extensible Firmware Interface。UEFI の旧称。ファイル拡張子(.efi)やパーティション名(ESP)に旧称が残っている |
| MBR | Master Boot Record。ディスクの先頭512バイトに書かれる記録で、ブートストラップコードとパーティションテーブルが入る。この形式で区切られたディスクを指して「MBR ディスク」「MBR 方式」とも言う(GPT と対比) |
| VBR | Volume Boot Record。各パーティションの先頭セクタに置かれる起動コード。ディスク全体の先頭にある MBR に対し、VBR はパーティションごとにある。そのパーティションのファイルシステムの構造情報を併せ持つ。レガシーBIOS方式の Windows 起動で使われる |
| GPT | GUID Partition Table。UEFI 時代のパーティション方式。MBR の後継 |
| パーティション | 1つの物理ディスクを論理的に区切った領域。例:1つの HDD/SSD を「Cドライブ」「Dドライブ」「リカバリ」に分けるとき、各区画がパーティション |
| パーティションテーブル | 各パーティションの開始位置・サイズ・種類を記した表。MBR方式では64バイトに収まる4区画まで。破壊するとディスク全体のデータの居場所が分からなくなる重要領域 |
| ファイルシステム | パーティションの中で、ファイルをどう並べて記録するかの形式。Windows は NTFS、Linux は ext4、USBメモリは FAT32 / exFAT が多い |
| ESP | EFI System Partition。UEFIマシンでブートローダーを置く専用パーティション。ファイルシステムは FAT32 で、これがあるからファームウェアはファイルを名前で開ける。どれが ESP かはパーティションの種類を示す識別子で決まるので、ほかに FAT32 のパーティションがあっても混同されない |
| ブートローダー | ファームウェアに読み込まれ、OS本体を探して起動するプログラム。デュアルブートで起動するOSを選ぶメニューを出すのもこれ。Windows は Windows Boot Manager、Linux は GRUB が代表的 |
| GRUB | グラブ。Linux でよく使われるブートローダー。正式名称は Grand Unified Bootloader |
| Windows Boot Manager | Windows のブートローダー。実体は bootmgr で、レガシーBIOS方式では起動用の隠しパーティションの中に置かれ、MBR のコード → VBR の順に読み込まれる。UEFI 方式では ESP の bootmgfw.efi |
| boot.img | MBR に書き込まれる GRUB 第1段階(446バイト) |
| core.img | GRUB の中間ローダー(第2段階)。サイズは構成により変わり30KB前後。レガシーBIOS方式での名称 |
| grubx64.efi | UEFI環境で ESP に置かれる GRUB の実行ファイル。ファームウェアがこれを直接実行し、続いて .mod が読み込まれる |
| .mod | GRUB の機能を分けて収めた部品ファイル(モジュール)。/boot/grub/i386-pc/ 配下に置かれ、第3段階で読み込まれる |
| セクタ | ディスクの最小読み書き単位(通常512バイトまたは4KB) |

