はじめる人のびぎねっと。

プライバシーポリシー

読み物

Linux基礎

ファイルシステムとは?

ディスク上のどこに何というファイルがあるのか、といった情報を管理しているのがファイルシステムです。ファイルの読み書きは、ファイルシステムの情報をもとに行われます。ファイルシステムはオペレーティングシステムごとに異なっていますが、Linuxではext2またはext3というファイルシステムが一般的に使われています。ext3はext2の後継にあたるバージョンで、どちらが使われるかはディストリビューションによって変わります。

ファイルシステムの構造

Linuxのファイルシステムは、WindowsやMacOSと同じように、ツリー状の階層的な構造をもっています。WindowsやMacOSでの「フォルダ」は、Linuxでは「ディレクトリ」と呼ばれます。ディレクトリの中には、ファイルのほかに、さらにディレクトリを含むこともできます(サブディレクトリ)ので、すべてのファイルやディレクトリは図のようにツリー状にたどることができます。

ファイルシステムの根っこにあたるのがルートディレクトリで、「/」で表します。スーパーユーザrootのホームディレクトリ(/root)と混同しないようにしましょう。

相対パスと絶対パス

Linuxでは、ファイルの場所を示すのに「/etc/hosts」などのように表します。この場合、意味としては「etcディレクトリの下にあるhosts(ファイル)」という意味になります。ディレクトリの区切り目は「/」で表しますが、いちばん最初の「/」はルートディレクトリを表しています。このように、ルートディレクトリから表すようにすると、ファイルシステム中のファイルやディレクトリの位置を一意に(つまり重複することなく)特定することができます。「/」から表記する方法を「絶対パス表記」と呼びます。

また、「/」から表記せず、ディレクトリ名から表記する表記方法を「相対パス表記」と呼びます。これは、ファイルやディレクトリを今いるディレクトリ(カレントディレクトリ)からの相対的な位置を表すものです。たとえば「etc/hosts」の場合、「カレントディレクトリの中にあるetcディレクトリの下にあるhosts(ファイル)」という意味になります。カレントディレクトリが/home/linuxだとすると、絶対パスで表記した場合は「/home/linux/etc/hosts」となります。

なお、「.」(ドット)はカレントディレクトリを表し、「..」はひとつ上のディレクトリを表します。たとえば、

$ cd ..

とすると、現在いるディレクトリのひとつ上のディレクトリに移動できます。

マウント

Windowsにはドライブという概念があり、ハードディスクはCドライブ、CD-ROMドライブはDドライブ、などとなりますが、Linuxにはドライブという概念はありません。すべて唯一のルートディレクトリを出発点として、ここからたどれるようになっています。そのため、CD-ROMや複数のハードディスクを扱う場合、マウントというしくみを使います。

マウントとは、別のディレクトリツリーを、ルートディレクトリ以下のディレクトリツリーに結合することです。たとえば、以下の図でCD-ROMドライブを/mnt/cdromというディレクトリにマウントした場合、CD-ROMの中にある「hoge」というディレクトリは「/mnt/cdrom/hoge」として扱うことができるようになります。こうすることで、ユーザーはファイルの物理的な場所を意識せず、統一した方法でファイルを扱うことができるのです。

マウント前
  ▲マウント前

例えば、上図のCD-ROMをマウントするには、

$ mount /mnt/cdrom

というコマンドを実行します。その結果、以下のようにマウントされます。

マウント後
  ▲マウント後

ファイルシステムの種類

良く使われるファイルシステムには、次のようなものがあります。下に挙げたファイルシステムは、いずれもLinuxで扱うことができます。

ext2/ext3 イー・エックス・ティー・ツー(スリー)と読みます。Linuxの標準的なファイルシステムです。最近(Red Hat Linux 7.2以降)は、ext2の後継にあたるext3がデフォルトで使われています。
FAT/FAT32 MS-DOSやWindowsで使われているファイルシステムです。Windows98以降は、FATではなく大容量ディスクをより効率的に扱えるFAT32が使われています。
NTFS WindowsNT/2000/XPで使われているファイルシステムです。
ReiserFS ジャーナリング機能を持ったファイルシステムで、ファイルの読み書きが速い、異常終了した時などの修復が速い、などの特徴があります。
iso9660 CD-ROMの標準的なファイルシステムです。
FHS(ファイルシステム階層基準)

Linuxには多くのディストリビューションがありますが、ディレクトリやファイルの配置は、ディストリビューションごとに微妙に異なっています。しかし、これでは不便なので、最近ではFHS(Filesystem Hierarchy Standard:ファイルシステム階層基準)と呼ばれる、ディレクトリやファイルの配置に関する標準仕様が策定されてきています。最近では、多くのディストリビューションで、FHSに準拠したディレクトリ・ファイル配置になるようになってきています。

このページのTOPへ