「ファイルシステム」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(3人の利用者による、間の33版が非表示)
1行目: 1行目:
 
[[Category:ファイルシステム]]
 
[[Category:ファイルシステム]]
  +
[[Category:一覧]]
 
[[en:File systems]]
 
[[en:File systems]]
 
[[es:File systems]]
 
[[es:File systems]]
[[hu:File systems]]
 
 
[[it:File systems]]
 
[[it:File systems]]
[[pl:File systems]]
+
[[pt:File systems]]
  +
[[ru:File systems]]
  +
[[uk:File systems]]
 
[[zh-hans:File systems]]
 
[[zh-hans:File systems]]
 
{{Related articles start}}
 
{{Related articles start}}
12行目: 14行目:
 
{{Related|fsck}}
 
{{Related|fsck}}
 
{{Related|fstab}}
 
{{Related|fstab}}
{{Related|アプリケーション一覧#マウントツール}}
+
{{Related|アプリケーション一覧/ユーティリティ#マウントツール}}
{{Related|QEMU#aw ディスクイメージの中にパーティションをマウントする}}
+
{{Related|QEMU#raw イメージからパーティションをマウントする}}
 
{{Related|udev}}
 
{{Related|udev}}
 
{{Related|udisks}}
 
{{Related|udisks}}
21行目: 23行目:
   
 
[[Wikipedia:ja:ファイルシステム|Wikipedia]] より:
 
[[Wikipedia:ja:ファイルシステム|Wikipedia]] より:
:"ファイルシステムは、コンピュータのリソースを操作するための、オペレーティングシステム (OS) が持つ機能の一つ。ファイルとは、主に補助記憶装置に格納されたデータを指すが、デバイスやプロセス、カーネル内の情報といったものもファイルとして提供するファイルシステムもある。
 
   
  +
:ファイルシステムは、コンピュータのリソースを操作するための、オペレーティングシステム (OS) が持つ機能の一つ。ファイルとは、主に補助記憶装置に格納されたデータを指すが、デバイスやプロセス、カーネル内の情報といったものもファイルとして提供するファイルシステムもある。
:より正確に定義すれば、ファイルシステムは抽象データ型の集まりであり、ストレージ、階層構造、データの操作/アクセス/検索のために実装されたものである。ファイルシステムを特殊用途のデータベース管理システム (DBMS) と見なせるかどうかは議論があるが、ファイルシステムとデータベース管理システムには多くの共通点がある。 "
 
  +
  +
:より正確に定義すれば、ファイルシステムは抽象データ型の集まりであり、ストレージ、階層構造、データの操作/アクセス/検索のために実装されたものである。ファイルシステムを特殊用途のデータベース管理システム (DBMS) と見なせるかどうかは議論があるが、ファイルシステムとデータベース管理システムには多くの共通点がある。
   
 
個々のドライブパーティションに、多くのファイルシステムのなかから1つを設定することができます。ファイルシステムはそれぞれにメリット、デメリット、特徴があります。ここではサポートされているファイルシステムの概要を記述します。より多くの情報を見るには Wikipedia へのリンクを辿って下さい。
 
個々のドライブパーティションに、多くのファイルシステムのなかから1つを設定することができます。ファイルシステムはそれぞれにメリット、デメリット、特徴があります。ここではサポートされているファイルシステムの概要を記述します。より多くの情報を見るには Wikipedia へのリンクを辿って下さい。
   
==ファイルシステムのタイプ==
+
== ファイルシステムのタイプ ==
   
一般的な概要については{{man|5|filesystems}} を、詳細な機能の比較については [[Wikipedia:Comparison of file systems]] を参照してください。カーネルでサポされているファイルシステムは {{ic|/proc/filesystems}} に記載されています。
+
一般的な概要については {{man|5|filesystems}} を、詳細な機能の比較については [[Wikipedia:Comparison of file systems]] を参照してください。カーネルによってすにロれている、あるいは組み込まれているファイルシステムは{{ic|/proc/filesystems}} にリストアップされています。一方、インストールされているモジュールは {{ic|ls /lib/modules/$(uname -r)/kernel/fs}} ですべて見ることができます。
   
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
  +
|+ 組み込まれている (in-tree) ファイルシステムと FUSE ファイルシステム
|+ In-tree and FUSE file systems
 
 
! ファイルシステム
 
! ファイルシステム
 
! 作成コマンド
 
! 作成コマンド
 
! ユーザースペースユーティリティ
 
! ユーザースペースユーティリティ
 
! [[Archiso]] [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/packages.x86_64]
 
! [[Archiso]] [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/packages.x86_64]
! カーネルのドキュメント [https://www.kernel.org/doc/html/latest/filesystems/index.html][https://www.kernel.org/doc/Documentation/filesystems/]
+
! カーネルのドキュメント [https://docs.kernel.org/filesystems/index.html]
! メモ
+
! 備考
  +
|-
  +
| [[Bcachefs]]
  +
| {{man|8|bcachefs}}
  +
| {{Pkg|bcachefs-tools}}
  +
| {{Yes}}
  +
|
  +
| Linux 6.7 から利用可能 (実験的)。
 
|-
 
|-
 
| [[Btrfs]]
 
| [[Btrfs]]
44行目: 54行目:
 
| {{Pkg|btrfs-progs}}
 
| {{Pkg|btrfs-progs}}
 
| {{Yes}}
 
| {{Yes}}
| [https://www.kernel.org/doc/html/latest/filesystems/btrfs.html btrfs.html]
+
| [https://docs.kernel.org/filesystems/btrfs.html btrfs.html]
| [https://btrfs.wiki.kernel.org/index.php/Status Stability status]
+
| [https://btrfs.readthedocs.io/en/latest/Status.html 安定性に関する状況]
 
|-
 
|-
 
| [[VFAT]]
 
| [[VFAT]]
51行目: 61行目:
 
| {{Pkg|dosfstools}}
 
| {{Pkg|dosfstools}}
 
| {{Yes}}
 
| {{Yes}}
| [https://www.kernel.org/doc/html/latest/filesystems/vfat.html vfat.html]
+
| [https://docs.kernel.org/filesystems/vfat.html vfat.html]
| [[Wikipedia:Windows 9x|Windows 9x]] file system
+
| [[Wikipedia:ja:Windows 9x|Windows 9x]] のファイルシステム
 
|-
 
|-
| rowspan="2" | [[Wikipedia:exFAT|exFAT]]
+
| rowspan="2" | [[Wikipedia:ja:exFAT|exFAT]]
 
| {{man|8|mkfs.exfat}}
 
| {{man|8|mkfs.exfat}}
 
| {{Pkg|exfatprogs}}
 
| {{Pkg|exfatprogs}}
| {{No}}
+
| {{Yes}}
 
|
 
|
| Native file system in Linux 5.4. [https://itsfoss.com/linux-kernel-5-4/]
+
| Linux 5.4 のネイティブのファイルシステム。[https://lwn.net/Articles/799425/]
 
|-
 
|-
 
| {{man|8|mkexfatfs}}
 
| {{man|8|mkexfatfs}}
 
| {{Pkg|exfat-utils}}
 
| {{Pkg|exfat-utils}}
| {{Yes}}
+
| {{No}}
| N/A (FUSE-based)
+
| N/A (FUSE ベース)
 
|
 
|
 
|-
 
|-
71行目: 81行目:
 
| {{Pkg|f2fs-tools}}
 
| {{Pkg|f2fs-tools}}
 
| {{Yes}}
 
| {{Yes}}
| [https://www.kernel.org/doc/html/latest/filesystems/f2fs.html f2fs.html]
+
| [https://docs.kernel.org/filesystems/f2fs.html f2fs.html]
   
  +
| フラッシュメモリベースのデバイス
| Flash-based devices
 
 
|-
 
|-
 
| [[ext3]]
 
| [[ext3]]
| {{man|8|mke2fs}}
+
| {{man|8|mkfs.ext3}}
 
| {{Pkg|e2fsprogs}}
 
| {{Pkg|e2fsprogs}}
 
| {{Yes}}
 
| {{Yes}}
| [https://www.kernel.org/doc/html/latest/filesystems/ext3.html ext3.html]
+
| [https://docs.kernel.org/filesystems/ext3.html ext3.html]
 
|
 
|
 
|-
 
|-
 
| [[ext4]]
 
| [[ext4]]
| {{man|8|mke2fs}}
+
| {{man|8|mkfs.ext4}}
 
| {{Pkg|e2fsprogs}}
 
| {{Pkg|e2fsprogs}}
 
| {{Yes}}
 
| {{Yes}}
| [https://www.kernel.org/doc/html/latest/admin-guide/ext4.html ext4.html]
+
| [https://docs.kernel.org/admin-guide/ext4.html ext4.html]
 
|
 
|
 
|-
 
|-
| [[Wikipedia:Hierarchical File System|HFS]]
+
| [[Wikipedia:ja:Hierarchical File System|HFS]]
| {{man|8|mkfs.hfsplus|url=}}
+
| {{man|8|mkfs.hfsplus|url=https://manpages.debian.org/unstable/hfsprogs/mkfs.hfsplus.8.en.html}}
 
| {{AUR|hfsprogs}}
 
| {{AUR|hfsprogs}}
 
| {{No}}
 
| {{No}}
| [https://www.kernel.org/doc/html/latest/filesystems/hfs.html hfs.html]
+
| [https://docs.kernel.org/filesystems/hfs.html hfs.html]
| [[Wikipedia:Classic Mac OS|Classic Mac OS]] file system
+
| [[Wikipedia:ja:Classic Mac OS|Classic Mac OS]] のファイルシステム
 
|-
 
|-
| [[Wikipedia:HFS Plus|HFS+]]
+
| [[Wikipedia:ja:HFS Plus|HFS+]]
| {{man|8|mkfs.hfsplus|url=}}
+
| {{man|8|mkfs.hfsplus|url=https://manpages.debian.org/unstable/hfsprogs/mkfs.hfsplus.8.en.html}}
 
| {{AUR|hfsprogs}}
 
| {{AUR|hfsprogs}}
 
| {{No}}
 
| {{No}}
| [https://www.kernel.org/doc/html/latest/filesystems/hfsplus.html hfsplus.html]
+
| [https://docs.kernel.org/filesystems/hfsplus.html hfsplus.html]
| [[Wikipedia:macOS|macOS]] (8–10.12) file system
+
| [[Wikipedia:ja:macOS|macOS]] (8–10.12) のファイルシステム
 
|-
 
|-
 
| [[JFS]]
 
| [[JFS]]
107行目: 117行目:
 
| {{Pkg|jfsutils}}
 
| {{Pkg|jfsutils}}
 
| {{Yes}}
 
| {{Yes}}
| [https://www.kernel.org/doc/Documentation/filesystems/jfs.txt jfs.txt]
+
| [https://docs.kernel.org/admin-guide/jfs.html jfs.html]
 
|
 
|
 
|-
 
|-
| [[Wikipedia:NILFS|NILFS2]]
+
| [[Wikipedia:ja:NILFS|NILFS2]]
 
| {{man|8|mkfs.nilfs2}}
 
| {{man|8|mkfs.nilfs2}}
 
| {{Pkg|nilfs-utils}}
 
| {{Pkg|nilfs-utils}}
 
| {{Yes}}
 
| {{Yes}}
| [https://www.kernel.org/doc/html/latest/filesystems/nilfs2.html nilfs2.html]
+
| [https://docs.kernel.org/filesystems/nilfs2.html nilfs2.html]
  +
| Raw フラッシュデバイス (例:SD カード)
  +
|-
  +
| rowspan="3" | [[NTFS]]
 
|
 
|
  +
|
  +
| {{Yes}}
  +
| [https://docs.kernel.org/filesystems/ntfs3.html ntfs3.html]
  +
| [[Wikipedia:ja:Windows NT|Windows NT]] のファイルシステム。[https://www.paragon-software.com/home/ntfs3-driver-faq/ 新しいドライバ]。Linux 5.15 から利用可能。
  +
|-
  +
|
  +
| rowspan="2" | {{Pkg|ntfs-3g}}[https://sourceforge.net/p/linux-ntfs/mailman/message/27338853/]
  +
| {{No}}
  +
| [https://www.kernel.org/doc/html/v6.8/filesystems/ntfs.html ntfs.html]
  +
| 古いドライバ。書き込みのサポートは非常に制限されています。Linux 6.9 で削除されました。[[カーネル#公式サポートカーネル|公式にサポートされているカーネル]] は {{ic|CONFIG_NTFS_FS}} フラグ無しでビルドされているため、このドライバは利用できません。
 
|-
 
|-
| [[NTFS]]
 
 
| {{man|8|mkfs.ntfs}}
 
| {{man|8|mkfs.ntfs}}
| {{Pkg|ntfs-3g}}
 
 
| {{Yes}}
 
| {{Yes}}
| N/A (FUSE-based)
+
| N/A (FUSE ベース)
  +
| 拡張機能付き FUSE ドライバ。
| [[Wikipedia:Windows NT|Windows NT]] file system
 
 
|-
 
|-
 
| [[Wikipedia:ReiserFS|ReiserFS]]
 
| [[Wikipedia:ReiserFS|ReiserFS]]
129行目: 150行目:
 
| {{Yes}}
 
| {{Yes}}
 
|
 
|
  +
| ReiserFS は Linux 5.18 で[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eb103a51640ee32ab01c51e13bf8fca211f25f61 非推奨] になりました。2025 年にカーネルから削除される予定です。
|
 
 
|-
 
|-
| [[Wikipedia:Universal Disk Format|UDF]]
+
| [[Wikipedia:ja:Universal Disk Format|UDF]]
 
| {{man|8|mkfs.udf}}
 
| {{man|8|mkfs.udf}}
 
| {{Pkg|udftools}}
 
| {{Pkg|udftools}}
| {{Y|Optional}}
+
| {{Yes}}
| [https://www.kernel.org/doc/html/latest/filesystems/udf.html udf.html]
+
| [https://docs.kernel.org/filesystems/udf.html udf.html]
 
|
 
|
 
|-
 
|-
143行目: 164行目:
 
| {{Yes}}
 
| {{Yes}}
 
|
 
|
[https://www.kernel.org/doc/Documentation/filesystems/xfs.txt xfs.txt]<br>
+
[https://docs.kernel.org/admin-guide/xfs.html xfs.html]<br>
[https://www.kernel.org/doc/html/latest/filesystems/xfs-delayed-logging-design.html xfs-delayed-logging-design.html]<br>
+
[https://docs.kernel.org/filesystems/xfs/xfs-delayed-logging-design.html xfs-delayed-logging-design.html]<br>
[https://www.kernel.org/doc/html/latest/filesystems/xfs-self-describing-metadata.html xfs-self-describing-metadata.html]
+
[https://docs.kernel.org/filesystems/xfs/xfs-self-describing-metadata.html xfs-self-describing-metadata.html]
  +
| [https://web.archive.org/web/20220902080136/https://xfs.org/index.php/XFS_FAQ#Q:_Is_there_a_way_to_make_a_XFS_filesystem_larger_or_smaller.3F 縮小不可]
|
 
 
|}
 
|}
 
{{Note|The kernel has its own NTFS driver (see [https://www.kernel.org/doc/html/latest/filesystems/ntfs.html ntfs.html]), but it has limited support for writing files.}}
 
   
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
|+ Out-of-tree file systems
+
|+ 外部 (out-of-tree) のファイルシステム
 
! ファイルシステム
 
! ファイルシステム
 
! 作成コマンド
 
! 作成コマンド
 
! カーネルパッチセット
 
! カーネルパッチセット
 
! ユーザースペースユーティリティ
 
! ユーザースペースユーティリティ
! メモ
+
! 備考
 
|-
 
|-
| [[Wikipedia:Apple File System|APFS]]
+
| [[Wikipedia:ja:Apple File System|APFS]]
| {{man|8|mkapfs|url=}}
+
| {{man|8|mkapfs|url=https://manpages.debian.org/unstable/apfsprogs/mkapfs.8.en.html}}
| {{AUR|linux-apfs-dkms-git}}
+
| {{AUR|linux-apfs-rw-dkms-git}}
 
| {{AUR|apfsprogs-git}}
 
| {{AUR|apfsprogs-git}}
| [[Wikipedia:macOS|macOS]] (10.13 and newer) file system. Read only, experimental.
+
| [[Wikipedia:ja:macOS|macOS]] (10.13 およびそれ以降) のファイルシステム。読み取り専用。実験的。Fuse バージョンの {{AUR|apfs-fuse-git}} も参照。
|-
 
| [https://wiki.archlinux.org/index.php/Bcachefs Bcachefs]
 
| {{man|8|bcachefs|url=}}
 
| {{AUR|linux-bcachefs-git}}
 
| {{AUR|bcachefs-tools-git}}
 
|
 
 
|-
 
|-
 
| [[Reiser4]]
 
| [[Reiser4]]
| {{man|8|mkfs.reiser4|url=}}
+
| {{man|8|mkfs.reiser4|url=https://manpages.debian.org/unstable/reiser4progs/mkfs.reiser4.8.en.html}}
 
|
 
|
 
| {{AUR|reiser4progs}}
 
| {{AUR|reiser4progs}}
181行目: 194行目:
 
| {{AUR|zfs-linux}}, {{AUR|zfs-dkms}}
 
| {{AUR|zfs-linux}}, {{AUR|zfs-dkms}}
 
| {{AUR|zfs-utils}}
 
| {{AUR|zfs-utils}}
| [[Wikipedia:OpenZFS|OpenZFS]] port
+
| [[Wikipedia:OpenZFS|OpenZFS]] 移植
 
|}
 
|}
   
  +
=== ジャーナリング ===
* [[Btrfs]] またの名を "Better FS" — '''Btrfs''' は新しいファイルシステムで Sun/Oracle の [[ZFS]] に似たパワフルな機能を備えています。機能としては、スナップショット、マルチディスク・ストライピング、ミラーリング (mdadm を使わないソフトウェア RAID)、チェックサム、増分バックアップ、容量の節約だけでなく優れたパフォーマンスも得られる透過圧縮などがあります。現在 Btrfs はメインラインカーネルにマージされており安定していると考えられています [https://btrfs.wiki.kernel.org/index.php/Main_Page#Stability_status]。将来的に Btrfs は全てのメジャーなディストリビューションのインストーラで標準になる GNU/Linux ファイルシステム として期待されています。
 
* [[Wikipedia:ja:exFAT|exFAT]] — フラッシュドライブに最適化するように Microsoft によって開発されたファイルシステム。NTFS とは違い、exFAT はファイルのために空き領域を事前に割り振ることができません。サイズのわかっているファイルを作成するとき、exFAT はファイルのサイズと完全に等しい物理書き込みを行います。
 
* [[Wikipedia:ja:ext2|ext2]] — '''Second Extended Filesystem''' は成熟した GNU/Linux ファイルシステムであり、非常に安定しています。欠点はジャーナリング(下で説明)と書き込みバリアをサポートしていないことです。ジャーナリングがないために電源を喪失したりクラッシュしたときにデータが消えてしまうことがあります。また root ({{ic|/}}) や {{ic|/home}} で使うとファイルシステムのチェックに長い時間がかかってしまいます。ext2 ファイルシステムは [[ext4|ext3 に変換可能]]です。
 
* [[ext3]] — '''Third Extended Filesystem''' は言うなればジャーナリングと書き込みバリアをサポートした ext2 です。ext2 と後方互換性があり、よくテストされていて、非常に安定しています。
 
* [[ext4]] — '''Fourth Extended Filesystem''' は比較的新しいファイルシステムで、ext2 や ext3 と互換性があります。1エクサバイト(つまり1,048,576テラバイト)までのボリュームサイズと16テラバイトまでのファイルサイズをサポートしています。ext3 に比べサブディレクトリの限界が増え、64,000まで保持できます。オンラインでのデフラグも可能です。
 
* [[F2FS]] — '''Flash-Friendly File System''' は Samsung の従業員 Kim Jaegeuk (ハングル: 김재극) によって作成された、Linux オペレーティングシステムカーネル向けのフラッシュファイルシステムです。携帯端末からサーバーまで幅広く使われている、NAND 型フラッシュメモリのストレージデバイス (SSD, eMMC, SD カードなど) の特性を考慮するファイルシステムという視点から F2FS は作成されました。
 
* [[Wikipedia:ja:Hierarchical_File_System|HFS]] — '''Hierarchical File System''' は Apple Inc. によって開発された Mac OS 用のプロプライエタリなファイルシステムです。
 
* [[JFS]] — IBM の '''Journaled File System''' はジャーナリング機能を持った最初のファイルシステムです。GNU/Linux に移植される前は IBM AIX® OS で長い間開発されていました。JFS は全ての GNU/Linux ファイルシステムの中で使用する CPU リソースが一番少ないです。フォーマット、マウント、ファイルシステムチェック (fsck) は高速です。JFS はデッドラインの I/O スケジューラと連携して全体的に良いパフォーマンスを発揮します。ext シリーズや ReiserFS ほどは広くサポートされていませんが、成熟して安定しています。
 
* [[Wikipedia:ja:NILFS|NILFS2]] — '''New Implementation of a Log-structured File System''' は NTT により開発されました。NILFS は連続的なログのようなフォーマットですべてのデータを書き込み、それらは追記されるのみで、決して上書きされません。従来の Linux ファイルシステムで起こるデータ損失を最小限にするのと同様にシーク時間を減らすように設計されています。
 
* [[NTFS-3G|NTFS]] — Windows で使われるファイルシステム。NTFS は FAT や HPFS (High Performance File System) に対して、メタデータの先進的なサポートや高度なデータ構造の使用によるパフォーマンス・信頼性の改善、アクセス制御リスト (ACL) やファイルシステムジャーナリング機能の追加といった技術的な改善が施されています。Linux でマウントするための多くのユーティリティがあります (例えば [[NTFS-3G]])。
 
* [[Reiser4]] — ReiserFS の後継となるファイルシステムで、DARPA や Linspire がスポンサーとなり Namesys によって開発されました。dancing tree バランス化アプローチと共に B* 木を採用しており、メモリを圧迫するかトランザクションの完了時を除き、過疎なノードはディスクへのフラッシュまたはマージされません。それによりシステムは時間やスペースを浪費せずにファイルやディレクトリを作成することができるようになっています。
 
* [[Wikipedia:ja:ReiserFS|ReiserFS]] (V3) — ハンス・ライザーによる高いパフォーマンスを誇るジャーナリングファイルシステムで、目新しい独創的なアルゴリズムでデータを管理します。ReiserFS はとても速いともてはやされていますが、特に小さいファイルを扱うときにそれは顕著です。ReiserFS はフォーマットも速いですが、マウントは比較的遅くなります。成熟していて安定しています。ReiserFS (V3) は現在では活発には開発されていません。{{ic|/var}} に使うのが一般的に良いと思われます。
 
* [[スワップ|swap]] — スワップパーティションに使われるファイルシステム。
 
* [[Wikipedia:ja:File Allocation Table#VFAT|VFAT]] — '''Virtual File Allocation Table''' は技術的にシンプルであり事実上全てのオペレーティングシステムでサポートされています。異なる OS 間でデータを共有するためにメモリーカードなどで利用されます。VFAT は長いファイル名をサポートしています。
 
* [[XFS]] — 最古のジャーナリングファイルシステムの一つで、Silicon Graphics によって IRIX OS 向けに開発され、その後 GNU/Linux に移植されました。大きなファイルやファイルシステムを扱うのに速いパフォーマンスを発揮し、フォーマットやマウントも高速です。比較ベンチマークテストによると多数の小さいファイルを速く扱うのは苦手です。XFS は成熟していてオンライン・デフラグもできます。
 
* [[ZFS]] — Sun Microsystems によって設計された統合ファイルシステム・論理ボリュームマネージャ。ZFS の機能としては、データ破損からの保護、ファイルシステムとボリューム管理の統合、スナップショット、コピーオンライト (COW) クローン、継続的な整合性チェック、自動修復、RAID-Z、ネイティブの NFSv4 ACLs などがあります。
 
   
  +
exFAT、ext2、FAT16/32、Reiser4 (オプション)、Bcachefs、Btrfs、ZFS を除く上記のすべてのファイルシステムは [[Wikipedia:ja:ジャーナリングファイルシステム|ジャーナリング]] を使用しています。ジャーナリングは、ファイルシステムにコミットする前に変更を記録することで、障害からの回復力を提供します。システムクラッシュや停電の際、このようなファイルシステムはオンラインに戻すのが速く、破損する可能性も低くなります。ロギングはファイルシステムの専用領域で行われます。
===ジャーナリング===
 
   
  +
すべてのジャーナリング技術が同じというわけではありません。ext3 と ext4 はデータモード・ジャーナリングを提供し、データとメタデータの両方を記録し、メタデータの変更だけを記録することもできます。データモード・ジャーナリングにはスピードのペナルティがあり、デフォルトでは有効になっていません。同じように、[[Reiser4]] はいわゆる [https://reiser4.wiki.kernel.org/index.php/Reiser4_transaction_models "トランザクションモデル"] を提供します。これは提供する機能だけでなくジャーナリングモードも変更します。[https://reiser4.wiki.kernel.org/index.php/V4#Wandering_Logs wandering logs] と呼ばれる特別なモデルの異なるジャーナリング技術を使い、ディスクに二度書きする必要がありません。'''write-anywhere''' (btrfs のデフォルトとほぼ同じですが根本的に異なる "tree" デザイン) と '''hybrid''' という複合アプローチでは前者の2つをヒューリスティックに交互に使用することができます。
ext2 と FAT16/32 を除く上記全てのファイルシステムは[[Wikipedia:ja:ジャーナリングファイルシステム|ジャーナリング]]を使います。ジャーナリングによってファイルシステムに移される前に変更を記録することで障害から復旧できます。システムがクラッシュしたり電源を喪失した時、ファイルシステムは素早く復旧しほとんど破損しません。ファイルシステムの特定領域にログが作成されます。
 
   
  +
{{Note|Reiser4 はメタデータとインラインチェックサムを特徴とする '''node41'' プラグインを使用して ext4 のデフォルトのジャーナリング動作とほぼ同等のもの(メタデータのみ)を提供し、オプションでトランザクションモデルに応じて提供される wandering logs を動作と組み合わせます。マウント時に選択されます。}}
ジャーナリング手法は全て同じというわけではありません。ext3 と ext4 はデータモード・ジャーナリングを行うことができ、データとメタデータ両方を記録します。データモード・ジャーナリングは速度が遅くなるのでデフォルトでは無効にされています。他のファイルシステムはオーダーモード・ジャーナリングを提供し、メタデータのみを記録します。クラッシュのあとジャーナリングによってファイルシステムを正常にもどす際、データモード・ジャーナリングはデータの喪失や変造を最大限に防ぎます。しかし代わりにパフォーマンスを妥協する必要があります。データモード・ジャーナリングは2つの書き込み命令を使っています: 初めはジャーナルに、次にディスクに行います。ファイルシステムのタイプを選ぶ時はシステムのスピードとデータの安全性のトレードオフを考えて下さい。
 
   
  +
他のファイルシステムは ordered-mode のジャーナリングを提供し、メタデータのみをログに記録します。全てのジャーナリングはクラッシュの後にファイルシステムを有効な状態に戻しますが、データモード・ジャーナリングは破損やデータ損失に対して最大の防御を提供します。しかし、データモード・ジャーナリングはジャーナルとディスクの2つの書き込みを行うため、システムのパフォーマンスは低下します (Reiser4 は "wandering logs" 機能でこれを回避しています。) システムスピードとデータの安全性のトレードオフはファイルシステムタイプを選択する際に考慮されるべきです。Reiser4 は設計上、完全にアトミックに動作し、メタデータとインラインデータの両方にチェックサムを提供する唯一のファイルシステムです (操作が半分発生していてもデータが破損または破壊されない)。したがって設計上、他のファイルシステム [[Btrfs]] などに比べてデータ損失の可能性は非常に低くなっています。
=== FUSE ベースのファイルシステム ===
 
   
  +
Reiser4、Bcachefs、Btrfs、ZFS などのコピーオンライト (write-anywhere としても知られている) に基づくファイルシステムは、その場で更新されることがないため、メタデータを保護するために従来のジャーナルを使う必要はありません。Btrfs はまだジャーナル的なログツリーを持っていますが、それは fdatasync/fsync を高速化するためだけに使われます。
[[Wikipedia:ja:Filesystem in Userspace|Filesystem in Userspace]] (FUSE) は通常ユーザーがカーネルコードを修正することなく独自のファイルシステムを作成できる、Unix ライクなオペレーティングシステムの仕組みです。''ユーザー空間''でファイルシステムのコードを実行することにより、FUSE カーネルモジュールは実際のカーネルインターフェイスとの橋渡しを行います。
 
   
有名な FUSE ベースのファイルシステム:
+
=== FUSE ベースのファイルシステム ===
 
* {{App|acd-fuse|Amazon Cloud Drive をマウント。|https://github.com/handyman5/acd_fuse|{{AUR|acdfuse-git}}{{Broken package link|{{aur-mirror|acdfuse-git}}}}}}
 
* {{App|adbfs-git|Android デバイスのファイルシステムをマウント。|http://collectskin.com/adbfs/|{{AUR|adbfs-git}}}}
 
* {{App|cddfs|オーディオ CD をマウント。|http://castet.matthieu.free.fr/|{{AUR|cddfs}}{{Broken package link|{{aur-mirror|cddfs}}}}}}
 
* {{App|[[EncFS]]|ユーザー空間のスタック暗号化ファイルシステム。|https://vgough.github.io/encfs/|{{Pkg|encfs}}}}
 
* {{App|fuseiso|ISO を通常ユーザーでマウント。|https://sourceforge.net/projects/fuseiso/|{{Pkg|fuseiso}}}}
 
* {{App|[[gitfs]]|git と完全に統合された FUSE ファイルシステム。|https://www.presslabs.com/gitfs/|{{Aur|gitfs}}}}
 
* {{App|vdfuse|VirtualBox のディスクイメージ (VDI/VMDK/VHD) をマウント。|https://github.com/muflone/virtualbox-includes|{{AUR|vdfuse}}}}
 
* {{App|wiifuse|Gamecube や Wii の DVD ディスクイメージを読み取り専用でマウント。|http://wiibrew.org/wiki/Wiifuse|{{AUR|wiifuse}}{{Broken package link|{{aur-mirror|wiifuse}}}}}}
 
* {{App|xbfuse-git|Xbox (360) の ISO をマウント。|http://multimedia.cx/xbfuse/|{{AUR|xbfuse-git}}}}
 
* {{App|xmlfs|XML ファイルをディレクトリツリーとしてマウント。|https://github.com/halhen/xmlfs|{{AUR|xmlfs}}}}
 
 
[[Wikipedia:ja:Filesystem in Userspace#FUSE利用例]] も参照。
 
 
=== Stackable ファイルシステム ===
 
 
* {{App|aufs|FUSE ベースの union ファイルシステムである Advanced Multi-layered Unification Filesystem は、Unionfs を完全に書き直したものですが、Linux メインラインから拒絶され、代わりに OverlayFS が Linux カーネルにマージされました。|{{AUR|linux-aufs}}}}
 
   
  +
[[FUSE]] を見てください。
* {{App|[[eCryptfs]]|Enterprise Cryptographic Filesystem は Linux 用のディスク暗号化ソフトウェアのパッケージです。これは POSIX 準拠のファイルシステムレベルの暗号化レイヤとして実装され、オペレーティングシステムレベルで GnuPG と同様の機能を提供することを目的としています。|http://ecryptfs.org|{{Pkg|ecryptfs-utils}}}}
 
   
* {{App|mergerfs|FUSE ベーの union ファイルシステムです。|{{AUR|mergerfs}}}}
+
===タック可能なファイルシステム ===
   
  +
* {{App|[[eCryptfs]]|Enterprise Cryptographic Filesystem は Linux 用のディスク暗号化ソフトウェアのパッケージです。これは POSIX 準拠のファイルシステムレベルの暗号化レイヤとして実装され、オペレーティングシステムレベルで GnuPG と同様の機能を提供することを目的としています。|https://ecryptfs.org|{{Pkg|ecryptfs-utils}}}}
  +
* {{App|mergerfs|FUSE ベースの union ファイルシステムです。|https://github.com/trapexit/mergerfs|{{AUR|mergerfs}}}}
 
* {{App|mhddfs|FUSE ベースの union ファイルシステムである Multi-HDD FUSE ファイルシステム。|http://mhddfs.uvw.ru|{{AUR|mhddfs}}}}
 
* {{App|mhddfs|FUSE ベースの union ファイルシステムである Multi-HDD FUSE ファイルシステム。|http://mhddfs.uvw.ru|{{AUR|mhddfs}}}}
  +
* {{App|[[overlayfs]]|OverlayFS は Linux 用のファイルシステムサービスで、他のファイルシステムの union マウントを実装しています。|https://docs.kernel.org/filesystems/overlayfs.html|{{Pkg|linux}}}}
  +
* {{App|unionfs-fuse|ユーザースペース Unionfs の実装。|https://github.com/rpodgorny/unionfs-fuse|{{AUR|unionfs-fuse}}}}
   
  +
=== 読み取り専用のファイルシステム ===
* {{App|[[overlayfs]]|OverlayFS は Linux 用のファイルシステムサービスで、他のファイルシステムの union マウントを実装しています。|https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html|{{Pkg|linux}}}}
 
   
  +
* {{App|[[Wikipedia:ja:EROFS|EROFS]]|Enhanced Read-Only File System は、パフォーマンスの向上とストレージ容量の圧縮を目的とした軽量の読み取り専用ファイルシステムです。|https://erofs.docs.kernel.org/|{{Pkg|erofs-utils}}}}
* {{App|Unionfs|Unionfs は Linux, FreeBSD, NetBSD 用のファイルシステムサービスで,他のファイルシステムの共用マウントを実装しています。|http://unionfs.filesystems.org/}}
 
  +
* {{App|[[Wikipedia:ja:SquashFS|SquashFS]]|SquashFS は、読み取り専用の圧縮ファイルシステムです。SquashFS はファイル、inodes、ディレクトリーを圧縮し、さらに大きな圧縮のために最大 1 MiB のブロック・サイズをサポートします。|https://github.com/plougher/squashfs-tools|{{Pkg|squashfs-tools}}}}
   
  +
=== クラスタ化ファイルシステム ===
* {{App|unionfs-fuse|ユーザースペース Unionfs の実装。|https://github.com/rpodgorny/unionfs-fuse|{{Pkg|unionfs-fuse}}}}
 
   
  +
* {{App|[[BeeGFS]]|高パフォーマンスコンピューティングのために開発・最適化された並列ファイルシステム。|https://www.beegfs.io/c/|{{AUR|beegfs-client}}}}
=== Read-only ファイルシステム ===
 
  +
* {{App|[[Ceph]]|優れたパフォーマンス、信頼性、拡張性を実現するように設計された、統合された分散ストレージシステム。|https://ceph.com/|{{AUR|ceph}}}}
 
* {{App|[[Wikipedia:EROFS|EROFS]]|Enhanced Read-Only File System は、パフォーマンスの向上とストレージ容量の圧縮を目的とした軽量の読み取り専用ファイルシステムです。|https://www.kernel.org/doc/html/latest/filesystems/erofs.html|{{AUR|erofs-utils}}}}
 
* {{App|[[Wikipedia: SquashFS|SquashFS]]|SquashFS は、読み取り専用の圧縮ファイルシステムです。SquashFS はファイル、inodes、ディレクトリーを圧縮し、さらに大きな圧縮のために最大 1MB のブロック・サイズをサポートします。|http://squashfs.sourceforge.net/|{{Pkg|squashfs-tools}}}}
 
 
=== クラスタ化ファイルシステム ===
 
 
* {{App|[[Ceph]]|優れたパフォーマンス、信頼性、拡張性を実現するように設計された、統合された分散ストレージシステム。|https://ceph.com/|{{pkg|ceph}}}}
 
 
* {{App|[[GlusterFS]]|数ペタバイトまで拡張可能なクラスタファイルシステム。|https://www.gluster.org/|{{Pkg|glusterfs}}}}
 
* {{App|[[GlusterFS]]|数ペタバイトまで拡張可能なクラスタファイルシステム。|https://www.gluster.org/|{{Pkg|glusterfs}}}}
* {{App|[[IPFS]]|Web を高速化、安全化、およびオープン化するためのピアツーピアハイパーメディアプロトコル。IPFS は HTTP に取って代わり、私たち全員のためにより良いウェブを構築することを目指しています。ブロックを使用してファイルの一部を保存し、各ネットワーク・ノードは関心のあるコンテンツのみを保存し、重複除外、分散、拡張性の高いシステムをユーザーのみに制限 (現在はアルファ版)|https://ipfs.io/|{{Pkg|go-ipfs}}}}
+
* {{App|[[IPFS]]|Web を高速化、安全化、およびオープン化するためのピアツーピアハイパーメディアプロトコル。IPFS は HTTP に取って代わり、私たち全員のためにより良いウェブを構築することを目指しています。ブロックを使用してファイルの一部を保存し、各ネットワーク・ノードは関心のあるコンテンツのみを保存し、重複除外、分散、拡張性の高いシステムをユーザーのみに制限 (現在はアルファ版)|https://ipfs.io/|{{Pkg|kubo}}}}
  +
* {{App|[[MinIO]]|MinIO は高パフォーマンスな S3 互換のオブジェクトストレージを提供します。|https://min.io|{{Pkg|minio}}}}
 
* {{App|[[Wikipedia: MooseFS|MooseFS]]|MooseFS は、耐障害性で可用性が高い、高性能なスケールアウトネットワーク分散ファイルシステムです。|https://moosefs.com|{{Pkg|moosefs}}}}
 
* {{App|[[Wikipedia: MooseFS|MooseFS]]|MooseFS は、耐障害性で可用性が高い、高性能なスケールアウトネットワーク分散ファイルシステムです。|https://moosefs.com|{{Pkg|moosefs}}}}
* {{App|[[OpenAFS]]|AFS 分散ファイルシステムのオープンソース実装|http://www.openafs.org|{{AUR|openafs}}}}
+
* {{App|OpenAFS|AFS 分散ファイルシステムのオープンソース実装|https://www.openafs.org|{{AUR|openafs}}}}
* {{App|[[Wikipedia: OrangeFS|OrangeFS]]|OrangeFS は、マルチサーバ・ベースのディスク・ストレージに透過的に並列アクセスするために設計されたスケール・アウト・ネットワーク・ファイル・システムです。並列および分散アプリケーション向けに最適化された MPI-IO のサポート。Linux クライアントだけでなく、Windows、Hadoop、WebDAV 用の並列ストレージの使用を簡素化します。POSIX 互換です。バージョン4.6以降のLinux カーネルに含まれます。|http://www.orangefs.org/}}
+
* {{App|[[Wikipedia: OrangeFS|OrangeFS]]|OrangeFS は、マルチサーバ・ベースのディスク・ストレージに透過的に並列アクセスするために設計されたスケール・アウト・ネットワーク・ファイル・システムです。並列および分散アプリケーション向けに最適化された MPI-IO のサポート。Linux クライアントだけでなく、Windows、Hadoop、WebDAV 用の並列ストレージの使用を簡素化します。POSIX 互換です。バージョン4.6以降のLinux カーネルに含まれます。|https://www.orangefs.org/}}
 
* {{App|Sheepdog|ボリュームおよびコンテナサービス用の分散オブジェクトストレージシステムで、ディスクとノードをインテリジェントに管理します。|https://sheepdog.github.io/sheepdog/|{{AUR|sheepdog}}}}
 
* {{App|Sheepdog|ボリュームおよびコンテナサービス用の分散オブジェクトストレージシステムで、ディスクとノードをインテリジェントに管理します。|https://sheepdog.github.io/sheepdog/|{{AUR|sheepdog}}}}
* {{App|[[Wikipedia:Tahoe-LAFS|Tahoe-LAFS]]|TahoeLeastAuthority ファイルシステムは、フリーでオープン、安全、分散、耐障害性、ピアツーピア分散データストアおよび分散ファイルシステムです。
+
* {{App|[[Wikipedia:Tahoe-LAFS|Tahoe-LAFS]]|Tahoe Least-Authority File Store は、フリーでオープン、安全、分散、耐障害性、ピアツーピア分散データストアおよび分散ファイルシステムです。|https://tahoe-lafs.org/|{{AUR|tahoe-lafs}}}}
|https://tahoe-lafs.org/|{{AUR|tahoe-lafs}}}}
 
   
 
=== 共有ディスクファイルシステム ===
 
=== 共有ディスクファイルシステム ===
267行目: 247行目:
 
== 既存のファイルシステムを特定する ==
 
== 既存のファイルシステムを特定する ==
   
既存のファイルシステムを特定するには、[[lsblk]] を使用します
+
[[lsblk]] を使って、既存のファイルシステムを特定することができます:
   
 
{{hc|1=$ lsblk -f|2=
 
{{hc|1=$ lsblk -f|2=
 
NAME FSTYPE LABEL UUID MOUNTPOINT
 
NAME FSTYPE LABEL UUID MOUNTPOINT
  +
sdb
sdb
 
└─sdb1 vfat Transcend 4A3C-A9E9
+
└─sdb1 vfat Transcend 4A3C-A9E9
 
}}
 
}}
   
 
存在する場合、既存のファイルシステムが {{ic|FSTYPE}} 列に表示されます。[[mount]] されている場合は、{{ic|MOUNTPOINT}} 列に表示されます。
 
存在する場合、既存のファイルシステムが {{ic|FSTYPE}} 列に表示されます。[[mount]] されている場合は、{{ic|MOUNTPOINT}} 列に表示されます。
   
== ファイルシステムを作成 する==
+
== ファイルシステムを作成する ==
   
ファイルシステムは通常、 [https://wiki.archlinux.jp/index.php/%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8B%E3%83%B3%E3%82%B0 パーティション]、 [[LVM]]、 [[RAID]]、 [[dm-crypt]] などの論理コンテナ内、または通常のファイル([https://en.wikipedia.org/wiki/Loop_device Wikipedia:Loop deviceを参照]) に作成されます) このセクションでは、パーティションのケースについて説明します。
+
ファイルシステムは通常、[[LVM]]、[[RAID]]、[[dm-crypt]] などの論理コンテナ内、[[パーティション]]、通常のファイル ([[Wikipedia:Loop device]] を参照) に作成されますこのセクションでは、パーティションの場合について説明します。
   
{{Note|1=ファイルシステムは''スーパーフロッピー'' または [https://wiki.archlinux.org/index.php/Partitioning#Partitionless_disk partitionlessdisk] と呼ばれるディスクに直接書き込むことができます。この方法には、特に [https://wiki.archlinux.jp/index.php/Arch_%E3%83%96%E3%83%BC%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9 booting] がそのようなドライブからのものである場合に特定の制限があります。例については、 [[Btrfs#Partitionless Btrfsdisk]] を参照してください。}}
+
{{Note|1=ファイルシステムはディスクに直接書き込むことができます (そのようなディスクは ''スーパーフロッピー'' または [[パーティショニング#パーティションレスディスク|パーティションレスディスク]] と呼ばれます)。この方法を取るといくつかの制限が発生します (特にそのようなドライブから[[Arch ブートプロセス|起動す]]場合)。例については、[[Btrfs#パーティションレス Btrfs ディスク]] を参照してください。}}
   
 
{{Warning|
 
{{Warning|
* 新しいファイルシステムを作成した後、このパーティションに以前保存されたデータ復元される可能性はほとんどありません。 '''保持したいデータのバックアップのみを作成してください'''
+
* 新しいファイルシステムを作成した後、このパーティションに以前保存されていたデータ復元できる可能性はほとんどありません。'''保持したいデータのバックアップを作成してください'''
*特定のパーティションの目的により、ファイルシステムの選択が制限される場合があります。たとえば、 [[EFI システムパーティション]] には [[FAT32]] ファイルシステムが含まれている必要があり、 {{ic|/boot}} ディレクトリを含むファイルシステムは [[ブートローダー]] によってサポートされている必要があります。
+
* 特定のパーティションの目的により、ファイルシステムの選択が制限される場合があります。たとえば、 [[EFI システムパーティション]] には [[FAT32]] ファイルシステムが含まれている必要があり、 {{ic|/boot}} ディレクトリを含むファイルシステムは [[ブートローダー]] によってサポートされている必要があります。
 
}}
 
}}
   
続行する前に、 [[lsblk|デバイスの識別]] ファイルシステム作成され場所と、ファルシテムがマウントされているかどうかを確認してください。例えば:
+
続行する前に、ファイルシステム作成[[lsblk|デバイスを特定]]し、それがマウントされているかどうかを[[lsblk|確認]]してください。例えば:
   
 
{{hc|$ lsblk -f|
 
{{hc|$ lsblk -f|
 
NAME FSTYPE LABEL UUID MOUNTPOINT
 
NAME FSTYPE LABEL UUID MOUNTPOINT
 
sda
 
sda
├─sda1 C4DA-2C4D
+
├─sda1 C4DA-2C4D
 
├─sda2 ext4 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 /mnt
 
├─sda2 ext4 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 /mnt
└─sda3 56adc99b-a61e-46af-aab7-a6d07e504652
+
└─sda3 56adc99b-a61e-46af-aab7-a6d07e504652
 
}}
 
}}
   
先に進む前に、マウントされファイルシステムを '''[[#ファイルシステムのアンマウント|アンマウント]] する必要がありま。上記の例では、既存のファイルシステムは {{ic|/dev/sda2}} にあり、 {{ic|/mnt}} にマウントされていますが、マウントを解除する必要があります:
+
先に進む前に、マウントされているファイルシステムを '''[[#ファイルシステムのアンマウント|アンマウント]]しなければなりません'''。上記の例では、既存のファイルシステムは {{ic|/dev/sda2}} にあり、 {{ic|/mnt}} にマウントされていますが、マウントを解除する必要があります:
   
#umount / dev / sda2
+
# umount /dev/sda2
   
マウントされたばかりのファイルシステムを見つけるは、[[#List Mountedfilesystems]] を参照してください。
+
マウントされたばかりのファイルシステムを見つける方法は、[[#マウントしたファイルシステムの一覧表示]] を参照してください。
   
新しいファイルシステムを作成するには、 {{man|8|mkfs}} を使用します。正確なタイプ、および特定のファイルシステムにインストールする可能性のあるユーザースペースユーティリティについては、 [[#ファイルシステムのタイプ]] を参照してください。
+
新しいファイルシステムを作成するには、{{man|8|mkfs}} を使用します。正確なタイプ、および特定のファイルシステムにインストールする可能性のあるユーザースペースユーティリティについては、 [[#ファイルシステムのタイプ]] を参照してください。
   
たとえば、 {{ic|/dev/sda1}} でタイプ [[ext4]] (Linuxデータパーティションに共通)の新しいファイルシステムを作成するには、次のコマンドを実行します
+
たとえば、 {{ic|/dev/sda1}} でタイプ [[ext4]] (Linux データパーティションで一般的使われています) の新しいファイルシステムを作成するには、次のコマンドを実行します:
   
#mkfs.ext4 / dev / sda1
+
# mkfs.ext4 /dev/sda1
   
 
{{Tip|
 
{{Tip|
* ''mkfs.ext4'' の {{ic|-L}} フラグを使用して、[[永続的なブロックデバイスの命名#by-label|ファイルシステムラベル]] を指定ます。 ''e2label'' を使用して、既存のファイルシステムのラベルを変更できます。
+
* ''mkfs.ext4'' の {{ic|-L}} フラグを使用して、[[永続的なブロックデバイスの命名#by-label|ファイルシステムラベル]] を指定できます。''e2label'' を使用して、既存のファイルシステムのラベルを変更できます。
*ファイルシステムは、特定の制限付きで、作成後に「サイズ変更」される場合があります。たとえば、 [[XFS]] ファイルシステムのサイズを増やすことはできますが、減らすことはできません。詳細については、 [[Wikipedia:ファイルシステムの比較#サイズ変更機能]] およびそれぞれのファイルシステムのドキュメントを参照してください。}}
+
* ファイルシステムは、特定の制限付きで、作成後に「サイズ変更」できます。たとえば、 [[XFS]] ファイルシステムのサイズを増やすことはできますが、減らすことはできません。詳細については、 [[Wikipedia:ファイルシステムの比較#サイズ変更機能]] およびそれぞれのファイルシステムのドキュメントを参照してください。}}
   
これで、新しいファイルシステムを選択したディレクトリにマウントできます。
+
これで、新しいファイルシステムを任意のディレクトリにマウントできます。
   
== デバイスのフォート ==
+
== ファルシテムのマウント ==
{{Warning|フォーマットはデバイスの全てのデータを消去します。保持したいデータはバックアップを取って下さい。}}
 
   
  +
デバイス(パーティションなど)上にあるファイルシステムを手動でディレクトリにマウントするには、{{man|8|mount}} を使用します。この例では {{ic|/dev/sda1}} を {{ic|/mnt}} にマウントしています。
===要件===
 
はじめる前に、Linux がつけたデバイスの名前を知る必要があります。ハードドライブや USB スティックは {{ic|/dev/sd''x''}} のように表示され、"x" は小文字の英字で、パーティションは {{ic|/dev/sd''xY''}} のように表示され、"Y" は数字です。
 
   
  +
# mount /dev/sda1 /mnt
フォーマットしたいデバイスがマウントされているなら、次のコマンドの ''MOUNTPOINT'' カラムに表示されます:
 
   
  +
これは {{ic|/dev/sda1}} 上のファイルシステムをディレクトリ {{ic|/mnt}} にアタッチし、ファイルシステムの内容を見えるようにするものです。この操作の前に {{ic|/mnt}} に存在していたデータは、デバイスがアンマウントされるまで不可視状態になります。
$ lsblk
 
   
  +
[[fstab]] には、デバイスが存在する場合に自動的にマウントされる方法に関する情報が含まれています。この動作を変更する方法の詳細については、[[fstab]] の記事を参照してください。
デバイスがマウントされていない時は:
 
   
  +
デバイスが {{ic|/etc/fstab}} で指定されていて、コマンドラインでデバイスかマウントポイントだけが指定された場合、その情報がマウント時に使用されます。例えば、{{ic|/etc/fstab}} に {{ic|/dev/sda1}} を {{ic|/mnt}} にマウントするという行がある場合、以下は自動的にその場所にデバイスをマウントすることになります。
# mount /dev/sd''xY'' /some/directory
 
   
  +
# mount /dev/sda1
''umount'' をマウントしたディレクトリに使うことでアンマウントできます:
 
   
  +
または、
# umount /some/directory
 
   
  +
# mount /mnt
{{note|新しいファイルシステムを作ったりフォーマットするにはデバイスがアンマウントされていなければなりません。}}
 
   
  +
''mount'' にはいくつかのオプションがあり、その多くは指定されたファイルシステムに依存します。
パーティションテーブルを書き換えて下さい。MBR には '''fdisk''' が、GPT には '''gdisk''' が使えます。[[#GUI ツール|GUI ツール]]を使うことも可能です。詳しくは[[パーティショニング]]を見て下さい。
 
  +
オプションは以下の方法で変更することができます:
   
  +
* コマンドラインで ''mount'' と共にフラグを使用する
=== コンソールツール ===
 
  +
* [[fstab]] を編集する
  +
* [[udev]] ルールを作成する
  +
* [[Arch build system|カーネルを自分でコンパイルする]]
  +
* ファイルシステム固有のマウントスクリプト ({{ic|/usr/bin/mount.*}} にあります) を使用する
   
ファイルシステムを作るには {{ic|mkfs}} を使ます:
+
より詳しい情報は、これらの関連記事と、興味のあるファイルシステムの記事ご覧下さ
   
  +
{{Tip|
# mkfs -t ext4 /dev/''<partition>''
 
  +
* ファイルシステムは ''mount'' の代わりに ''systemd-mount'' でもマウントできます。マウントポイントが指定されていない場合、ファイルシステムは {{ic|/run/media/system/''device_identifier''/}} にマウントされます。これにより、ファイルシステムをどこにマウントするかを決めることなく、簡単にマウントすることができます。使い方や詳細は {{man|1|systemd-mount}} を参照してください。
  +
* 一般ユーザーとしてファイルシステムをマウントする方法については、[[udisks#使用方法]] を見てください。これにより、root 権限や完全なグラフィック環境、udisks を使用するファイルマネージャを用いずにファイルシステムをマウントできるようになります。
  +
}}
   
  +
=== マウントしたファイルシステムの一覧表示 ===
{{ic|mkfs}} は様々な {{ic|mkfs.''fstype''}} ツールを使うための統合フロントエンドです。
 
   
swap ファイルシステムを作成するには '''mkswap''' を使います:
+
マウントされている全てのファイルシステムを一覧表示するには {{man|8|findmnt}} を使ってください:
   
  +
$ findmnt
# mkswap /dev/''<partition>''
 
   
  +
''findmnt'' は様々な引数を取り、出力をフィルタリングしたり、追加情報を表示したりすることができます。例えば、デバイスやマウントポイントを引数として取り、指定されたものについての情報のみを表示させることができます:
=== GUI ツール ===
 
  +
パーティション管理のための GUI ツール:
 
  +
$ findmnt /dev/sda1
* {{App|[[Gparted]]|GTK+ Partition Magic クローン、GNU Parted のフロントエンド。|http://gparted.sourceforge.net|{{Pkg|gparted}}}}
 
  +
* {{App|gnome-disk-utility|GNOME のディスク管理ユーティリティ。|http://www.gnome.org|{{Pkg|gnome-disk-utility}}}}
 
  +
''findmnt'' は {{ic|/etc/fstab}}, {{ic|/etc/mtab}}, {{ic|/proc/self/mounts}} から情報を収集します。
* {{App|KDE Partition Manager|ディスク・パーティション・ファイルシステムの管理ができる KDE のユーティリティ。|https://sourceforge.net/projects/partitionman/|{{Pkg|partitionmanager}}}}
 
  +
  +
=== ファイルシステムのアンマウント ===
  +
  +
ファイルシステムをアンマウントするには {{man|8|umount}} を使ってください。ファイルシステムがあるデバイス (例:{{ic|/dev/sda1}}) かマウントポイント (例:{{ic|/mnt}}) のどちらかを指定することが可能です。
  +
  +
# umount /dev/sda1
  +
  +
または、
  +
  +
# umount /mnt
  +
  +
== トラブルシューティング ==
  +
  +
=== "linux Structure needs cleaning" ===
  +
  +
ファイルシステムを[[#ファイルシステムのアンマウント|アンマウント]]し、問題のあるボリュームで [[fsck]] を実行してください。
   
 
== 参照 ==
 
== 参照 ==
360行目: 362行目:
 
* {{man|5|filesystems}}
 
* {{man|5|filesystems}}
 
* {{man|1|systemd-mount}}
 
* {{man|1|systemd-mount}}
* [https://www.kernel.org/doc/html/latest/filesystems/index.html Documentation of file systems supported by Linux]
+
* [https://docs.kernel.org/filesystems/index.html Linux によってサポートされているファイルシステムのドキュメント]
 
* [[Wikipedia:File systems]]
 
* [[Wikipedia:File systems]]
 
* [[Wikipedia:Mount (Unix)]]
 
* [[Wikipedia:Mount (Unix)]]
  +
  +
{{TranslationStatus|File systems|2024-05-09|807927}}

2024年5月17日 (金) 14:48時点における最新版

関連記事

Wikipedia より:

ファイルシステムは、コンピュータのリソースを操作するための、オペレーティングシステム (OS) が持つ機能の一つ。ファイルとは、主に補助記憶装置に格納されたデータを指すが、デバイスやプロセス、カーネル内の情報といったものもファイルとして提供するファイルシステムもある。
より正確に定義すれば、ファイルシステムは抽象データ型の集まりであり、ストレージ、階層構造、データの操作/アクセス/検索のために実装されたものである。ファイルシステムを特殊用途のデータベース管理システム (DBMS) と見なせるかどうかは議論があるが、ファイルシステムとデータベース管理システムには多くの共通点がある。

個々のドライブパーティションに、多くのファイルシステムのなかから1つを設定することができます。ファイルシステムはそれぞれにメリット、デメリット、特徴があります。ここではサポートされているファイルシステムの概要を記述します。より多くの情報を見るには Wikipedia へのリンクを辿って下さい。

ファイルシステムのタイプ

一般的な概要については filesystems(5) を、詳細な機能の比較については Wikipedia:Comparison of file systems を参照してください。カーネルによってすでにロードされている、あるいは組み込まれているファイルシステムは、/proc/filesystems にリストアップされています。一方、インストールされているモジュールは ls /lib/modules/$(uname -r)/kernel/fs ですべて見ることができます。

組み込まれている (in-tree) ファイルシステムと FUSE ファイルシステム
ファイルシステム 作成コマンド ユーザースペースユーティリティ Archiso [1] カーネルのドキュメント [2] 備考
Bcachefs bcachefs(8) bcachefs-tools Yes Linux 6.7 から利用可能 (実験的)。
Btrfs mkfs.btrfs(8) btrfs-progs Yes btrfs.html 安定性に関する状況
VFAT mkfs.fat(8) dosfstools Yes vfat.html Windows 9x のファイルシステム
exFAT mkfs.exfat(8) exfatprogs Yes Linux 5.4 のネイティブのファイルシステム。[3]
mkexfatfs(8) exfat-utils No N/A (FUSE ベース)
F2FS mkfs.f2fs(8) f2fs-tools Yes f2fs.html フラッシュメモリベースのデバイス
ext3 mkfs.ext3(8) e2fsprogs Yes ext3.html
ext4 mkfs.ext4(8) e2fsprogs Yes ext4.html
HFS mkfs.hfsplus(8) hfsprogsAUR No hfs.html Classic Mac OS のファイルシステム
HFS+ mkfs.hfsplus(8) hfsprogsAUR No hfsplus.html macOS (8–10.12) のファイルシステム
JFS mkfs.jfs(8) jfsutils Yes jfs.html
NILFS2 mkfs.nilfs2(8) nilfs-utils Yes nilfs2.html Raw フラッシュデバイス (例:SD カード)
NTFS Yes ntfs3.html Windows NT のファイルシステム。新しいドライバ。Linux 5.15 から利用可能。
ntfs-3g[4] No ntfs.html 古いドライバ。書き込みのサポートは非常に制限されています。Linux 6.9 で削除されました。公式にサポートされているカーネルCONFIG_NTFS_FS フラグ無しでビルドされているため、このドライバは利用できません。
mkfs.ntfs(8) Yes N/A (FUSE ベース) 拡張機能付き FUSE ドライバ。
ReiserFS mkfs.reiserfs(8) reiserfsprogs Yes ReiserFS は Linux 5.18 で非推奨 になりました。2025 年にカーネルから削除される予定です。
UDF mkfs.udf(8) udftools Yes udf.html
XFS mkfs.xfs(8) xfsprogs Yes

xfs.html
xfs-delayed-logging-design.html
xfs-self-describing-metadata.html

縮小不可
外部 (out-of-tree) のファイルシステム
ファイルシステム 作成コマンド カーネルパッチセット ユーザースペースユーティリティ 備考
APFS mkapfs(8) linux-apfs-rw-dkms-gitAUR apfsprogs-gitAUR macOS (10.13 およびそれ以降) のファイルシステム。読み取り専用。実験的。Fuse バージョンの apfs-fuse-gitAUR も参照。
Reiser4 mkfs.reiser4(8) reiser4progsAUR
ZFS zfs-linuxAUR, zfs-dkmsAUR zfs-utilsAUR OpenZFS 移植

ジャーナリング

exFAT、ext2、FAT16/32、Reiser4 (オプション)、Bcachefs、Btrfs、ZFS を除く上記のすべてのファイルシステムは ジャーナリング を使用しています。ジャーナリングは、ファイルシステムにコミットする前に変更を記録することで、障害からの回復力を提供します。システムクラッシュや停電の際、このようなファイルシステムはオンラインに戻すのが速く、破損する可能性も低くなります。ロギングはファイルシステムの専用領域で行われます。

すべてのジャーナリング技術が同じというわけではありません。ext3 と ext4 はデータモード・ジャーナリングを提供し、データとメタデータの両方を記録し、メタデータの変更だけを記録することもできます。データモード・ジャーナリングにはスピードのペナルティがあり、デフォルトでは有効になっていません。同じように、Reiser4 はいわゆる "トランザクションモデル" を提供します。これは提供する機能だけでなくジャーナリングモードも変更します。wandering logs と呼ばれる特別なモデルの異なるジャーナリング技術を使い、ディスクに二度書きする必要がありません。write-anywhere (btrfs のデフォルトとほぼ同じですが根本的に異なる "tree" デザイン) と hybrid という複合アプローチでは前者の2つをヒューリスティックに交互に使用することができます。

ノート: Reiser4 はメタデータとインラインチェックサムを特徴とする 'node41 プラグインを使用して ext4 のデフォルトのジャーナリング動作とほぼ同等のもの(メタデータのみ)を提供し、オプションでトランザクションモデルに応じて提供される wandering logs を動作と組み合わせます。マウント時に選択されます。

他のファイルシステムは ordered-mode のジャーナリングを提供し、メタデータのみをログに記録します。全てのジャーナリングはクラッシュの後にファイルシステムを有効な状態に戻しますが、データモード・ジャーナリングは破損やデータ損失に対して最大の防御を提供します。しかし、データモード・ジャーナリングはジャーナルとディスクの2つの書き込みを行うため、システムのパフォーマンスは低下します (Reiser4 は "wandering logs" 機能でこれを回避しています。) システムスピードとデータの安全性のトレードオフはファイルシステムタイプを選択する際に考慮されるべきです。Reiser4 は設計上、完全にアトミックに動作し、メタデータとインラインデータの両方にチェックサムを提供する唯一のファイルシステムです (操作が半分発生していてもデータが破損または破壊されない)。したがって設計上、他のファイルシステム Btrfs などに比べてデータ損失の可能性は非常に低くなっています。

Reiser4、Bcachefs、Btrfs、ZFS などのコピーオンライト (write-anywhere としても知られている) に基づくファイルシステムは、その場で更新されることがないため、メタデータを保護するために従来のジャーナルを使う必要はありません。Btrfs はまだジャーナル的なログツリーを持っていますが、それは fdatasync/fsync を高速化するためだけに使われます。

FUSE ベースのファイルシステム

FUSE を見てください。

スタック可能なファイルシステム

  • eCryptfs — Enterprise Cryptographic Filesystem は Linux 用のディスク暗号化ソフトウェアのパッケージです。これは POSIX 準拠のファイルシステムレベルの暗号化レイヤとして実装され、オペレーティングシステムレベルで GnuPG と同様の機能を提供することを目的としています。
https://ecryptfs.org || ecryptfs-utils
  • mergerfs — FUSE ベースの union ファイルシステムです。
https://github.com/trapexit/mergerfs || mergerfsAUR
  • mhddfs — FUSE ベースの union ファイルシステムである Multi-HDD FUSE ファイルシステム。
http://mhddfs.uvw.ru || mhddfsAUR
  • overlayfs — OverlayFS は Linux 用のファイルシステムサービスで、他のファイルシステムの union マウントを実装しています。
https://docs.kernel.org/filesystems/overlayfs.html || linux
  • unionfs-fuse — ユーザースペース Unionfs の実装。
https://github.com/rpodgorny/unionfs-fuse || unionfs-fuseAUR

読み取り専用のファイルシステム

  • EROFS — Enhanced Read-Only File System は、パフォーマンスの向上とストレージ容量の圧縮を目的とした軽量の読み取り専用ファイルシステムです。
https://erofs.docs.kernel.org/ || erofs-utils
  • SquashFS — SquashFS は、読み取り専用の圧縮ファイルシステムです。SquashFS はファイル、inodes、ディレクトリーを圧縮し、さらに大きな圧縮のために最大 1 MiB のブロック・サイズをサポートします。
https://github.com/plougher/squashfs-tools || squashfs-tools

クラスタ化ファイルシステム

  • BeeGFS — 高パフォーマンスコンピューティングのために開発・最適化された並列ファイルシステム。
https://www.beegfs.io/c/ || beegfs-clientAUR
  • Ceph — 優れたパフォーマンス、信頼性、拡張性を実現するように設計された、統合された分散ストレージシステム。
https://ceph.com/ || cephAUR
  • GlusterFS — 数ペタバイトまで拡張可能なクラスタファイルシステム。
https://www.gluster.org/ || glusterfs
  • IPFS — Web を高速化、安全化、およびオープン化するためのピアツーピアハイパーメディアプロトコル。IPFS は HTTP に取って代わり、私たち全員のためにより良いウェブを構築することを目指しています。ブロックを使用してファイルの一部を保存し、各ネットワーク・ノードは関心のあるコンテンツのみを保存し、重複除外、分散、拡張性の高いシステムをユーザーのみに制限 (現在はアルファ版)
https://ipfs.io/ || kubo
  • MinIO — MinIO は高パフォーマンスな S3 互換のオブジェクトストレージを提供します。
https://min.io || minio
  • MooseFS — MooseFS は、耐障害性で可用性が高い、高性能なスケールアウトネットワーク分散ファイルシステムです。
https://moosefs.com || moosefs
  • OpenAFS — AFS 分散ファイルシステムのオープンソース実装。
https://www.openafs.org || openafsAUR
  • OrangeFS — OrangeFS は、マルチサーバ・ベースのディスク・ストレージに透過的に並列アクセスするために設計されたスケール・アウト・ネットワーク・ファイル・システムです。並列および分散アプリケーション向けに最適化された MPI-IO のサポート。Linux クライアントだけでなく、Windows、Hadoop、WebDAV 用の並列ストレージの使用を簡素化します。POSIX 互換です。バージョン4.6以降のLinux カーネルに含まれます。
https://www.orangefs.org/ || パッケージが存在しないか AUR で検索
  • Sheepdog — ボリュームおよびコンテナサービス用の分散オブジェクトストレージシステムで、ディスクとノードをインテリジェントに管理します。
https://sheepdog.github.io/sheepdog/ || sheepdogAUR
  • Tahoe-LAFS — Tahoe Least-Authority File Store は、フリーでオープン、安全、分散、耐障害性、ピアツーピア分散データストアおよび分散ファイルシステムです。
https://tahoe-lafs.org/ || tahoe-lafsAUR

共有ディスクファイルシステム

  • GFS2 — GFS2 では、クラスタのすべてのメンバーが同じ共有ブロック・ストレージに直接同時にアクセスできます。
https://pagure.io/gfs2-utils || gfs2-utilsAUR
  • OCFS2 — Oracle Cluster File System (バージョン2) は、Oracle Corporation によって開発され、GNU General Public License の下でリリースされる共有ディスク・ファイル・システムです。
https://oss.oracle.com/projects/ocfs2/ || ocfs2-toolsAUR
  • VMware VMFS — VMware の VMFS (Virtual Machine File System) は、同社の主力サーバ仮想化スイートである vSphere で使用されているファイルシステムです。
https://www.vmware.com/products/vi/esx/vmfs.html || vmfs-toolsAUR

既存のファイルシステムを特定する

lsblk を使って、既存のファイルシステムを特定することができます:

$ lsblk -f
NAME   FSTYPE LABEL     UUID                                 MOUNTPOINT
sdb
└─sdb1 vfat   Transcend 4A3C-A9E9

存在する場合、既存のファイルシステムが FSTYPE 列に表示されます。mount されている場合は、MOUNTPOINT 列に表示されます。

ファイルシステムを作成する

ファイルシステムは通常、LVMRAIDdm-crypt などの論理コンテナ内、パーティション、通常のファイル (Wikipedia:Loop device を参照) に作成されます。このセクションでは、パーティションの場合について説明します。

ノート: ファイルシステムはディスクに直接書き込むことができます (そのようなディスクは スーパーフロッピー または パーティションレスディスク と呼ばれます)。この方法を取るといくつかの制限が発生します (特に、そのようなドライブから起動する場合)。例については、Btrfs#パーティションレス Btrfs ディスク を参照してください。
警告:
  • 新しいファイルシステムを作成した後、このパーティション上に以前保存されていたデータを復元できる可能性はほとんどありません。保持したいデータのバックアップを作成してください
  • 特定のパーティションの目的により、ファイルシステムの選択が制限される場合があります。たとえば、 EFI システムパーティション には FAT32 ファイルシステムが含まれている必要があり、 /boot ディレクトリを含むファイルシステムは ブートローダー によってサポートされている必要があります。

続行する前に、ファイルシステムを作成するデバイスを特定し、それがマウントされているかどうかを確認してください。例えば:

$ lsblk -f
NAME   FSTYPE   LABEL       UUID                                 MOUNTPOINT
sda
├─sda1                      C4DA-2C4D
├─sda2 ext4                 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 /mnt
└─sda3                      56adc99b-a61e-46af-aab7-a6d07e504652

先に進む前に、マウントされているファイルシステムを アンマウントしなければなりません。上記の例では、既存のファイルシステムは /dev/sda2 にあり、 /mnt にマウントされていますが、マウントを解除する必要があります:

# umount /dev/sda2

マウントされたばかりのファイルシステムを見つける方法は、#マウントしたファイルシステムの一覧表示 を参照してください。

新しいファイルシステムを作成するには、mkfs(8) を使用します。正確なタイプ、および特定のファイルシステムにインストールする可能性のあるユーザースペースユーティリティについては、 #ファイルシステムのタイプ を参照してください。

たとえば、 /dev/sda1 でタイプ ext4 (Linux データパーティションで一般的に使われています) の新しいファイルシステムを作成するには、次のコマンドを実行します:

# mkfs.ext4 /dev/sda1
ヒント:
  • mkfs.ext4-L フラグを使用して、ファイルシステムラベル を指定できます。e2label を使用して、既存のファイルシステムのラベルを変更できます。
  • ファイルシステムは、特定の制限付きで、作成後に「サイズ変更」できます。たとえば、 XFS ファイルシステムのサイズを増やすことはできますが、減らすことはできません。詳細については、 Wikipedia:ファイルシステムの比較#サイズ変更機能 およびそれぞれのファイルシステムのドキュメントを参照してください。

これで、新しいファイルシステムを任意のディレクトリにマウントできます。

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

デバイス(パーティションなど)上にあるファイルシステムを手動でディレクトリにマウントするには、mount(8) を使用します。この例では /dev/sda1/mnt にマウントしています。

# mount /dev/sda1 /mnt

これは /dev/sda1 上のファイルシステムをディレクトリ /mnt にアタッチし、ファイルシステムの内容を見えるようにするものです。この操作の前に /mnt に存在していたデータは、デバイスがアンマウントされるまで不可視状態になります。

fstab には、デバイスが存在する場合に自動的にマウントされる方法に関する情報が含まれています。この動作を変更する方法の詳細については、fstab の記事を参照してください。

デバイスが /etc/fstab で指定されていて、コマンドラインでデバイスかマウントポイントだけが指定された場合、その情報がマウント時に使用されます。例えば、/etc/fstab/dev/sda1/mnt にマウントするという行がある場合、以下は自動的にその場所にデバイスをマウントすることになります。

# mount /dev/sda1

または、

# mount /mnt

mount にはいくつかのオプションがあり、その多くは指定されたファイルシステムに依存します。 オプションは以下の方法で変更することができます:

  • コマンドラインで mount と共にフラグを使用する
  • fstab を編集する
  • udev ルールを作成する
  • カーネルを自分でコンパイルする
  • ファイルシステム固有のマウントスクリプト (/usr/bin/mount.* にあります) を使用する

より詳しい情報は、これらの関連記事と、興味のあるファイルシステムの記事をご覧下さい。

ヒント:
  • ファイルシステムは mount の代わりに systemd-mount でもマウントできます。マウントポイントが指定されていない場合、ファイルシステムは /run/media/system/device_identifier/ にマウントされます。これにより、ファイルシステムをどこにマウントするかを決めることなく、簡単にマウントすることができます。使い方や詳細は systemd-mount(1) を参照してください。
  • 一般ユーザーとしてファイルシステムをマウントする方法については、udisks#使用方法 を見てください。これにより、root 権限や完全なグラフィック環境、udisks を使用するファイルマネージャを用いずにファイルシステムをマウントできるようになります。

マウントしたファイルシステムの一覧表示

マウントされている全てのファイルシステムを一覧表示するには findmnt(8) を使ってください:

$ findmnt

findmnt は様々な引数を取り、出力をフィルタリングしたり、追加情報を表示したりすることができます。例えば、デバイスやマウントポイントを引数として取り、指定されたものについての情報のみを表示させることができます:

$ findmnt /dev/sda1

findmnt/etc/fstab, /etc/mtab, /proc/self/mounts から情報を収集します。

ファイルシステムのアンマウント

ファイルシステムをアンマウントするには umount(8) を使ってください。ファイルシステムがあるデバイス (例:/dev/sda1) かマウントポイント (例:/mnt) のどちらかを指定することが可能です。

# umount /dev/sda1

または、

# umount /mnt

トラブルシューティング

"linux Structure needs cleaning"

ファイルシステムをアンマウントし、問題のあるボリュームで fsck を実行してください。

参照

翻訳ステータス: このページは en:File systems の翻訳バージョンです。最後の翻訳日は 2024-05-09 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。