パーティション分割の傾向

 DOS系(Windowsファミリーを含む)のOSには、ドライブという概念がある。CD-ROMドライブやフロッピー・ドライブが有名である。ハードディスクは、普通の人にはわかりにくいことだが、ひとつのハードディスクを複数のドライブに分割することができる。
 ドライブというのは、DOS系OS向けの用語である。一般的な用語に直すと、ディスクをいくつかに分けた区画をパーティションと呼び、パーティションに設けて記憶域を区画分割することを俗に「切る」と言うが、パーティションを切る機能はどのように使うのだろうか。
 店頭で売られているPCは、パーティションが1つだったり2つだったりする*1。1つだったり2つだったりする理由は、昔はドライブ内に作成するファイルシステムの仕様に制限があった名残など、いろいろな考え方があるが、何個になっていようが、そうでなければならないという根拠はないと思われる。
 1990年代は複数のOSをひとつのパソコンに入れる「デュアル・ブート」「多重ブート」という手法がはやった。OSを同じディスクに同居するにあたっては、異なるOSのファイルを干渉しあったり、OSの稼動に必要なファイルを間違えて消したりしないようにする必要がある*2。例えば2つのOSをひとつのパソコンに入れて使い分けたい場合は、OS用のドライブを1つずつ、そして両方のOSで共用したいデータを入れる両OS兼用ドライブをひとつ以上、合わせて3つ以上切ることになる。OSをバージョン・アップするときには、ユーザーが作成したデータを兼用ドライブに入れればデータのドライブには変更を加える必要がなくなる。ただし、この方法では、機械から一番最初に読み出される位置にあるドライブ(通常はC)の中身を洗い替えしてしまうと、入れ替えが不要な他のOSを起動するために必要な情報まで消えてしまう。OSの入れ替えやクリーン・インストール*3を行うことを考えると、CドライブからOSやユーザー・データを入れないようにしてOS始動に必要な情報だけを入れるドライブにする。Windowsの用語では「システム・パーティション」と呼ぶ*4。このときは、ドライブがさらにひとつ必要になる。昔は20GB程度のドライブを4つも5つも分けて使ったものである。
 ところが、市販のハードディスクの容量が大きくなってきた。ドライブに容量制限があったころは、パーティションが10にも20にもなるのかと思っていたが、仕様が進化し、大容量のドライブを作成することができるようになった。
 こんな容量をどうやって使い切るのだろうと思っていたはじめのころは、メモリー容量の拡大に伴ってスワップ専用ドライブを作るのがはやった。スワップは、メモリーに格納し切れなかった一時的な情報を仮置きしておく領域である。Windowsは、通常時でメモリーと同じ程度、最大時はメモリーの2倍程度の「仮想メモリー」(=スワップ)を推奨するので、メモリーを256〜512MB積んでいたときにはDドライブ1030MB*5にするのが個人的な定番だった。コンピューターは、メモリーが混雑しているときにスワップをやむを得えない代わりとして使っているが、ディスクの読み書き速度はメモリーに比べて圧倒的に遅いので、読み書きはなるべく早くしたい。そのときスワップは単体のファイルなので、他のファイルがあると読み出しが遅くなる。また、スワップ領域が足りなくなるとコンピューターはスワップ領域を広げようとするので、他のファイルが記憶域の前後にあると邪魔なのである。だから、普通c:\pagefile.sysに格納されるファイルを専用ドライブに移すのである。
 ところが、市販されるメモリー容量はクライアント向けソフトウェアが必要とする以上に大きくなりつづけ、今ではギガバイト超えが当たり前。そこまであるとスワップ・ファイルはめったに使わない。使うことがあっても、スワップファイルもそれに応じて通常時の状態からとても大きく設定され、スワップ領域が広がる機会もないので、他のファイルの存在が邪魔になることもない。
 パーティションの区切りが多すぎると、大きなデータを入れたいときに困る。PCでマルチメディアを扱うことによって、ドライブに格納されるデータ容量が大きくなってきた。他のドライブはすいているのに、入れたいフォルダ(ディレクトリー)が属するドライブは容量がひっ迫していてデータを入れられないといった悩みが起こる*6。データが入った後でパーティションを区切り直すことができるが、専用のソフトウェアを買う必要があるし、パーティションを合併したりすることはできないなど、制限を理解してから作業をしなくてはならない。
 ユーザ・データーを残したままOS入れ替えができるメリットについても、OSをインストールするときに操作を間違えて不要なドライブを消してしまったり、再び起動しなくなったりするリスクを抱えている。結局、PCの外にバックアップをとろうということになる*7。昔は細かく分けた20GBディスクが入ったPCも、今になって再利用するためにOSを一から入れ直す必要があればディスク丸ごと他のドライブにバックアップを取ることになるだろう。不要なファイルを除けば、DVD1枚に収まるかもしれない。せっかく丸ごとバックアップを取るならば、わざわざドライブを細分化する必要がない。
 数年前は100GB前後のディスクを1個のドライブですますのがはやった。Linuxの導入がやさしくなってUNIX風のOSが浸透してくると、UNIX風OSにはドライブという概念がないことから、パーティション分割しないのがかっこいいことのように考える者もいた記憶がある。
 ところが、今は数百GBのディスクが当たり前の時代。ディスクを複数搭載したPCではいよいよテラバイトの時代が近づいてきた。数百GBのドライブを丸ごとバックアップするととても時間がかかる。

ドライブの容量が拡大しても、
ドライブの読み取り速度はそれほど向上していないのである。

また、ディスクは使い続けるとデータが細切れで格納されて整理がつかなくなる断片化現象(フラグメント)が発生する。やはり、パーティションはデュアル・ブート以外の目的でも切るべきであるということになる。
 例えば以下のような場合・・・

  • ドライブバックアップを取得したイメージは大型になる。そのイメージ・ファイルがドライブに入っていると、断片化解消処理(デフラグ)に時間がかかる。また、普段使わないデータを何度もシークするのは単に消耗させるだけなる。脚注にも書いたが、専用のドライブに入れる、操作ミスで消したりしないように、普段は設定によってドライブレターを外して見えなくするようにするとよい。
  • 一部のソフトウェアは、深い層までディレクトリーを作成することがある。5つも6つもフォルダを開けないとたどり着かないほど奥にあると、ファイル指定が面倒であるし、あまりにも絶対パス*8が長いと、パス名を画面表示したくてもはみだしてしまったり、バックアップのソフトによっては受け付けなかったりすることがあり使いづらい。そこで、ソフトウェアを導入するときに「C:\Program Files\(ベンダー名)\(ソフトウェア名)\」に格納するのではなく、E:\(ソフトウェア名)以下に格納すれば多少は短くなる。このときのEはソフトウェア専用のドライブにしておけばわかりやすい。
  • 昔は考えられなかった外付けハードディスクが利用されるようになっている。外付けディスクは、他のリムーバブル・ディスクと同様に独立したドライブとして使うのが普通である*9

*1:PC上で表示されないように設定して、そこにバックアップのファイルを置くことができるようにしているメーカーもある

*2:稼動中のOSは、自分が稼動するときに必要なファイルは消さないように保護する機能がついているが、稼動していない方のOSまで保護するほどお節介ではない。あるいは、他のOSが作成したファイルを、別のOSが自分が作成したと勘違いして余計な編集・削除を行うことがあるかもしれない。だから、OSが自らの稼働に必要とみなすような情報を上書きするような領域に、他のOSに必要なファイルを置かないようにする必要が出てくる

*3:OSの調子が悪くなった場合に、ドライブを初期化したり、ドライブの中身を一切消してからインストールしなおすこと

*4:ちなみに、OSのシステムが入っているドライブは「ブート・パーティション」と呼ぶ。素人の感覚では逆の呼び名の方がしっくりくる。何も考慮せずWindowsを導入すると、Cドライブはシステム・パーティション兼ブート・パーティションになる

*5:1GBちょうどでパーティションを切ると、Windowsでは0.99GBと表示されてしまうので

*6:実際に悩んだので、ファイルサーバーを更新した。詳細は昨日の日記にて

*7:そもそも、デュアル・ブートの何がよかったのだろうかと感じることもある

*8:どのドライブのどの位置にファイルがあるかを記述するときに使う名前。インターネットエクスプローラーの実行ファイルの所在は「C:\Program Files\Internet Explorer\iexplore.exe」と表記する

*9:Windowsでも、UNIX系OSのマウントと同様ができるようになったが、あまり使われていないような気がする