アットウィキロゴ

デュアルブート、マルチブート全般に関するFAQ。

全般

既存の Windows パーティションを保持したまま Linux などをインストールできる。

Windows マシンに Linux を入れた後、そのマシンで Windows も使いたい

インストールの仕方によっては、Linux 専用マシンにすること (シングルブート) もできるし、起動時に Linux と Windows などのどれかを選べるように (デュアルブート、マルチブート) もできる。
ただし、デュアルブートを行うためにはシングルブートよりいくつか手間がかかるし、インストールを失敗すると何も起動できなくなったり、もしかしたら既存のデータが消えるかもしれない。なので実際のところはシングルブートにしといた方が何かと簡単。
デュアルブートにしたいなら、消えると困るデータをバックアップするとか事前に万全の対策をした上でやってみよう。

おすすめのハードウェア構成

Windows 標準のブートマネージャはマルチブートに表向き対応はしてますが、トラブルが非常に多いのです。Windows 10 でも 11 でも、大規模アップデートやセキュリティパッチ配布によって、EFI パーティションが書き換えられて Linux が起動しなくなる騒動が起きてます。
なのでマルチブートする場合は、Windows とそれ以外を、2台のシステムディスクに物理的に分けるのを強くお勧めします。どちらを起動するかは、PC起動時に DEL キーなどを押して、マザーボードのレベルで決めるのです。こうすることで、Windows の無神経なアップデートの被害が Linux に及ぶのを防ぐことができます。この場合、Windows と Grub は EFI パーティションを共有せず、それぞれ独自に持ちます。
ノートPC など 2台のディスクを用意できない場合は、マルチブートではなく、Virtualbox などで仮想化するほうがずっと安全です。

Windows と Linux をインストールする場合、どっちを先に入れた方が良いの?

Windows XP 以降は以前よりマシにはなったが、依然として、既存のWindows以外のOSの存在をうまく考慮してくれない。こういう OS ならまず Windows の方を先にインストールした上で Linux を入れてみる。あとで Linux をインストールした方がブートローダに GRUB を使えるので楽に設定できる。
Windows を後に入れると、標準のブートローダーに Linux を登録してくれません。後から登録したとしても、まだ問題があります。Windows は Linux よりも EFI パーティションを大食いするのです。500MB 以上必要です。容量不足により致命的なエラーが起きることがあります。

複数の Linux を同時にインストールしたい

ブートローダーに GRUB を使う場合

  1. 最初の Linux を入れるときはブートローダを入れる
  2. 2つ目以降の Linux はハードディスクの空き領域に追加で入れていく

という風にして入れていく。

MBR って何?

マスターブートレコード(Wikipedia)を参照。
かつての PC の BIOS は MBR と呼ばれる、ディスクの先頭のわずか 512 バイトから起動する仕様になっていました。そのため、この領域が Windows などによって書き換えられると、画面に「GRUB loading error」とだけ出て起動不能になることがありました。
BIOS に代わる UEFI セキュアブートは 2012 年登場の Windows 8 搭載 PC で必須とされ、2020年までに PC のチップセットから BIOS 互換機能が削除されました。最近の PC には MBR はありません。BIOS はディスクの容量 2TB までしか対応してないので、2TB 超のシステムディスクは UEFI 起動です。
Windows 10 までは BIOS 起動をサポートしてたので、MBR が残っていることがあります。「ファイル名を指定して実行」で msinfo32 と入力して Enter を押すと、「BIOS モード」が「UEFI」または「レガシー」と出てきます。後者が MBR 環境です。
マイクロソフトはセキュアブート推進のため、MBR でインストール済の Windows 10 を後から UEFI 起動に転換する mbr2gpt.exe というツールを提供してました。すごい力技ですが、まず検証モードを実行してから本番実行すれば、成功率は非常に高いようです。でもバックアップは取っておきましょう。検証モードは、コマンドプロンプトで以下のように実行します。

> mbr2gpt /validate /allowFullOS

この結果が「Validation completed successfully」であれば本番に進んでよいでしょう。以下の本番コマンドを実行後、再起動して BIOS の起動モードを UEFI に切り替えて下さい。

> mbr2gpt /convert /allowFullOS

ブートローダには何を使うべき? (GRUB)

現在の一般的なおすすめは GRUB (GRand Unified Bootloader)。高機能で便利だし使い易い(ただし一部慣れが必要)。多くのディストリビューションを入れるときに標準で付いてくる。

参考リンク

GRUB を消すには?

それぞれの OS 上で以下のようにすれば上書き可能。最後にどのパーティションがアクティブかも確認しておくこと。

Windows

コマンドプロンプトを開いて、まず現在の起動順位を表示します。

> bcdedit /enum firmware

一覧から Windows Boot Manager の ID(たいていは {bootmgr} )を探して、それを 1位に設定します。これで GRUB ではなく Windows が直接立ち上がるようになります。

> bcdedit /set {fwbootmgr} displayorder {bootmgr} /addfirst

BIOS では MBR を書き換えるだけでしたが、UEFI では EFI パーティションに各 OS の起動ファイルを並べる形になってますので、このパーティション内の Linux のフォルダを削除することが必要です。
管理者コマンドプロンプト(コマンドプロンプトのアイコンを右クリック→「管理者として実行」)で、以下の1行コマンドだけで、EFIパーティションを見つけて Zドライブに割り当ててくれます(/S はシステムパーティションの意味)。

> mountvol Z: /S

Zドライブに移動し、EFIフォルダに移動すると、Microsoft や Boot と並んで、Ubuntu など Linux のフォルダがあるはずです。これを削除します。

> Z:
> cd EFI/
> dir
> rmdir /S /Q ubuntu

割り当てた Zドライブを削除します。

> mountvol Z: /D

以上が済めば、Linux がインストールされている領域は Windows の GUI で削除できます。スタートボタンを右クリック→「ディスクの管理」を開き、Windows が ext4 を認識しないのでファイルシステム名が空欄の領域を右クリックして「ボリュームの削除」をします。空いた場所は Cドライブを右クリックして「ボリュームの拡張」をすれば、Windows の領域になります。

Linux (GRUBの再インストール)

こちら を参照して下さい。

Linux 側からWindowsを再登録する

$ sudo efibootmgr -c -d /dev/sda -p 1 -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi"

複数の Linux ディストリビューションをブートさせる方法 [Grub 活用編]

複数の Linux をマルチブートするメリット

実際には次のような活用目的(一例)があるかと思われます。

  1. 一方の Linux ディストリビューションでは利用できるパッケージに制限があるが、もう一方の Linux ディストリビューションでは専用のパッケージが配布されているとき。
  2. 複数のディストリビューションの使い勝手を同時に試したいとき。
  3. あるディストリビューションから別のディストリビューションへと移行したいとき。
  4. 複数のファイルシステムを切替えて運用したいとき。
  5. 複数のディストリビューションを導入したいが、予算上の理由などにより何台もコンピュータを用意する余裕がないとき。 等々、使っている環境によってはメリットがあります。 最近は大容量のハードディスクが安価で入手できるようになったという事情も手伝っています。

ただし、物理的には1つのハードディスクを共用しているだけですから、日頃から定期的にデータのバックアップを取って、ハードディスクの破損等予期せぬ事態に備えることが大切です。

ここでは、CentOS と Debian の2つをインストールする場合です。

最初のディストリビューションをインストールする

ハードディスク
デバイス マウントポイント タイプ サイズ
hda1 / ext3 10 GB
hda2 スワップ (swap) swap 1 GB
(空き) (自由領域) 19 GB
  • 後から追加するディストリビューション用に「空き領域」を残しておくことがポイントです。 (上の例では、全ハードディスクの容量が 30 GB としています。)
  1. CentOS と Debian の2つは、どちらから先にインストールしても一向に差し支えありません。この説明では、まず CentOS のインストールから始めます。 CentOS では、インストーラー付属のパーティション作成ツール Disc Druid*1 *2 を使って手動で設定します。
  2. サイズを任意に指定し、hda1 hda2 を新規作成のうえインストールを開始します。
  3. その後、2つ目のディストリビューション Debian は、空いている自由領域を編集してそこへインストールします。

2つ目のディストリビューションをインストールする

  1. 最初のディストリビューションがインストールできたら、2つ目のディストリビューションをハードディスクに追加します。
    ハードディスク
    デバイス マウントポイント タイプ サイズ
    hda1 ext3 10 GB
    hda3 / ext3 10 GB
    hda5 スワップ (swap) swap 1 GB
    (空き) (自由領域) 9 GB
  • パーティションを編集することで、設定ツール Disk Druid がデバイス名を自動的に変更することがあるので、十分注意が要ります。例では、スワップ領域が hda2 から hda5 へと変更されています。
  • 例は、空いている自由領域を編集して hda3 を作成しています。 自由領域をあえて 9 GB 残しています。このため、3つ目のディストリビューションがインストールできるだけの空き容量は確保されています。

Chainloader の設定について

Linux の各ディストリビューションともブートローダーは GRUB ですが、BSD 系は独自のブートローダーを持ってます。GRUB から BSD カーネルの直接起動も一応できますが、GRUB から BSD のブートローダーを呼び出すチェーンロード方式にしたほうが、BSD側のアップデートがあっても壊れにくいです。

最終更新:2026年06月17日 12:01

*1 [[Red Hat Linux 9 インストールガイド(HTML Tarball)>http://www.redhat.co.jp/support/doc/man/9/rhl-ig-x86-ja-9.tar.gz]]の システムのパーティション設定 という項目参照。

*2 Disk Druidは、fdisk に比べて簡単に理解することができます。以前に fdisk を使用した経験があり、動作方法を理解している場合以外、fdiskを使用するべきではない、としているベンダーさえあります。この点については、[[オフィシャル Red Hat Linux x86 インストールガイド(HTML Tarball)>http://www.redhat.co.jp/support/doc/man/9/rhl-ig-x86-ja-9.tar.gz]] 参照。