Cドライブと/の違い

C:ドライブは、WindowsやMS-DOSの特徴的な機構です。しかし、これはパソコンの普遍的な要素ではありません。しかしそれらのOSの経験しかない人からすれば、ドライブレター無しに複数のHDDをどう管理するのか、まったく想像できないかもしれません。

WindowsのHDD管理の基礎

HDDを利用する場合は、まずパーティションを作成し、その上でNTFSやFAT32のファイルシステム作成(Windows方言でいうところのフォーマット)を行なう必要があります。
そうすることで、C:,D:などのドライブレターが割り当てられるという形で、Windowsで自動的にそのファイルシステムを使えるようになります。

このドライブレターは古くはドライブ装置に割り当てられるものでしたが、パソコンが複雑化していく過程で、パーティション(内のファイルシステム)に割り当てられるようになり、またRAIDなどの特殊な機構のボリューム(内のファイルシステム)に割り当てられるようにもなりました。

この曖昧なドライブレター機構はFDD全盛期に設計された機構ですから、仕方のないことですが…いろんなトラブル要因を持っています。
  • D:ドライブの存在に気づかずに、C:ドライブの容量不足で悩む人を生みました。
  • D:ドライブがあるからと、HDDが2基搭載されていると勘違いした人はD:ドライブにバックアップをとって、HDDが壊れる日まで過ちに気付きません。
  • E:ドライブがUSBメモリーだと思ってコピーしたら、実際はカードリーダーのSDカードに書き込んでいたなんてことも起きます。

自動的に使えるようにするという発想は時には有用です。ですがドライブレターの場合は不用意な自動認識が、マルウェアの攻撃にすべてのドライブを晒すことになりますし、発想自体は「添付ファイルの自動実行機能があるのだから、これは初期設定で有効になっているべきだ」と考えるのと同じような発想です。
OEの添付ファイルの自動実行はやがて初期設定では無効になったわけですが、ドライブレターの運用ルールは、ずっと変わっていません。

MS-DOS時代にディレクトリーと呼ばれたものが、Windowsではフォルダーと呼ぶように変わったと考えている人もいますが、これは勘違いで、実際にはWindowsでもMacでもLinux系OSでも、ディレクトリーはファイルシステム用語として、フォルダーはGUI用語として使い分けています。
ディレクトリーとフォルダーは、通常は等価ですが、状況によっては、同じではなく、使い分けるべきものです。

LinuxのHDD管理の基礎

LinuxでのHDD管理の根幹は、Microsoft社などが無かった時代からあるUNIXの仕様を受け継いでいます。
FDD時代に始まったドライブレター機構よりも古い設計ですが、UNIXのファイルシステムツリーは合理的に多数のHDDなどのドライブ装置や、NASやRAMディスクなどまでを管理できるものでした。

HDDにパーティションを作成し、ファイルシステムの作成をすることはLinuxでもWindowsと大差はありません。
ただし、UNIX系OSでは、必ずしもファイルシステムを自動認識によって、OSから利用可能にするわけではありません。ドライブレターのような曖昧な名称を割り当てたりもしません。
(たとえばD:ドライブは一つ目のHDD,二つ目のHDD,一つ目の光学ドライブ,一つ目のUSBメモリー,一つ目のカードリーダーのメモリーカードのどれである可能性もある曖昧な名称です)

UNIX系OSでは、そのファイルシステムが、何のためにあり、どうあるべきであるか?これをはっきりと決定した上で、しかるべき場所に繋ぐように設定します。

必要でなけれあ、繋がないでおくこともできますから、バックアップ用HDDを二つ目のHDDとして内蔵しておきながら、バックアップ作業時以外は、システムから切り離しておくようなこともできます。

この接続と切り離しは、マウント/アンマウントと呼ばれ、それぞれmount/umountコマンドがあり、またGUIツールで設定する場合もあります。プリミティブな設定は/etc/fstabファイルに記述され、自動マウントなどの設定も管理されます。

このマウントは、階層的につなぎ重ねることも可能で、もし必要であれば木の枝が枝分かれしていくように、あるいはトーナメント表のように、大量のファイルシステムを巨大な木のように繋ぎあわせて運用することができます。この姿をイメージして、これをファイルシステムツリーと呼びます。

Windowsにもtreeコマンドがあり、ディレクトリーツリーの表示が可能ですが、UNIX系OSでは複数のHDD,パーティション,ファイルシステムが一つのツリーとして運用されるわけです。

そのため、Windowsではシステムのあるパーティションが一般的にC:ドライブですが、UNIX系OSでは、システムのあるパーティションは/(スラッシュ記号)で表されます。

/(スラッシュ記号)はLinuxを含むUNIX系OSにおいて、ファイルシステムのディレクトリーの区切り記号(Windowsでは\記号)であり、また先頭に記述されれば、ルートディレクトリーを意味します。
Windowsでは\WINDOWS\SYSTEMと記述しても、それがC:\にある稼働中のシステムのディレクトリーなのか、USBで繋いだ、別のPCのHDDなのかは特定されません。
UNIX系OSでは、/usr/binは、一般的にシステムの実行ファイルの置かれるディレクトリーと特定されます。

ドライブレター機構とマウント機構の違い

慣れていなければ、マウントによるファイルシステムの管理運用はわかりにくいものです。
ですが、マウント機構は多数のファイルシステムを抽象化する機構ですから、管理が行われているのであれば、使用者レベルでは、ファイルシステムのトラブルを意識する必要がありません。
これはUNIXが、もともと大勢で共用するコンピューターで育ったOSであり、管理者がいて運用されるものだったために備わった特徴と言えるでしょう。

つまり、C:\Documents and Settings\foo\My Documents\の空き容量が足りないとfoo氏が騒いでいる場合、Windowsの管理者がD:ドライブを追加し、勝手にD:ドライブにMy Documentsを移してしまったら、foo氏はMy Documentsが開けなくなったとパニックになるでしょう。

しかし、/home/fooの空き容量が無いとfoo氏が困っている時に、UNIXの管理者が新しいHDDを追加し、勝手にその一部を/home/fooに割り当てたとしたら、foo氏は空き容量が増えたことを喜びながら、別のHDDを利用していることに気づきません。
これがマウント機構の抽象化です。

これはユーザー個人のディレクトリーだけでなく、/var,/tmpなどの大量のアクセスが起こりえるディレクトリーを、後から別のHDDに振り分けたとしても、システムの設定変更はマウント構成の変更だけで済みます。
複数のPCで、同じNASを、まったく同じフルパス(たとえば/mnt/NAS01)に置いて、共通のスクリプトで自動アクセスさせるようなことも、簡潔に設定することができます。

Windowsでは、G:ドライブがNASと決まっているところに、G:ドライブが使用中のPCが入ってくると、調整でめんどうくさいことになったりもします。

複数のネットワーク上のストレージを、UNIX系OSはすべて/mnt/network/下にまとめられますが、Windowsでは、それをG:\からK:\ドライブまでにまたがらせて並べることしかできません。
つまり、一括指定ができない場合があります。




  • 最終更新:2014-04-09 00:11:02

このWIKIを編集するにはパスワード入力が必要です

認証パスワード