インストール 3 パーティションとディレクトリについて

作成:

さて、次回からHDDのパーティションを切るわけですが、 ここでHDDのパーティションについて触れておきます。
HDDには基本領域と拡張領域あわせて最大4つの領域を設定できます。 (Windowsのfdiskでは基本領域は一つしか設定できませんが、 それはソフトの仕様であってHDDの規格による制限ではありません。)
パーティションは基本領域と、拡張領域に設定した論理領域の2種類があります。 基本領域は上記の制限で最大4つまでしか設定できませんが、論理領域に数の制限はありません(たぶん(笑))。 ですから、パーティションを4つ以上確保したい場合、拡張領域を設定しないといけません。

Linuxに必要なパーティションですが、システム全ての入る/(ルート)と スワップ(仮想メモリに使われる領域)の二つのパーティションがあればLinuxのインストールには十分です。 しかし、他のOSでも言えることですが、 頻繁にファイルが書き換えられる領域を別パーティションにすることでディスクの断片化を防いだり、 ユーザによって作成されるファイルの保存される領域をシステム領域と切り離すことで、 システムの障害からデータを守ったり出来ます。

Linuxではすべてのファイルシステムが/(ルート)からつながる木構造のディレクトリシステムの中で表現されます。 (ディレクトリとはWindowsなどでいうところのフォルダに相当するものです) つまり、他のディレクトリ(サブディレクトリ)とファイルの入った論理的な領域へのリンクですが、 パーティションへのリンクとすることも出来ます。(この場合マウントポイントと呼ばれる。 また、CD-ROMなどを使うときも、その都度このファイルシステムの中に組み込む(マウントする)必要があります。)
そして、Linuxではそれぞれのディレクトリには役割があるので、 その役割に応じてそのディレクトリを別パーティションに設定することで上記の利益を享受できます。

ディレクトリの役割を知らないとうまくパーティションを切ることが出来ません。 以下にVine Linuxで標準で用意されるディレクトリとその役割を示します。

ディレクトリ役割
/(ルート) 全てのファイルシステムの中心、根(ルート)となる。
/bin システム管理者とユーザが使う最も基本的なコマンドが入っている。 他のディレクトリがマウントされないシングルユーザモード (Windowsでいうところのセーフモードのようなもの)でも使えるコマンドが収められる。 当然このディレクトリは/と違うパーティションには収めるべきではない。 また、インストール後もこのディレクトリに変更を加えるべきではない。 手動でアプリケーションをインストールする場合も/opt/localや/usr/localなどに入れるべきである。
/boot ブートの際必要なファイルが入っている。カーネル(純粋なOSそのもの)本体もここ。 当然このディレクトリが破壊されるとブートできない。インストール後はカーネルにさわるとき(再構築)以外は触れることはない。 LILOのバージョンによっては、このディレクトリはHDDの先頭から1023シリンダ以内にないと起動できない場合がある。 そのため別パーティションにしてこいつだけ先頭に置かれることが多い。
/dev デバイスファイルが収められている。Linuxではデバイスを抽象化してファイルとして扱える。 ここのファイルが変更されることはないと考えていい、また安易に削除したりすると危険。(削除できなかったかも?)
/etc 様々な設定ファイルが入っている。 何かの設定をするときは、たいていここのファイルを書き換えたり、新たなファイルを加えるなどする。 ホストに固有の設定なので、他のホストと共有することはできない。また、安易に書き換えると起動すら出来なくなる可能性もあり。 名前の由来はやっぱり「etc.」だろうな(今調べたら「etc」は「and so on」と読むそうだ、初めて知った)
/home ディフォルトでは各ユーザのホームディレクトリがここに作られる、httpやftpで使用するディレクトリもここ。 別パーティションにしておけば、いざというときデータを救い出すことができる。
ユーザが自由に使える領域はここだけなので、ユーザが使う時に消費するディスク容量は完全にここへ集中することになる。
/lib 共通のライブラリがあるディレクトリ。 Linuxではシェアドライブラリと呼ばれるダイナミックリンクライブラリが使われており、そのライブラリファイルが収められる。 WindowsでいうところのSystemフォルダのようなもの?(.dllファイルはここに入れるからね)
と言いつつも、ライブラリはここ以外に/usr/libや/usr/local/libに格納される場合の方が多いかも・・・
/lost+found fsckでディスクをチェックしたときに作られる、破損ファイルの断片を収めるディレクトリ。 /に限らず様々なディレクトリに存在しているが、 実際に破損したファイルから元のファイルを復元することは出来ないと考えた方がいい・・・らしい。
ちなみにジャーナリングファイルシステムを採用した場合はこのディレクトリはない。
/misc ???不明、インストール直後は空っぽ(誰か知ってたら教えて)。misc.は英語ではmiscellaneousの略らしいが・・・多種雑多なもの?
/mnt 一時的なマウントポイント、ふつうにインストールしていれば/mnt/floppyや/mnt/cdromなどがあると思う。
ここにあるディレクトリは起動後にmountコマンドでマウントするようなドライブのマウントポイントがある。(最近は自動的にマウントしてくれたりもする)
/opt パッケージ管理システムでプログラムをインストールする場所 (らしいが自信がない。実際私の構成では空っぽだし、/usrや/usr/localが使われるみたいだ)
/proc カーネルの内部情報にアクセスするためのファイル(実体はなくファイルのように見えるもの、という方がいいかも)がある。 メモリの使用状況やCPUの種類、第4回でみたPCIの状況などを見ることが出来る。
/root システム管理者(ルート)のホームディレクトリ
/sbin システム管理者が使う管理に必要な基本的なコマンド、ここも/bin同様に扱う。
/tmp その名の通りテンポラリ領域、つまり一時的な作業に使われる領域。断片化を防ぐ意味で別パーティションにする候補、 どのユーザも使うことが出来るが、いつ削除されてもかまわないファイルをおく場所なので、重要なファイルはおかない方がいい。 また、他のユーザに漏れては困るような情報が含まれるファイルは、このディレクトリに置くのは危険である。
/usr アプリケーションやその設定ファイル、フォントなどのアプリケーションが使うデータ、 アプリケーションのソースファイルなど様々なものが収められる。
/var ログやキャッシュ、メールスプールなど変化の激しいファイルがおかれる。サーバの管理ではログの確認も重要な作業。 変化の激しいデータが多く格納されるので別パーティションにして断片化を防ぐといい。 また、ウィルス・ワームなどのアタックによってログが急激に増加する場合があるが、 別パーティションに設定しておけばシステムの動作に支障が出るまでログが増大することはない。

だいたい上に書いたような役割になっています(自信がないので詳しい人のツッコミ待ってます)。
これをふまえて、一般に別パーティションに分ける場合のあるディレクトリについてどの程度の容量が必要かを示します。

ディレクトリ容量
/
(必須)
/のみで構成しようとした場合、インストールするパッケージによってまちまちだが1GB程度以上が必要 (RedHatなんてフルインストールで5GBとか必要らしいが)
/usrや/home、/varが別にあるのなら最低限100MB程度でもかまわないらしい。 とはいえ/は全ファイルシステムの中心あるため、足りなくなったときの移動が面倒なので、余裕を持って用意すべし。
/boot 起動の際ここからカーネルが読み込まれるため非常に重要、 このディレクトリが存在するパーティションは基本領域でなければならない。 (ブートローダによっては論理領域でもいいみたいだが、基本的にブートパーティションは基本領域なので) 必要な領域はVineLinuxのマニュアルでは16MB程度と書かれている。 私のインストール直後の状況では3.1MBが使用されていた。
/home 必要なだけ(としかいいようがない)、最近のHDDは10GB以上がふつうなので、その場合、 他のパーティションに振り分ける容量を決定したあと余った容量を全てという風に決めるといいかも。 インストール直後はほぼ空っぽ。
使い方次第では1GBも必要なかったり、1TBあったって足りなかったり・・・ HDDを増設する場合はここが足りなくなったときでしょう。
/usr インストールの時に書き込まれるファイルのほとんどがここに入る。(WindowsでいうところのC:\Program Filesみたいなもの?)
また、インストール後にアプリケーションやライブラリなどをインストールするときもこの領域が使用される。
1GB程度あれば通常は問題ないが、ワークステーションやアプリケーションサーバとして使用し、 様々なパッケージをインストールする予定なら、余裕を持って大きめに用意しておく。 (フォントをインストールしたりすると結構食われます。こういう場合5GB以上必須?) 特に使う予定がなくても、容量に余裕があるなら2GB~4GBほど用意しておくといいかも。
/tmp 作業領域なのでそれほど重要でない。最低限100MB程度あればいいらしい。
/var 使用目的、使用状況によって変わるが、最低限500MB程度あればいいらしい。
/usr/local
/opt
/opt/local
アプリケーションを手動でインストールする場合、 他の領域と分けておけばOSを再インストールしたときアプリケーションの再インストールの手間が省ける。(でも私は分けない(笑)) 容量は好きなだけ。
SWAP
(必須?)
現在は大容量のメモリを搭載できるようになったため、かつてほど必要性はなくなった。
しかし、明示的にこの領域を使用するプログラムがあるらしいので、スワップ領域なしで構成しない方が無難。 (たぶん今のVineでは、なしでインストールできなかったと思う)
メモリ容量の少ない時代にはメモリ容量の倍くらいといわれていたが、128MB以上の容量のメモリを搭載しているなら100MBも用意しておけば十分。

「~らしい」ばっかりですみません。 しかし、使用目的とかによって大きく異なるのではっきりとしたことは言えません。 全部/でも全くかまわないので、迷ったらまず/に全部を割り当て、様子を見るのも手です。 また、実際に使用するつもりの容量の倍以上用意していれば動作にも余裕が出てきます。

後々、パーティションを切り直すことを考えているなら、基本領域と拡張領域の混在に注意してください。 拡張領域の変更を行うには、その上に設定したすべての論理領域を一度削除しないと行けません。 そのため、Linuxのみの構成の場合、先頭に/bootパーティションを基本領域で一つ用意して、 残りをすべて拡張領域に割り当てる方針がいいかもしれません。論理パーティションの数には制限がありませんから、 後々変更する場合の自由度は高いと思います。(でも、この通りにしておかしくなった、とかいわれても責任持てません)
論理パーティションに数の制限がないのは、そのパーティションの情報を鎖状に持っている (先頭のパーティションが2番目のパーティション情報をもっていて2番目のパーティションが3番目の情報を持つといった具合)からなのです。 ということは、パーティションそのものが壊れるといった状態に陥ると、拡張領域全体がアクセス不能に陥る可能性があるため、 安全性という意味では基本領域を利用したほうがいいんですが・・・。 まあ、パーティションそのものが壊れるような事態がそうそう起こるわけではないでしょうし、 そんな状態に陥った場合、基本領域でパーティション切っていれば大丈夫なのかというと微妙だと思うので気にする必要はあんまり無いのかなぁ。 でもマーフィーの法則ってことも・・・

最後にHDDのデバイス名について、(Windowsでいうドライブ名に相当するものはありません、 そのパーティションにアクセスするにはマウントしてからマウントポイントへアクセスします。 またマウントされていないドライブにはアクセスできません) IDE HDDは認識された順にhda、hdb、hdcといったように名前が割り振られます。 この名前は直接デバイスを指定する必要があるとき以外は使われません。 また、パーティションはhda1、hda2といったふうに、 HDDのデバイス名の後に番号が振られたデバイス名になります、 基本領域と拡張領域に1~4、論理領域に5~の番号が振られます。

それでは、次回やっとインストールの続きです。