GPTへの移行
Windows 7は、ブートに関してはVistaと変わりありません。
一方、(Windows 7特有のことではないですが)HDDのパーティションに関して大きな変化が迫ってきています。すなわち、従来のMBRからGPTへの移行で、2TiB(≒2.2TB)を超える容量のHDDを使うにはGPT形式にすることが基本的に必須となります。
GPT形式で初期化してパーティションを作成したHDD(GPTディスク)では、パーティションの形式が従来の形式で初期化したHDD(MBRディスク)とは違い、GPTディスクからブートするときの過程も違ってきます。
このGPT自体は以前からありましたが、これまではわざわざHDDをGPT形式にする必然性がありませんでした。が、既に3TBのHDDが流通しており、当座はデータ用ですが、UEFIのマザーボードが普及してくれば、いずれGPTディスクからのブートが普通になります。その時点で、このサイトの内容はかなりの部分が時代遅れになりますので、留意してください。
なお、GPTディスクは単に大容量のHDDが使える以外にもメリットはあり、基本パーティション(うち1つは拡張パーティション)の数の上限が、従来の4から128へと大きく増えます(拡張パーティションはなくなる)。これまではパーティションの数を増やすには拡張パーティションを使わざるを得ず、そのやり繰りに頭を使う必要がありましたが、その心配がなくなるので、パーティション管理の自由度が広がります(ということをメリットと思う人がどれだけいるかは知りませんが)。
[参考情報] | Microsoft: | GPTドライブを使用する WindowsとGPTに関するFAQ |
Windows Vista
Vistaでは、OSのブートとパーティション操作に関して、比較的大きな変更がされています。
A. Vistaにおけるブート
ブート時のブートローダーがNTLDRからbootmgrへ、ブートに関する設定の保存先がBoot.iniからBCD(Boot Configuration Data: ブート構成データ)へ変更されています。
- bootmgrからは、
NTLDRと同様に、他のNT系のカーネルを呼び出しての起動NTLDRの起動による(NTLDRが他のNT系のカーネルを呼び出すことによる間接的な)NT系の起動と、Linux等のPBRを読み込んでの起動が可能。 - bootmgrを、NTLDRからPBRを読み込んで起動させることはできないらしい。
- bootmgrを、LinuxのGRUBからPBRを読み込んで起動させることはできる。
[参考情報] | @IT: Windows VistaとLinuxを共存させるには(Windows Vista編) |
BCDは、Boot.iniのようなテキストファイルではなく、バイナリファイルになっており、直接編集することはできなくなっています。編集するには、Vistaに入っているbcdedit.exeというコマンドラインのツールがありますが、ユーザーフレンドリーとは言えません。
[基本情報] | Microsoft TechNet | Boot Configuration Data Editor Frequently Asked Questions ブート構成データ エディタについてよく寄せられる質問 |
そこで、サードパーティからVistaBootPro(PROnetworks)、EasyBCD(NeoSmart Technologies)というツールが出ています。
また、BCDになったことと関連して、既にインストールされたVistaの移動、バックアップからの復元には厄介な問題があります。BCDでは、ブート時にOSカーネルを起動するwinload.exeの場所の指定にドライブレターを使っていますが、ドライブレターと実際のパーティションとの紐付けに、HDDの「Signature」とパーティションの開始セクタを使っている(ブート後のXPと同じ)ようです。このため、パーティションを別のHDDに復元した場合(「Signature」が変わる)、同じHDD内で移動した場合(開始セクタが変わる)等は、winload.exeを見つけられなくなり、Vistaはブートできなくなります(作業に使うツールがうまく調整するようになっていれば問題ない。Acronis True Imageは少なくとも11では問題ない)。
この問題を解決する方法としては、
- 一番簡単なのは、VistaのインストールDVDからブートして修復する(「今すぐインストール」という画面から、下の「コンピュータを修復する」、「システム回復オプション」、「スタートアップ修復」を辿る)ことです。
- Vistaプリインストール機で、VistaのインストールDVDはないが、インストールファイルはHDD内にあるという場合、Windows PE 2.0の起動CDを作成すれば、このCDから起動し、コマンドラインからHDDのインストーラ(Setup.exe)を起動することで同様のことができるはず。
[参考情報] @IT: Windows PE 2.0による起動ディスクの作成手順 - 予めVistaのBCDを「generalize」(一般化)しておくという方法もあります。
[参考情報] Multibooters - Dual/Multi Booting With Vista: Cloning Vista
(この他にもVistaの起動に関する情報がまとめられている) - 他に起動可能なXP/Vistaがある環境では、EasyBCDの「Diagnostic Center」から「Reset BCD storage」を行うことで回復できるかもしれません。
B. Vistaにおけるパーティション操作
- Vistaでは、OS標準の機能として(「ディスクの管理」から)、システムパーティション/ブートパーティションを含めてパーティションの後尾方向への拡大/縮小が可能です。したがって、HDDが単一のパーティションになっている場合に複数のパーティションに分ける、あるいはその逆が簡単にできます。ただし、先頭方向への拡大/縮小、移動はできません。
- 一方で、拡張パーティションを任意に作成することができなくなっています。2番目と3番目のパーティションを作成すると自動的に基本パーティションとなり、4番目にパーティションを作成すると自動的に拡張パーティション内の論理ドライブとなります。したがって、パーティションが1つしかないHDDに任意に拡張パーティションを作成するには、拡大/縮小機能を利用して、1番目のパーティションを一旦縮小し、その部分にダミーの2番目と3番目のパーティションを作成し、4番目のパーティション(拡張パーティション内の論理ドライブとなる)を作成した後で、2番目と3番目のパーティションを削除し、1番目のパーティションを元に戻すという作業が必要になります。
- Vistaが作成するパーティションは、XP等の以前のOSとの互換性の問題があり、パーティションが消失することがあります(作者の場合、HDDの「Signature」変更時にVistaとXPの両方で「MountedDevice」を再構築させたときに発生)。少なくともPartitionMagicとは互換性がないです。したがって、以前のOSと共用するパーティションは、そのOSの方で作成した方が無難です。
C. XPとのデュアルブート
追加ツールなしでXPとデュアルブートできるようにするには、Vistaのbootmgrを利用することになります(bootmgrはntldrを起動できるが、逆は不可なので)。
[参考情報] | Windows Vista Info.: VistaとXPのマルチブート |
- XPが起動する状態のHDDにそのままVistaをインストールすると、NTLDRがbootmgrから起動できるように自動的に設定され、デュアルブートできるようになります。Boot.iniの設定内容はそのまま残ります。これは、Vistaのインストーラが既存のアクティブな基本パーティションを自動的にシステムパーティション(XPにおけるntldr、Vistaにおけるbootmgrがある基本パーティション)としたもので、システムパーティションを共有する状態です。
- XPとはシステムパーティションを含めて完全に別のパーティションにVistaをインストールした場合(そのためには、予めXPとは別の基本パーティションを用意してアクティブにしておく必要あり)、bootmgrからXPを起動できるようにするには、
- XPのシステムパーティションからntldr、ntdetect.com、Boot.ini、bootfont.binをVistaのシステムパーティションにそのままコピーする。
- BCDにXPのエントリを追加する(EasyBCDを使う場合は、「Add/Remove Entries」を開き、Typeは「Windows NT/2k/XP/2k3」、Nameは適当、Driveはシステムパーティションを指定したエントリを追加する)。
前書
PC/AT互換機では、複数のOSを切り替えて起動することができます。
A. 必要性
かつては複数のOSを切り替えて使う(実用上の)理由が色々とありました。主に以下のようなものです。
- MicrosoftのOSで、Windows 95/98/MeとWindows NT/2K/XPを切り替えて使う。
- 古いOSと新しいOSを切り替えて使う(新しいOSにアプリケーションやデバイス・ドライバが未対応の場合等)。
- 同じOSの複数の言語版を切り替えて使う。
しかし、これらの理由は既になくなっています。
- MicrosoftのOSは、(古いPCを除けば)XPに統一されている。機能的に、わざわざ古いOSを使い続ける理由もない。動作的にも、ここ数年のハードウェアでメモリが512MBもあれば、XPが重くて使えないということはまずない。
- アプリケーションやデバイス・ドライバは、(既に開発が終了したようなものを除けば)XPに対応済み。古いOSが必要な場合でも、Virtual PC等の仮想PCソフトを使う方が(ハードウェア的な条件が満たせれば)かなり便利。
- XPでは、複数の言語を扱うことが可能(英語版で日本語を使う等。多少の残った問題はあるにせよ)。
したがって、Linux等を使う場合、純然たるテスト目的の場合、メンテナンス用の環境を用意する場合等を除いて、複数のOSを切り替える必要性はほとんどないと言って間違いではないです(いきなり自己否定ですが)。
B. 方法
何はともあれ、複数のOSを切り替えるには、以下の方法があります。
- ソフトウェア的な方法
- このサイトの主眼です。1つのHDDの中で切り替えることも可能です。状況に応じてハードウェア的な方法と組み合わせれば、かなり柔軟な切り替えが可能になります。
- ハードウェア的な方法
- 単純明快です。OSを起動するデバイス(HDD等)ごと切り替えます。以下のようなものがあります。
- HDDを物理的に入れ替える。
- デスクトップPC用のリムーバブルHDDケースにHDDを収容して交換する方法。一番単純明快。難点はHDDの熱がこもりやすいこと、及びHDDの音漏れ(冷却のためにファンを回せばその動作音も)。
- ノートPCでも、ThinkPad等の比較的簡単にHDDを交換可能な機種では、同様のことが可能(ただし、あまり頻繁な交換は想定外)。
- BIOS設定でブートする(注)HDDを切り替える。
(注) OSが起動することを「ブート」(boot)と呼ぶ。 - デスクトップPCのマザーボードのBIOS設定には、ブート時のデバイス(HDD/FD/光学ディスク等)の優先順を設定可能な機能があり、HDDの間(注)の優先順も変更可能。追加的なハードウェアを必要とせず、慣れればたいした手間でもないので、最も敷居は低い。
(注) ATAのHDD同士、またはチップセット内蔵のインターフェイスに接続したHDDと追加的なホストアダプタ(SCSIを含む)に接続したHDDの間で。ホストアダプタに接続したHDD同士は、そのホストアダプタのBIOSで設定する。 - ノートPCでも、ThinkPad等の差し替え可能なベイに2台目のHDDを内蔵できる機種では、同様のことが可能。
- デスクトップPCのマザーボードのBIOS設定には、ブート時のデバイス(HDD/FD/光学ディスク等)の優先順を設定可能な機能があり、HDDの間(注)の優先順も変更可能。追加的なハードウェアを必要とせず、慣れればたいした手間でもないので、最も敷居は低い。
- リムーバブル・メディアから起動する。
- CD/DVDからブート可能なXPとしてBartPEがある。
[基本情報] Bart's Preinstalled Environment (BartPE) bootable live windows CD/DVD
- CD/DVDからブート可能なXPとしてBartPEがある。
- CD/DVDからブート可能なLinuxとしてKnoppixがある。
[基本情報] Knoppix.net
Knoppix 5.0 日本語版 - USB接続HDDには、ブート可能な製品が存在する(本体側のBIOSがUSBマスストレージ・デバイスからのブートに対応している場合。MBRを書き換えてブート可能にしてしまうソフトも存在する)
- USBメモリにも、ブート可能な製品が存在する(Lenovo=旧IBMのPC部門の製品等。本体側の対応はUSB接続HDDの場合と同じらしい)。
- その他、CFカード等の書き換え可能なメディアで、BIOSがそのメディアからのブートに対応していれば、OSをコピーしてブートすることは理論的には可能。
- HDDを物理的に入れ替える。
- 単純明快です。OSを起動するデバイス(HDD等)ごと切り替えます。以下のようなものがあります。
C. 参考
複数のOSを切り替えて使う上で、特に有用なサイトを掲げておきます。
- Nobusan's Square: ブートとハードディスクのすべて
- ITAYA'S Home Page: マルチブート/デュアルブートのすべて
- Understanding MultiBooting and Booting Windows from an Extended Partition
- The REAL Multi-boot
- ANBの別荘: マルチOSのススメ
インストールされた状態のWindowsを異なるハードウェアで起動する場合の問題を回避する方法について。
Windowsで複数の言語を使う場合について(95に限定されない)。
D. 内容
- このサイトの内容のほとんどは、特に目新しいものではありません。各OSやソフトウェアのマニュアル類、インターネット上の有用なサイト、フォーラム等でのやり取り等を元に、作者自身の経験を加えて整理したものです。その意味で経験則に基づくものなので、このような方法が保証されているとは限りませんし、環境によっては違った結果が出るかもしれません。
- 当然ながら、作者の知識では理解の及ばない現象は未だ少なくありません。また、PCの世界で流布している情報に結構間違いがあるのと同様、このサイトにも間違いがある可能性は否定しません。以前から相当数の間違いを見つけて修正していますが、もし間違いを見つけた場合にはお知らせいただければ有り難いです。
E. 主な更新
新しいネタが出てくれば、随時更新はあるかもしれません。
2008/Jan/5 | Vistaに関する記述を追加。 |
---|---|
2005/Oct/16 | XPに関する記述を追加。大幅に再構成。改訂第2版。 |
1997/Sep/18 | 大幅に拡充。改訂第1版。 |
1997/May/13 | 実質的に初公開。 |
F. その他
- 実際の作業に取りかかる前に、大事なデータはバックアップしておいた方がいいです。思わぬミスや不具合でデータを失う可能性は常にあります。また、最低限、FD等のリムーバブル・メディアから起動できる手段を用意しておくべきです。
- このサイトの内容に関連して何か問題が起こったとしても、作者は責任を負いません。ソフトウェアの使用条件、ハードウェアの保証等に関わることは、自らの責任で判断することです。