既存の Windows パーティションを保持したまま Linux などをインストールできる。
インストールの仕方によっては、Linux 専用マシンにすること (シングルブート) もできるし、起動時に Linux と Windows などのどれかを選べるように (デュアルブート、マルチブート) もできる。
ただし、デュアルブートを行うためにはシングルブートよりいくつか手間がかかるし、インストールを失敗すると何も起動できなくなったり、もしかしたら既存のデータが消えるかもしれない。なので実際のところはシングルブートにしといた方が何かと簡単。
デュアルブートにしたいなら、消えると困るデータをバックアップするとか事前に万全の対策をした上でやってみよう。
Windows 標準のブートマネージャはマルチブートに表向き対応はしてますが、トラブルが非常に多いのです。Windows 10 でも 11 でも、大規模アップデートやセキュリティパッチ配布によって、EFI パーティションが書き換えられて Linux が起動しなくなる騒動が起きてます。
なのでマルチブートする場合は、Windows とそれ以外を、2台のシステムディスクに物理的に分けるのを強くお勧めします。どちらを起動するかは、PC起動時に DEL キーなどを押して、マザーボードのレベルで決めるのです。こうすることで、Windows の無神経なアップデートの被害が Linux に及ぶのを防ぐことができます。この場合、Windows と Grub は EFI パーティションを共有せず、それぞれ独自に持ちます。
ノートPC など 2台のディスクを用意できない場合は、マルチブートではなく、Virtualbox などで仮想化するほうがずっと安全です。
Windows XP 以降は以前よりマシにはなったが、依然として、既存のWindows以外のOSの存在をうまく考慮してくれない。こういう OS ならまず Windows の方を先にインストールした上で Linux を入れてみる。あとで Linux をインストールした方がブートローダに GRUB を使えるので楽に設定できる。
Windows を後に入れると、標準のブートローダーに Linux を登録してくれません。後から登録したとしても、まだ問題があります。Windows は Linux よりも EFI パーティションを大食いするのです。500MB 以上必要です。容量不足により致命的なエラーが起きることがあります。
ブートローダーに GRUB を使う場合
という風にして入れていく。
マスターブートレコード(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 (GRand Unified Bootloader)。高機能で便利だし使い易い(ただし一部慣れが必要)。多くのディストリビューションを入れるときに標準で付いてくる。
参考リンク
それぞれの OS 上で以下のようにすれば上書き可能。最後にどのパーティションがアクティブかも確認しておくこと。
コマンドプロンプトを開いて、まず現在の起動順位を表示します。
> 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 の領域になります。
こちら を参照して下さい。
$ sudo efibootmgr -c -d /dev/sda -p 1 -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi"
実際には次のような活用目的(一例)があるかと思われます。
ただし、物理的には1つのハードディスクを共用しているだけですから、日頃から定期的にデータのバックアップを取って、ハードディスクの破損等予期せぬ事態に備えることが大切です。
ここでは、CentOS と Debian の2つをインストールする場合です。
| ハードディスク | |||
| デバイス | マウントポイント | タイプ | サイズ |
| hda1 | / | ext3 | 10 GB |
| hda2 | スワップ (swap) | swap | 1 GB |
| (空き) | (自由領域) | 19 GB |
| ハードディスク | |||
| デバイス | マウントポイント | タイプ | サイズ |
| hda1 | ext3 | 10 GB | |
| hda3 | / | ext3 | 10 GB |
| hda5 | スワップ (swap) | swap | 1 GB |
| (空き) | (自由領域) | 9 GB |
Linux の各ディストリビューションともブートローダーは GRUB ですが、BSD 系は独自のブートローダーを持ってます。GRUB から BSD カーネルの直接起動も一応できますが、GRUB から BSD のブートローダーを呼び出すチェーンロード方式にしたほうが、BSD側のアップデートがあっても壊れにくいです。
*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]] 参照。