【初心者用】Linuxファイルシステムとは何か

【図解】初心者向けファイルシステムの基礎知識〜仕組み, OSとの関係, アクセス権との連携〜


Linuxファイルシステムとは、コンピュータ上でデータを格納し、組織化するための仕組みです。

ファイルやディレクトリ(フォルダ)などのデータを管理し、アクセスするための基盤となります。

異なる種類のファイルシステムが存在し、それぞれ異なる特徴を持っています。

1. ルートファイルシステム(Root File System)


ファイルシステムのマウントとマウント解除


Linuxでは、システムの起動時に最初にマウントされるのがルートファイルシステムです。

通常、 "/"(スラッシュ)として知られており、すべての他のディレクトリとファイルはこの下に配置されます。

重要なシステムファイルや設定がここに存在します。

2. ディレクトリ構造と代表的なディレクトリの役割

Linuxのディレクトリ構造は階層構造を持ち、それぞれのディレクトリには特定の役割があります。


 ・/home
  ユーザーホームディレクトリが格納される場所。

 ・/etc
  システムの設定ファイルが配置され、各種アプリケーションの設定もここに含まれます。

 ・/var
  変動データ(ログファイル、キャッシュなど)が格納されるディレクトリ。

 ・/tmp
  一時ファイルが保存される場所。

 ・/share
  システム全体で共有されるデータやリソースが配置されるディレクトリ。

 ・/opt
  オプションのアプリケーションやソフトウェアがインストールされる場所。

3. ext4(拡張ファイルシステム)とファイルシステムの種類

Linuxでは標準的に使われているファイルシステムの一つがext4です。

ext4は高いパフォーマンスと信頼性を提供し、大容量のデータも効率的に管理できます。

他にも、ext3、XFS、Btrfsなどがあり、ファイルシステムの特性に応じて選択されます。

3-1. ext4(拡張ファイルシステム)

・特徴
 高いパフォーマンス: ext4は読み取りと書き込みの速度が向上しており、特に大容量のファイルやディレクトリを効率的に処理できます。

・大容量サポート
 ext4は16テラバイトまでの個々のファイルサイズおよび1エクサバイトまでのファイルシステムサイズをサポートしています。

・データの信頼性向上
 ジャーナリング機能を備え、システムクラッシュ時のデータ損失を最小限に抑えます。

・バックワード互換性
 ext4は、ext2およびext3からのアップグレードが可能であり、既存のファイルシステムをアップグレードすることができます。

3-2. 他のファイルシステムの特徴


Linuxのファイルシステムについて


・ext3

 ・ジャーナリング
  ext3もジャーナリングファイルシステムで、データの一貫性を維持し、クラッシュからの回復を助けます。

 ・バックワード互換性
  ext3はext2とのバックワード互換性があり、ext2から容易にアップグレードできます。

・XFS

 ・スケーラビリティ
  XFSは大容量データと高いスループットに適しており、大規模なファイルシステムでの使用が特に得意です。

  リアルタイムファイルシステム拡張: XFSはリアルタイムデータを管理するための拡張があり、ビデオストリーミングなどのリアルタイムアプリケーションに適しています。

・Btrfs

 ・コピーオンライト
  Btrfsはコピーオンライト技術を使用してデータの安全性を向上させ、データの書き込み時にコピーが作成されます。

 ・スナップショット
  スナップショットを使用してファイルシステムの状態を簡単に保存および復元できます。

4. マウントポイントと具体的な使用法、NFSの追記


第10回ファイルシステムの考え方

マウントポイントは異なるデバイスやパーティションを単一のディレクトリツリーに統合するために使用されます。

例えば、外部デバイスを/mntディレクトリにマウントすることで、そのデバイスのデータにアクセスできるようになります。


NFS(Network File System)は、ネットワークを介して異なるシステム間でファイルを共有するためのプロトコルです。

NFSを使用すると、リモートのファイルシステムをローカルのディレクトリにマウントできます。


例えば:
sudo mount -t nfs remote_server:/remote/directory /local/mount/point

これにより、異なるサーバーのデータをローカルに利用できるようになります。

5. ファイルのパーミッション


 ◆ ファイルのパーミッションと所有者の確認

Linuxファイルシステムでは、各ファイルやディレクトリに対して所有者、所有グループ、他のユーザーに対する権限が設定されています。

具体的な権限には「読み取り(r)」、「書き込み(w)」、「実行(x)」があり、これらを組み合わせて権限を表現します。


ファイルのパーミッションを変更するには、「chmod」コマンドを使用します。

例えば、読み取りと実行権限を所有者に追加するには:
chmod +rx filename

また、特定の権限を削除するには:
chmod g-w filename

これにより、所有者以外のグループからの書き込み権限が削除されます。


スティッキービットを設定する場合は、「chmod +t directory」のように使用します。

これにより、ディレクトリ内のファイルは所有者以外削除できなくなります。

6. ディスククォータ(Disk Quota)

Linuxでは、ユーザーごとに使用可能なディスク容量を制限するディスククォータ機能があります。

これにより、システム全体のディスク容量を適切に管理し、利用者間で公平にリソースを分配できます。

6-1. ディスククォータ(Disk Quota)の実現方法とコマンド

ディスククォータを設定するためには、以下の手順を実行します。

以下の例ではext4ファイルシステムを前提としていますが、他のファイルシステムでも同様の手順が適用されます。

・ディスククォータの有効化

ディスククォータを有効にするためには、対象のパーティションがマウントされている状態で以下のコマンドを使用します。
sudo quotacheck -cug /path/to/mounted/partition

・ディスククォータの設定

ユーザーごとのディスククォータを設定します。
sudo edquota -u username

このコマンドを実行すると、テキストエディタが起動し、ユーザーごとのディスククォータの設定が行えます。

・ディスククォータの制限の確認

ディスククォータの設定を確認するには、以下のコマンドを使用します。
repquota -a

これにより、各ユーザーのディスク使用量と制限が表示されます。


これにより、ディスククォータが有効になり、各ユーザーごとにディスク使用量の制限が設定されます。

ディスククォータは、ディスク容量の適切な管理と利用者ごとのリソース制御に役立ちます。

7. バックアップとリストア

Linuxでよく使用されるバックアップコマンドには「tar」や「rsync」があります。

7-1. tarコマンド

tar -cvzf backup.tar.gz /path/to/directory

オプションの説明

 ・- c
  アーカイブを作成する。

 ・- v
  詳細な出力を表示する。

 ・- z
  gzipで圧縮する。

 ・- f
  出力先のファイルを指定する。

リストアコマンド:
tar -xvzf backup.tar.gz -C /restore/path

7-2. rsyncコマンド

rsync -av --delete /source/directory/ /backup/directory/

オプションの説明

 ・- a
  アーカイブモード(再帰的で、権限やタイムスタンプも保持)。

 ・- v
  詳細な出力を表示する。

 ・- --delete
  ソースディレクトリに存在しないファイルをバックアップディレクトリから削除する。


これにより、ディレクトリの同期が行われます。

バックアップとリストアはシステムの信頼性向上やデータ損失の防止に重要な役割を果たします。