2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxのファイルシステムの基本構造を理解する

Posted at

Linuxのファイルシステムの基本構造を理解する

LinuxやUNIX系のOSでは、すべてが「ファイル」として扱われます。
この世界観を支えているのが「ファイルシステム」という仕組みです。

今回は、以下のような疑問に答える形で、Linuxのファイルシステムの構造についてわかりやすく解説します。

  • ファイルシステムってなに?
  • inodeって何をしてるの?
  • マウントってなぜ必要?

ファイルシステムとは?

ファイルシステムは、ストレージ(HDDやSSDなど)上にデータを整理して格納・操作するための仕組みです。

たとえば、以下のような役割を担っています:

  • データをどこに保存するか決める
  • ファイル名や作成日時などの情報を保持する
  • ファイルやディレクトリを操作できるようにする

Linuxでは ext4, xfs, btrfs などのファイルシステムがよく使われます。


ファイルシステムの内部構造

Linuxのファイルシステム(例:ext4)は、次のような領域に分かれています。

🔹 ブートブロック(Boot Block)

  • ディスクの先頭に位置します。
  • OSの起動に必要な情報が記録されています(MBR:マスターブートレコードなど)。
  • ブートローダーなどがここに入っています。

🔹 スーパーブロック(Superblock)

  • ファイルシステムの設定情報を保持する領域です。
  • 例:
    • 使用されているファイルシステムの種類(ext4など)
    • ファイルシステム全体のサイズ
    • 使用可能なinodeやブロック数 など

🔹 inodeテーブル

  • すべてのファイルやディレクトリに対して1つのinodeが対応します。
  • inode(index node)にはファイルに関する詳細情報が格納されています。

inodeに含まれる情報例:

情報項目 説明
ファイルのID(inode番号) 一意にファイルを識別
所有ユーザーID(UID) 誰が所有しているか
所属グループID(GID) グループ権限情報
作成日時・更新日時 各タイムスタンプ
アクセス権限(パーミッション) 誰が読める/書けるか
ファイルサイズ バイト単位
データブロックへのポインタ 実際のデータ位置

⚠️ inodeには「ファイル名」は含まれていません!
ファイル名はディレクトリエントリと対応づけられています。

🔹 データブロック(Data Block)

  • 実際のファイルの中身(本文)や、ディレクトリの情報が格納される領域です。
  • ファイルの実体そのものがここにあります。

マウントとアンマウントとは?

Linuxでは、USBメモリや外部HDDなどをそのままでは操作できません
ファイルシステムに組み込む必要があります。それが「マウント」です。

🔹 マウント(mount)

  • 認識されたデバイスを、ファイルシステムに接続する作業です。
  • 指定したディレクトリにストレージを結びつけ、操作可能にします。
sudo mount /dev/sdb1 /mnt/usb

上記は /dev/sdb1 を /mnt/usb にマウントする例

🔹 アンマウント(umount)

マウントしたデバイスを切り離す操作です。

書き込みが完了していない場合があるので、正しくアンマウントしないとデータが壊れることがあります。

sudo unmount /mnt/usb
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?