ファイルシステム
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 カード、あるいはその他のリムーバブルなフラッシュブロックデバイスで使用されることを意図したものではありません。
ディスクファイルシステム
- bcachefs - CoW (Copy-on-write)、圧縮および暗号化をサポートする、頑丈で高パフォーマンスな次世代ファイルシステム。
- Cramfs - ランダム読み出しをサポートする、メモリーや容量に配慮した圧縮ファイルシステム。ブロックデバイスレイヤーを排除し、極めて厳しいメモリー制限のある小さい組込みシステムでは不要な利便性を回避しています。
- eCryptfs - Linux 用のエンタープライズ暗号ファイルシステム。
- efivarfs - (U)EFI 変数ファイルシステム[1]
- ext4 - 多くの Linux ディストリビューションでデフォルトの、GPL でライセンスされたジャーナリングファイルシステム。
- FAT - ファイルアロケーションテーブル (FAT) ファイルシステム。当初は Microsoft Windows で使用するために作成された。
- exFAT - Microsoft による、Extensible File Allocation Table (exFAT) ファイルシステムで、Linux 5.7 以降はネイティブでサポートされています。[2]
- HFS - Hierarchical File System (HFS)。当初は Macintosh System Software、後の Mac OS (Classic) のために開発されました。
- HFS+ - HFS の後継で、Mac OS 8.1 で導入され、macOS 10.12 Sierra まで Mac OS X のデフォルトのファイルシステムでした。
- JFS - IBM によって開発され、GPL でライセンスされた、64ビットジャーナルファイルシステム (JFS)。[3]
- Btrfs - 先進的な機能を持つ、Copy-on-write のB木ファイルシステム (Btrfs) (完全にオープンソースでライセンスされた、ZFS の代替)。
- NILFS - Linux カーネルのための、構造化ログファイルシステム実装。
- NTFS - Microsoft Windows の、New Technology File System (NTFS) (Windows のデフォルトファイルシステム)。
- Aufs - 以前は Another union file system として知られていた、先進マルチレイヤー統合ファイルシステム (Advanced multi-layered unification file system、Aufs)。
- OverlayFS - Linux カーネルに組み込まれている唯一の union ライクファイルシステム。
- ReiserFS - ReiserFS ファイルシステムのバージョン3。
- Reiser4 - ReiserFS ファイルシステムのバージョン4。現在のところ、Linux の主流カーネルでは実装されていません。
- SquashFS - Linux 向けの圧縮済み読み取り専用ファイルシステム[4]
- UDF - Universal Disk Format - ある種の .iso ファイルをマウントするために必要です
- GFS2 - Global File System 2: 共有ディスクファイルシステム。通常、コンピュータークラスターで使用されます。
- UFS - The Unix File System (UFS)。Berkeley Fast File System とも呼ばれます。
- XFS - Silicon Graphics により作られ、GPL でライセンスされた、64ビットジャーナリングファイルシステム。[5]
- ZFS - Sun Microsystems によって作られ、CDDL (GPL 非互換) でライセンスされた、copy-on-write ファイルシステム。[6]
- F2FS - Samsung によって Linux カーネル用に作られた、Flash-Friendly File System (F2FS)。
仮想ファイルシステム
仮想ファイルシステム、あるいは擬似ファイルシステムとは、システムが動作している間、メモリ上の一時データを格納するためにあります。
- debugfs - デバッグ用途に使用されます; 主に Linux カーネルの開発用。
- procfs - システムやプロセスの情報を出力したり変更するために使用されます。
- securityfs - TPM BIOS キャラクタードライバーや、IMA という integrity プロバイダによって使用されます。[7]
- sysfs - デバイスやドライバーに関する情報を出力したり、設定するために使用されます。
- tmpfs - ファイルをメモリ (RAM) 内に保管するために使用されます。
- devtmpfs - udev は、カーネル内の devtmpfs (devtmpfs ファイルシステムは、/devにマウントするために管理されています) を必要とします。
ネットワークファイルシステム
- Ceph - 分散オブジェクトストアおよび良好なパフォーマンス、信頼性、拡張性を提供するファイルシステム。
- NFS - Linux の共通ネットワークファイルシステムプロトコル。
- SSHFS - ユーザースペースでファイルシステムをマウントするための FUSE を実装しています。
- Tahoe-LAFS - Least Authority File Store (LAFS)。
- GlusterFS - 強力なネットワーク/クラスターファイルシステム。
FUSEベースのファイルシステム
- CurlFtpFS - FUSE に基づいて FTP ホストにアクセスするためのファイルシステム。
- exFAT - extended FAT ファイルシステム用の FUSE ファイルシステム。Linux 5.7 以降
- FuseISO - ISO ファイルシステムイメージをマウントするための FUSE モジュール。
- MTPfs - Media Transfer Protocol (MTP) デバイスへのアクセスを提供する FUSE ファイルシステム。
- smbnetfs - SMB 共有用の FUSE ファイルシステム。
- squashfuse - FUSE を使用して SquashFS のアーカイブをマウントする。
使い方
マウント
ファイルシステムのマウントにはいくつかの手段があります:
- mount - ファイルシステムをマウントするのに使用するコマンドです。特権あるいは/etc/fstabへの登録が必要です。
- /etc/fstab - システムがマウントできるファイルシステムに関する情報が含まれています。
- Removable media - 必要に応じてファイルをマウントします。
- Udevil - ほとんど依存関係の存在しない、小さい自動マウントユーティリティです。
- AutoFS - ファイルアクセスを自動的にマウントします。
参考
- Bcache — a Linux kernel block layer cache.
- Filesystem security — one of the basic means to harden a system.
- Filesystem in Userspace — 特別な権限を必要とせずにユーザがファイルシステムをマウントする方法
- Handbook:AMD64/Installation/Disks/ja#ファイルシステム
外部資料
- (Sven Vermeulenによる)Linux Seaの、ファイルシステムに関するチャプター
- ファイルシステム (Arch Wiki)
- - Bitrot and atomic COWs: Inside “next-gen” filesystems (Ars Technica)
- Linuxファイルシステムの発展に関する研究 (USENIX からの PDF 文書)