2011/02/09

Windows 7のパーティション構成

(以下は、Windows 7 32bit版の話)

Windows 7では、既定のパーティション構成がそれまでのWindowsとは大きく違っている。具体的には、起動直後のロード用のプログラムが格納されるシステムパーティションと、Windows自体が格納されるブートパーティションが作成される。

従来は、ntdlr, boot.ini, ntdetect.comといったブートに必要な重要なファイルは、ブートディスクのアクティブとマークされたパーティションにおかれた。ブートディスクはBIOSレベルで決められる。BIOSは、ブートディスクの先頭セクタであるMBR(Master Boot Record)を読み込み、MBR内のブートストラッププログラムに制御を移す。ブートストラッププログラムは、MBRに格納されているパーティションテーブルを検索してアクティブパーティションを見つけ、アクティブパーティションの先頭にあるブートセクタを読み込んで、そこに制御を渡す。そのブートセクタが、そのパーティションにあるntldrを読み込んで、Windowsが起動するという流れだった。MBRやブートセクタは、Windowsインストール時にディスクに書き込まれる。

というわけで、ntldr, boot.ini, ntdetect.com, 加えてブート時に使われるSCSIドライバは、通常ファイルを同じようにディスクに置かれていた。誤ってこれらのファイルを消してしまったり、変に編集してしまうと、Windowsが起動しない、ということになっていた。

Windows 7では、「ディスクの管理」でみるとCドライブのまえにシステムとマークされているパーティションがおかれている。ここに最初に動くプログラムのbootmgrなどが格納されている。bootmgrは、起動時にメニューを出しているブートローダだ。bootmgrが参照する設定ファイルも、このシステムパーティションに格納されている。Linuxの/bootを独立のパーティションにして、カーネルイメージ、初期ディスクイメージ、ブートローダをおく場合があるが、あれと同じ感じである。

以前とは随分違うし、システムパーティションにドライブレターが割り当てられていないが、これがWindows 7での正常な構成だ。プレインストールモデルではこのパーティションにシステム復旧用のプログラムが入っている場合もある。ThinkPadなら、Rescue and Recoveryのプログラムが格納されている。
 
基本的には、EFI(Extensible Firmware Interface)を搭載している64bit機に合わせたのだろうが、ブートの信頼性が格段に増しているように感じる。ブート関連のファイルを誤って消すといったことが、ほぼなくなるといってよいと思う。このシステムパーティションが重要である、とわかっていればだけど。
 
と言うわけで、ディスク領域は食っているけど、このパーティションはドライブレターを付与せずに、残しておくのが正解だと思う。

0 件のコメント :

コメントを投稿