ファイルシステム
From Gentoo Wiki
Resources
ファイルシステム
は、プログラムの終了後も保持されるデータを整理するための手段です。ファイルシステムはデータの格納、取り出し、更新、およびそれを含むデバイス上の利用可能な領域の管理を行う手順を提供します。
Linuxには数多くのファイルシステムがあり、それぞれ特有のユースケースを考慮すると、独自の長所と短所があります。
ファイルシステム
一般情報
- Filesystem/Access Control List Guide — an additional security control feature for multiuser systems.
- Filesystem/Security — one of the basic means to harden a system.
フラッシュメモリファイルシステム
以下のフラッシュメモリファイルシステムは、 MTD として知られる、組み込みフラッシュメモリで使用するために設計されています; これらは、USB ベースのフラッシュドライブ、SD カード、あるいはその他の リムーバブル なフラッシュブロックデバイスで使用されることを意図したものでは ありません 。
| 名前 | ユーザ空間パッケージ | 説明 |
|---|---|---|
| JFFS2 | Journalling Flash File System のバージョン 2。 | |
| YAFFS | sys-fs/yaffs2utils | Yet Another Flash File System。 |
ディスクファイルシステム
| 名前 | ユーザ空間パッケージ | 説明 |
|---|---|---|
| bcachefs | sys-fs/bcachefs-tools | ネイティブティアリング (tiering)、コピーオンライト、圧縮、および暗号化をサポートする、堅牢で高パフォーマンスな次世代ファイルシステム。 |
| btrfs | sys-fs/btrfs-progs | 先進的な機能を持つ、Copy-on-write の B 木ファイルシステム (btrfs)。 |
| Cramfs | sys-fs/cramfs | ランダム読み出しをサポートする、メモリーや容量に配慮した圧縮ファイルシステム。ブロックデバイスレイヤーを排除し、極めて厳しいメモリー制限のある小さい組込みシステムでは不要な利便性を回避しています。 |
| eCryptfs | sys-fs/ecryptfs-utils | Linux 用のエンタープライズ暗号ファイルシステム。 |
| efivarfs | (U)EFI 変数ファイルシステム [1] | |
| exFAT | sys-fs/exfatprogs | Microsoft による、Extensible File Allocation Table (exFAT) ファイルシステムで、Linux 5.7 以降はネイティブでサポートされています。 [2] |
| ext4 | sys-fs/e2fsprogs | 多くの Linux ディストリビューションでデフォルトの、GPL でライセンスされたジャーナリングファイルシステム。 |
| F2FS | sys-fs/f2fs-tools | Samsung によって Linux カーネル用に作られた、Flash-Friendly File System (F2FS)。 |
| FAT | sys-fs/dosfstools | ファイルアロケーションテーブル (FAT) ファイルシステム。当初は Microsoft Windows で使用するために作成された。 |
| GFS2 | Global File System 2: 共有ディスクファイルシステム。通常、コンピュータークラスターで使用されます。 | |
| HFS | sys-fs/hfsutils | Hierarchical File System (HFS)。当初は Macintosh System Software、後の Mac OS (Classic) のために開発されました。 |
| HFS+ | sys-fs/hfsplusutils | HFS の後継で、Mac OS 8.1 で導入され、macOS 10.12 Sierra まで Mac OS X のデフォルトのファイルシステムでした。 |
| JFS | sys-fs/jfsutils | IBM によって開発され、GPL でライセンスされた、64 ビットジャーナルファイルシステム (JFS)。 [3] |
| NILFS | sys-fs/nilfs-utils | Linux カーネルのための、構造化ログファイルシステム実装。 |
| NTFS | Microsoft Windows の、New Technology File System (NTFS) (Windows のデフォルトファイルシステム)。 | |
| OCFS2 | Oracle Cluster File System バージョン 2。 | |
| OverlayFS | Linux カーネルに組み込まれている唯一の union ライクファイルシステム。 | |
| ReiserFS | sys-fs/reiserfsprogs | ReiserFS ファイルシステムのバージョン 3。2025 年にカーネルから削除される予定です。 |
| SquashFS | sys-fs/squashfs-tools , sys-fs/squashfs-tools-ng | Linux 向けの圧縮済み読み取り専用ファイルシステム [4] |
| UDF | sys-fs/udftools | Universal Disk Format - ある種の .iso ファイルをマウントするために必要です |
| UFS | The Unix File System (UFS)。Berkeley Fast File System とも呼ばれます。 | |
| XFS | sys-fs/xfsprogs | Silicon Graphics により作られ、GPL でライセンスされた、64ビットジャーナリングファイルシステム。 [5] |
| ZFS | sys-fs/zfs | Sun Microsystems によって作られ、CDDL (GPL 非互換) でライセンスされた、copy-on-write ファイルシステム [6] 。 |
仮想ファイルシステム
仮想 ファイルシステム、あるいは 擬似 ファイルシステムとは、システムが動作している間、メモリ上の一時データを格納するためにあります。
| 名前 | ユーザ空間パッケージ | 説明 |
|---|---|---|
| debugfs | デバッグ用途に使用されます; 主に Linux カーネルの開発用。 | |
| procfs | システムやプロセスの情報を出力したり変更するために使用されます。 | |
| securityfs | TPM BIOS キャラクタードライバーや、 AppArmor や、IMA という integrity プロバイダによって使用されます。 [7] | |
| sysfs | デバイスやドライバーに関する情報を出力したり、設定するために使用されます。 | |
| tmpfs | ファイルをメモリ (RAM) 内に保管するために使用されます。 | |
| devtmpfs | udev は、カーネル内の devtmpfs (devtmpfs ファイルシステムは、 /dev にマウントするために管理されています) を必要とします。 |
ネットワークファイルシステム
| 名前 | ユーザ空間パッケージ | 説明 |
|---|---|---|
| Ceph | sys-cluster/ceph | 分散オブジェクトストアおよび良好なパフォーマンス、信頼性、拡張性を提供するファイルシステム。 |
| GlusterFS | sys-cluster/glusterfs | 強力なネットワーク/クラスターファイルシステム。 |
| NFS | net-fs/nfs-utils | Linux の共通ネットワークファイルシステムプロトコル。 |
| Samba | net-fs/samba | SMB/CIFS ネットワーキングプロトコルの再実装。 |
FUSEベースのファイルシステム
| 名前 | ユーザ空間パッケージ | 説明 |
|---|---|---|
| CurlFtpFS | net-fs/curlftpfs | FUSE に基づいて FTP ホストにアクセスするためのファイルシステム。 |
| FuseISO | sys-fs/fuseiso | ISO ファイルシステムイメージをマウントするための FUSE モジュール。 |
| MTPfs | sys-fs/mtpfs | Media Transfer Protocol (MTP) デバイスへのアクセスを提供する FUSE ファイルシステム。 |
| smbnetfs | net-fs/smbnetfs | SMB 共有用の FUSE ファイルシステム。 |
| SSHFS | net-fs/sshfs | ユーザースペースでファイルシステムをマウントするための FUSE を実装しています。 |
| squashfuse | sys-fs/squashfuse | FUSE を使用して SquashFS のアーカイブをマウントする。 |
使い方
マウント
ファイルシステムのマウントにはいくつかの手段があります:
- mount - ファイルシステムをマウントするのに使用するコマンドです。特権あるいは /etc/fstab への登録が必要です。
- /etc/fstab - システムがマウントできるファイルシステムに関する情報が含まれています。
- リムーバブルメディア - 必要に応じてファイルをマウントします。
- Udevil - ほとんど依存関係の存在しない、小さい自動マウントユーティリティです。
- AutoFS - ファイルアクセス時に自動的にマウントします。
関連項目
- Bcache — a Linux kernel block layer cache.
- Filesystem security — one of the basic means to harden a system.
- Filesystem in Userspace — 特別な権限を必要とせずにユーザがファイルシステムをマウントする方法
- ハンドブック AMD64 内のファイルシステム
外部資料
- (Sven Vermeulenによる)Linux Seaの、ファイルシステムに関するチャプター
- - Bitrot and atomic COWs: Inside “next-gen” filesystems (Ars Technica)
- Linuxファイルシステムの発展に関する研究 (USENIX からの PDF 文書)