マルチブートの仕方(プロローグ)
Windows2000の登場以来、マルチブートを行う人が増えた。それ以前からWindows95/98とWindowsNTでデュアルブートができたが、これらはその用途が比較的はっきり分かれていて(Windows95/98系は個人使用でWindowsNTは企業用途)、それほどデュアルブートを行わねばならない場面が少なかったと思う。
しかしWindows2000は、ぐっと個人使用に食い込んできた。しかし当面はドライバが未対応などの諸事情から、とりあえず従来環境を残し、デュアルブートにしておくという人が続出した訳だ。もちろんWindows2000がとても簡単にデュアルブート環境を構築できること、大容量ハードディスクが非常に安くなったことも手伝っているが。更にWindowsXPの登場はこの状況に拍車をかけている。
また最近のLinuxブームの影響で、これをいじってみたいと思う人も多いはず。しかし当然まだまだWindows環境を捨てることなどできる人は極少数だろう。Linux専用マシンを用意できる人もそう多くはないだろうから、やはりとりあえずWindowsとデュアルでいきたいという人が圧倒的に多いと思う。Linuxも比較的Windowsとマルチブート環境を作りやすいので、挑戦したいと思う人は多いはずだ。
本来ひとつのOSで何でもできればいいのだが、現状ではなかなか難しいし、折角いろいろなOSがあるのなら、いろいろいじってみるのも面白いかもしれない。そもそもハードディスクにパーティションがあるのは、複数のファイルシステムをひとつのハードディスク上に実現するため、すなわち複数のOSを入れるためなのだ。
マルチブートを正しく理解するには、その前提となるPC/AT互換機のブートの仕組みとハードディスクのパーティションについてはかなり高度な理解が必要だ。これらは「ブートの仕組み」と「パーティションとその切り方」を参照してほしい。原則としてこれらのページで解説していることは、復習程度でしか繰り返さないので、そのつもりで読んでほしい。またそれぞれのOSを使っていく訳だから、そのOSについての基礎的な知識はあるという前提での説明になる。
もっともマルチブートの中にはWindows9x系とWindows NT系のマルチブートのように殆ど知識などいらずに実現できるものもある。しかしたとえ実現は簡単でも、ひとたびトラブルが起こるとOSが起動しない事態になるので、多くの人がパニックになる。ここではそのような事態でも正しく対処するための知識を提供するのが目的なので、基礎知識はサボらずに身に付けてほしい。
マルチブートの正しい理解で肝要なのは、そもそもこのOS横断的、ファイルシステム横断的行為を、OS依存的世界とその埒外の世界でどうコントロールしているのかを見極めることだ。
と、言われてもちょっと難しいと思う。まず注目してほしいのは、ブートプログラムがハードディスクのどこにインストールされるのかだ。それがわかるとブート手順のどのプロセスに介入してくるのか、少し見えてくると思う。いずれにしてもブートの仕組みとパーティションについての知識が中途半端ではマルチブートについても到底正しく理解することはできないから、何度も言うようだが基礎知識はしっかり身に付けてほしい。
OSをはじめソフトウェアの場合、我々はライセンスというものを購入してそのソフトウェアを利用する。実際は物理的なCD-ROMなどのメディアで購入することが多いわけだが、その物理媒体が購入の対象ではない。そのソフトウェアを使用する権利(ライセンス)を我々は購入するのだ。
購入したライセンスによって許諾される権利はそのソフトウェアによって様々だが、必ずライセンス契約書などに明記されている。これらの条項は遵守しなければならない。ライセンス違反はれっきとした犯罪である。
アプリケーションソフトによっては、一人の人が使う限り、複数のPCにインストールすることを許諾しているものもある。しかしOSなどの比較的巨大なソフトウェアの場合、1ライセンスで複数インストールを許諾しているものは非常に稀だ。
マルチブートを行う場合、ややもするとこのライセンス違反を起こしてしまう場合がある。各OSのライセンス条項を十分に読んで、違反のないように構築する必要がある。
例えばWindowsなどではアップグレード用の廉価な版が発売されることがある。アップグレード版はアップグレード対象である以前の版の使用権を放棄することを条件として安価に提供されるのが普通だ。従ってアップグレード後は以前のOSを使用することは許されないから、アップグレード版ではマルチブートができないと考えてもらった方がいいだろう。
ライセンス違反にはくれぐれも気をつけてマルチブート環境を構築してほしい。
さて基礎知識は身に付けるにしても、一言でマルチブートと言っても様々なスタイルがある訳だから、その全てを知らねば実現できない訳ではない。目的に応じて必要な知識の量は変わってくる。
このサイトで紹介するマルチブートの方法も全てのマルチブートを網羅した訳ではないが、非常に広範に渡っており、読みこなすには骨であるかもしれない。従ってコースによって、読むべきページ、ポイントとなる項目を整理しておく。以下では基礎知識ページとはこのページの残りの部分、「ブートの仕組み」、及び「パーティションとその切り方」を指す。
OSの起動には何らかのブートプログラム(ブートローダ)は必ず必要だ。従ってOSには必ず何らかのブートローダが付属している。しかし多くはユーザがあまり意識しないでインストールされるものであるため、その存在に気づかない場合が多いだろう。Windowsをインストールした場合に、MBRに書き込まれるIBM、Microsoftオリジナルのブートストラップローダなどはその典型だ。
OS付属のブートローダは通常そのOSの起動のために用意されるので、他のOSの起動を考える必要はないのだが、後から開発されたOSの場合、既存OSとの共存を意識してユーザとの対話型の動作を行って、OSの選択起動を可能にしているものが多い。
マルチブートには、このような対話型のブートローダが必要だ。ただそれは上記のようにOSに標準で付いていたり、フリーソフトだったり、結構値のはる市販品だったりと様々だ。またOS上で稼動するExcelやWordといったアプリケーションソフトとは根本的に違うものなので気をつけてほしい。
以下にいくつかのブートローダを挙げる。IBM、Microsoftブートストラップローダ以外は全てマルチブートにとって必須の対話型ブートローダだ。赤色のものがこのサイトで解説している(または解説予定の)ものだ。
ざっとこれらのブートローダの特徴を表にしてみた。太字のブートローダは実際私が使ったものだが、それ以外は使っていないので、表の項目はドキュメントやWeb上の情報、人伝えで埋めたもので確実ではない。また私が使ったものでもバージョンによって違う可能性が高いので、鵜呑みにしないでほしい。項目の説明はおいおいしていく。
インストール先*1 | インストール方法 | 必要なファイルシステム | 選択方法 | アクティブ切り替え | 隠し領域 | 拡張領域起動*2 | Multi-FAT機能 | 8GB超 | ドライブスワップ*3 | FD起動*4 | MBR起動*5 | パスワード | 電源断 | 特記事項 | |
IBMブートストラップローダ | MBR | DOSコマンド | なし | なし | なし | なし | なし | なし | 可 | 不可 | 不可 | 不可 | なし | 不可 | |
NTLDR | FS | NTに付属 | FAT or NTFS | メニュー選択 | なし | なし | 論(NT系のみ) | なし | 可 | 不可 | 不可 | 不可 | なし | 不可 | |
LILO | MBR, PBR, FD | Linuxコマンド | ext2 | メニュー選択 | あり(選択可) | あり | 拡、論 | なし | 可 | 可 | 不可 | 不可 | あり | 不可 | シリアルコンソール |
MBM | MBR, FD | DOSコマンド | なし | メニュー選択(マウス可) | あり(選択可) | あり | 拡、論 | なし | 可 | 可 | 可 | 不可 | なし | 可 | メニュー画像変更可 |
Extended-IPL | MBR, FD | DOSコマンド、UNIXコマンド | なし | メニュー選択 | あり(実行時選択可) | なし | 論 | なし | 可 | 可 | 不可 | 不可 | なし | 不可 | |
GNU GRUB | MBR, PBR, FD | UNIXコマンド | FAT, ext2, ffs, ReiserFS, Minixfs | メニュー選択 | あり(選択可) | あり | 拡、論 | なし | 可 | 可 | 可 | 可 | あり | 可 | シリアルコンソール、ネットワーク起動 |
XOSL | MBR | DOSコマンド | FAT or 専用領域 | メニュー選択(マウス可) | あり(選択可) | あり | 拡、論 | なし | 可 | 可 | 可 | 可 | あり | 可 | SXGA表示、他ローダ連携機能 |
SBM | MBR | DOSコマンド | なし | メニュー選択 | あり(選択可) | あり | 論 | なし | 可 | 可 | 可 | 可 | あり | 可 | CD-ROM起動 |
OS/2ブートマネージャ | FS | 専用領域が必要 | なし | あり | 論 | なし | 不可 | 不可 | 不可 | 不可 | 不可 | ||||
システムコマンダー | MBR | Windowsコマンド、専用ディスク | FAT or NTFS | メニュー選択(マウス可) | あり(選択可) | あり | 論 | あり | 可 | 不可 | 可 | 不可 | あり | 不可 | メニュー画面のスキンを変更できる |
BootMagic | MBR | Windowsコマンド、専用ディスク | FAT | メニュー選択(マウス可) | あり | あり | 拡、論 | なし | 可 | 可 | 不可 | 不可 | あり | 不可 | メニュー画像変更可 |
BootWare | MBR | FAT | メニュー選択 | あり | あり | あり | 可 | 不可 | |||||||
SystemSelector2 | MBR | FAT | メニュー選択(マウス可) | あり | あり | 論 | あり | 可 | 可 | 不可 | あり | 可 | |||
Select-IT | MBR | FAT | メニュー選択 | あり | あり | 不可 | 不可 | 不可 | |||||||
GAG | MBR, PBR, FD | DOSコマンド | なし | 番号入力 | あり | あり | 論 | なし | 可 | 可 | 不可 | 不可 | あり | 不可 | |
Booteasy | MBR | DOSコマンド、UNIXコマンド | なし | PFキー入力 | あり | なし | 不可 | なし | 不可 | 不可 | 不可 | 不可 | なし | 不可 | |
OS-BS | MBR | DOSコマンド | なし | 番号入力 | あり(選択可) | なし | 不可 | なし | 不可 | 不可 | 不可 | 不可 | なし | 不可 | |
Bootactv | MBR | DOSコマンド | なし | 番号入力 | なし | なし | 拡 | なし | 不可 | 不可 | 不可 | 不可 | なし | 不可 | |
SyMon | MBR | DOSコマンド | なし | メニュー選択 | あり(選択可) | あり | 拡 | なし | 可 | 不可 | 可 | 可 | あり | 可 | 36個の基本領域 |
SystemManagerV | MBR | 専用ディスク | 専用領域が必要 | メニュー選択 | あり | あり | 論 | あり | 可 | 可 | 可 | 可 | あり | 不可 | 255個の基本領域 |
RPM | MBR |
DOSコマンド | なし | メニュー選択 | あり | あり | 不可 | なし | 可 | 不可 | 可 | 不可 | あり | 不可 | 31個の基本領域 |
*1: FS=ファイルシステム上、MBR=マスターブートレコード、PBR=パーティションブートレコード(ブートセクター)、FD=フロッピーディスク。
*2: 拡=拡張パーティションブートレコードを起動できるもの。論=論理パーティションから起動可能なもの。
*3: MSのOSを第1ハードディスク以外から起動するためのドライブIDのスワップ機能。
*4: メニューからフロッピーディスク起動を選べるもの。
*5: メニューから他のハードディスクのマスターブートレコードの読み込みができるもの。
現在発売のWindows2000は、MBRに独自のシグニチャを記録しており、その情報が破壊されてハードディスクを最初に認識した時とパーティションの情報が変わると、マウントに失敗して起動不能になるという、とんでもないバグがある。具体的症状としては、ログイン後すぐログアウトしてしまい、またログインプロンプトが出るという、ログイン動作のループ状態になり、絶対にログインできない。
この問題については、「ブート ドライブ文字が変更されているとログオンできない」に解決方法が記されている。かなり面倒な方法が沢山書いてあるが、とりあえず、もしWindows9xの起動ディスクを持っているなら、上記ページの解決方法の最後の方にある「fdisk /mbr」でシグニチャのクリアするのが圧倒的に簡単だろう。
ページには条件の解説で意味不明な部分があるが、複数のハードディスクを接続している場合は全てのハードディスクに対して「fdisk /mbr」を実行する必要があるようだ。これによって問題が回避されることを私も確認している。
では、早速本題として、各OSの通常のブート手順から見ていこう。