woshidan's loose leaf

ぼんやり勉強しています。

パーティションとは

土曜日は寝ました。まぁ、そんな季節か。。 来週はもくもく会もあるし取り返せるといいな。

ハードリンクとシンボリックリンクの説明の中で

さいきん、研修を受けていて、研修でハードリンクとシンボリックリンクの違いを簡単に教えてもらいました。 自分としては、

  • ハードリンクは、iノードを指すポインタのような物
  • シンボリックリンクは、iノードへのジャンプ文が入ったプログラムのような物

として理解しているのだけれど、

はじめてUNIXで仕事をする人が読む本

はじめてUNIXで仕事をする人が読む本

に書いてあったシンボリックリンクの説明の

シンボリックリンクは、特殊なファイルにリンク先へのパスが記録されている物で、パーティションをまたいだリンクも作成する事が できる。ただし、参照の際には一回アクセスが増える事になる。

パーティションってなんだろう、と気になったので調べました。

パーティションとは

参考にしたのはこちらこちらです。

Linuxキーワード - パーティション:ITpro

Windowsユーザーに教えるLinuxの常識(1):パーティション分割/非分割のセオリー (1/2) - @IT

まず、パーティションとは。

1台のハード・ディスクを区切るための単位。「領域」とも言います。1台のハード・ディスクで,システム部分とデータ部分,AというOSとBというOSといったように,目的やシステムの違いで,区切るときに使います。

Windowsにおけるパーティション

windows時代が長かったのでぴんとこなかったのですが、 windowsでは、パーティションをAドライブ、Bドライブ等のドライブとして扱っているようです。

HDDがファイルシステムの都合で32MByte以下しか使えなかった時代、HDDを複数パーティションにわける事で、全部のHDDを使おう、というのが始まりなのではないか、と紹介されています。

ファイルシステムの都合というのはCPUの性能の制限だったのだろうなとか、思わなくもないです。 いま快適に動作するにはCドライブに数百MByteの空き容量が必要とか言われるのでなかなか想像できないですね。

Linuxにおけるパーティション

Linuxでは,パーティションをドライブと区別して「デバイス」として扱います。各デバイスは,「/」(ルート)から始まる1つのツリー構造に,マウントして利用します

よく分かりにくいのですが、例を見てみると、

windowsパーティションはCドライブ、Dドライブのようにやや汎用的なデータの保存領域がデータを保存するハードの位置によって分かれている印象があるのに対し、

Linuxパーティションは、CDROM用のパーティションなど特定の用途ごとに分かれています。

詳しい事は調べなきゃいけないんですが、devディレクトリに接続されているデバイスが入っているらしく、

mount /dev/hda5 /home
// mount device position
// device   マウントするデバイス(ファイル)を指定する
// position ファイル・システムをマウントする場所を指定する

のように、/dev以下のデバイスを表すファイルが入ったディレクトリ、あるいはそのディレクトリのデータを保存するディレクトリ(device)を指定して、それを論理的にシステム上のどこのディレクトリ(position)と対応させるか、 を指定するみたいです。

このように、デバイス上のファイル・システムを使用するために、システム上のディレクトリと対応づける処理をマウントというようです。

また、マウント先として、/mntディレクトリは一時的にUSBなどのデバイスを使う際にマウント先として指定される事が多いようです。