「ファイルシステム」の版間の差分
(項目の並びを英語版に追従) |
(同期) |
||
| (2人の利用者による、間の30版が非表示) | |||
| 1行目: | 1行目: | ||
[[Category:ファイルシステム]] |
[[Category:ファイルシステム]] |
||
| + | [[Category:一覧]] |
||
[[en:File systems]] |
[[en:File systems]] |
||
[[es:File systems]] |
[[es:File systems]] |
||
[[hu:File systems]] |
[[hu:File systems]] |
||
[[it:File systems]] |
[[it: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行目: | 15行目: | ||
{{Related|fsck}} |
{{Related|fsck}} |
||
{{Related|fstab}} |
{{Related|fstab}} |
||
| − | {{Related|アプリケーション一覧#マウントツール}} |
+ | {{Related|アプリケーション一覧/ユーティリティ#マウントツール}} |
| − | {{Related|QEMU# |
+ | {{Related|QEMU#raw イメージからパーティションをマウントする}} |
{{Related|udev}} |
{{Related|udev}} |
||
{{Related|udisks}} |
{{Related|udisks}} |
||
| 21行目: | 24行目: | ||
[[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}} にリストアップされています。一方、インストールされているモジュールは {{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:// |
+ | ! カーネルのドキュメント [https://docs.kernel.org/filesystems/index.html] |
| − | ! |
+ | ! 備考 |
| + | |- |
||
| + | | [[Bcachefs]] |
||
| + | | {{man|8|bcachefs}} |
||
| + | | {{Pkg|bcachefs-tools}} |
||
| + | | {{Yes}} |
||
| + | | [https://docs.kernel.org/filesystems/bcachefs/index.html] |
||
| + | | Linux 6.7 から利用可能 (実験的)。 |
||
|- |
|- |
||
| [[Btrfs]] |
| [[Btrfs]] |
||
| 44行目: | 55行目: | ||
| {{Pkg|btrfs-progs}} |
| {{Pkg|btrfs-progs}} |
||
| {{Yes}} |
| {{Yes}} |
||
| − | | [https:// |
+ | | [https://docs.kernel.org/filesystems/btrfs.html btrfs.html] |
| − | | [https://btrfs. |
+ | | [https://btrfs.readthedocs.io/en/latest/Status.html 安定性に関する状況] |
|- |
|- |
||
| [[VFAT]] |
| [[VFAT]] |
||
| 51行目: | 62行目: | ||
| {{Pkg|dosfstools}} |
| {{Pkg|dosfstools}} |
||
| {{Yes}} |
| {{Yes}} |
||
| − | | [https:// |
+ | | [https://docs.kernel.org/filesystems/vfat.html vfat.html] |
| − | | [[Wikipedia:Windows 9x|Windows 9x]] |
+ | | [[Wikipedia:ja:Windows 9x系|Windows 9x]] のファイルシステム。一般的に、USB フラッシュドライブや SD カードで用いられます。 |
|- |
|- |
||
| − | | rowspan="2" | [[Wikipedia:exFAT|exFAT]] |
+ | | rowspan="2" | [[Wikipedia:ja:exFAT|exFAT]] |
| {{man|8|mkfs.exfat}} |
| {{man|8|mkfs.exfat}} |
||
| {{Pkg|exfatprogs}} |
| {{Pkg|exfatprogs}} |
||
| − | | {{ |
+ | | {{Yes}} |
| |
| |
||
| + | | Linux 5.4 のネイティブのファイルシステム。[https://lwn.net/Articles/799425/] 一般的に、USB フラッシュドライブや SD カードで用いられます。 |
||
| − | | Native file system in Linux 5.4. [https://itsfoss.com/linux-kernel-5-4/] |
||
|- |
|- |
||
| {{man|8|mkexfatfs}} |
| {{man|8|mkexfatfs}} |
||
| {{Pkg|exfat-utils}} |
| {{Pkg|exfat-utils}} |
||
| − | | {{ |
+ | | {{No}} |
| − | | N/A (FUSE |
+ | | N/A (FUSE ベース) |
| |
| |
||
|- |
|- |
||
| 71行目: | 82行目: | ||
| {{Pkg|f2fs-tools}} |
| {{Pkg|f2fs-tools}} |
||
| {{Yes}} |
| {{Yes}} |
||
| − | | [https:// |
+ | | [https://docs.kernel.org/filesystems/f2fs.html f2fs.html] |
| + | | フラッシュメモリベースのデバイス。縮小することはできません。 |
||
| − | |||
| − | | Flash-based devices |
||
|- |
|- |
||
| [[ext3]] |
| [[ext3]] |
||
| − | | {{man|8| |
+ | | {{man|8|mkfs.ext3}} |
| {{Pkg|e2fsprogs}} |
| {{Pkg|e2fsprogs}} |
||
| {{Yes}} |
| {{Yes}} |
||
| − | | [https:// |
+ | | [https://docs.kernel.org/filesystems/ext3.html ext3.html] |
| |
| |
||
|- |
|- |
||
| [[ext4]] |
| [[ext4]] |
||
| − | | {{man|8| |
+ | | {{man|8|mkfs.ext4}} |
| {{Pkg|e2fsprogs}} |
| {{Pkg|e2fsprogs}} |
||
| {{Yes}} |
| {{Yes}} |
||
| − | | [https:// |
+ | | [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:// |
+ | | [https://docs.kernel.org/filesystems/hfs.html hfs.html] |
| − | | [[Wikipedia:Classic Mac OS|Classic Mac OS]] |
+ | | [[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:// |
+ | | [https://docs.kernel.org/filesystems/hfsplus.html hfsplus.html] |
| − | | [[Wikipedia:macOS|macOS]] (8–10.12) |
+ | | [[Wikipedia:ja:macOS|macOS]] (8–10.12) のファイルシステム |
|- |
|- |
||
| [[JFS]] |
| [[JFS]] |
||
| 107行目: | 117行目: | ||
| {{Pkg|jfsutils}} |
| {{Pkg|jfsutils}} |
||
| {{Yes}} |
| {{Yes}} |
||
| − | | [https:// |
+ | | [https://docs.kernel.org/admin-guide/jfs.html jfs.html] |
| |
| |
||
|- |
|- |
||
| − | | [[ |
+ | | [[NILFS2]] |
| {{man|8|mkfs.nilfs2}} |
| {{man|8|mkfs.nilfs2}} |
||
| {{Pkg|nilfs-utils}} |
| {{Pkg|nilfs-utils}} |
||
| {{Yes}} |
| {{Yes}} |
||
| − | | [https:// |
+ | | [https://docs.kernel.org/filesystems/nilfs2.html nilfs2.html] |
| + | | 基本的にフラッシュベースのデバイスで用いることを意図しています。[[拡張属性|xattrs]] と [[ACL]] はサポートされていません。 |
||
| + | |- |
||
| + | | rowspan="2" | [[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 から利用可能。 |
||
|- |
|- |
||
| − | | [[NTFS]] |
||
| {{man|8|mkfs.ntfs}} |
| {{man|8|mkfs.ntfs}} |
||
| {{Pkg|ntfs-3g}} |
| {{Pkg|ntfs-3g}} |
||
| {{Yes}} |
| {{Yes}} |
||
| − | | N/A (FUSE |
+ | | N/A (FUSE ベース) |
| + | | 拡張機能付き FUSE ドライバ。 |
||
| − | | [[Wikipedia:Windows NT|Windows NT]] file system |
||
|- |
|- |
||
| [[Wikipedia:ReiserFS|ReiserFS]] |
| [[Wikipedia:ReiserFS|ReiserFS]] |
||
| − | | {{man|8|mkfs.reiserfs}} |
+ | | {{man|8|mkfs.reiserfs|url=https://manpages.debian.org/unstable/reiserfsprogs/mkfs.reiserfs.8.en.html}} |
| − | | {{ |
+ | | {{AUR|reiserfsprogs}} |
| − | | {{ |
+ | | {{No}} |
| − | | |
||
| |
| |
||
| + | | [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eb103a51640ee32ab01c51e13bf8fca211f25f61 Linux 5.18 から非推奨となっており]、[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fb6f20ecb121cef4d7946f834a6ee867c4e21b4a Linux 6.13 で削除されました]。 |
||
|- |
|- |
||
| − | | [[Wikipedia:Universal Disk Format|UDF]] |
+ | | [[Wikipedia:ja:Universal Disk Format|UDF]] |
| {{man|8|mkfs.udf}} |
| {{man|8|mkfs.udf}} |
||
| {{Pkg|udftools}} |
| {{Pkg|udftools}} |
||
| − | | {{ |
+ | | {{Yes}} |
| − | | [https:// |
+ | | [https://docs.kernel.org/filesystems/udf.html udf.html] |
| + | | ディスクイメージや DVD/ブルーレイ用の ISO/IEC 13346 ファイルシステム。 |
||
| − | | |
||
|- |
|- |
||
| [[XFS]] |
| [[XFS]] |
||
| 143行目: | 159行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| |
| |
||
| − | [https:// |
+ | [https://docs.kernel.org/admin-guide/xfs.html xfs.html]<br> |
| − | [https:// |
+ | [https://docs.kernel.org/filesystems/xfs/xfs-delayed-logging-design.html xfs-delayed-logging-design.html]<br> |
| − | [https:// |
+ | [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 縮小不可] |
||
| − | | |
||
|} |
|} |
||
{| class="wikitable sortable" |
{| class="wikitable sortable" |
||
| − | |+ |
+ | |+ 外部 (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:ja:macOS|macOS]] (10.13 およびそれ以降) のファイルシステム。読み取り専用。書き込みサポートは試験的。Fuse バージョンの {{AUR|apfs-fuse-git}} も参照。 |
||
| − | | [[Wikipedia:macOS|macOS]] (10.13 and newer) file system. Read only, experimental. |
||
| − | |- |
||
| − | | [https://wiki.archlinux.org/index.php/Bcachefs Bcachefs] |
||
| − | | {{man|8|bcachefs|url=}} |
||
| − | | {{AUR|linux-bcachefs-git}} |
||
| − | | {{AUR|bcachefs-tools-git}} |
||
| − | | |
||
|- |
|- |
||
| − | | [[Reiser4]] |
+ | | [[Wikipedia:ja: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}} |
||
| 179行目: | 189行目: | ||
| {{AUR|zfs-linux}}, {{AUR|zfs-dkms}} |
| {{AUR|zfs-linux}}, {{AUR|zfs-dkms}} |
||
| {{AUR|zfs-utils}} |
| {{AUR|zfs-utils}} |
||
| − | | [[Wikipedia:OpenZFS|OpenZFS]] |
+ | | [[Wikipedia:OpenZFS|OpenZFS]] 移植 |
|} |
|} |
||
| − | ===ジャーナリング=== |
+ | === ジャーナリング === |
| − | + | ext3/4、HFS+、JFS、NTFS、ReiserFS、XFS ファイルシステムは[[Wikipedia:ja:ジャーナリングファイルシステム|ジャーナリング]]を使用します。ジャーナリングは、変更をファイルシステムにコミットする前にログに記録することで、障害に対する耐性を提供します。システムクラッシュや停電が発生した場合、こうしたファイルシステムはより迅速にオンラインに戻り、データが破損する可能性が低くなります。ログ記録はファイルシステム内の専用領域で行われます。 |
|
| − | + | ext3/4 はデータモードジャーナリングを提供しており、任意でメタデータに加えてデータもログに記録できます。データモードジャーナリングは書き込み操作を2回行うため (まずジャーナルに、次にディスクに)、速度面でペナルティがあります。そのため、データモードジャーナリングはデフォルトで有効化されていません。ファイルシステムの種類と機能を選ぶ際には、システム速度とデータ安全性とのトレードオフについて検討するべきでしょう。 |
|
| + | 同様に、Reiser4 は設定可能な[https://reiser4.wiki.kernel.org/index.php/Reiser4_transaction_models 「トランザクションモデル」]を提供しています。[https://reiser4.wiki.kernel.org/index.php/V4#Wandering_Logs wandering logs] と呼ばれる特殊なモデルは、ディスクへ2回書き込む必要がありません。'''write-anywhere''' モデルは、純粋なコピーオンライト方式です。'''hybrid''' と呼ばれる混合方式は、ヒューリスティックにこれら2つのモデルを切り替えます。 |
||
| − | {{Note|Reiser4 はメタデータとインラインチェックサムを特徴とする '''node41'' プラグインを使用して ext4 のデフォルトのジャーナリング動作とほぼ同等のもの(メタデータのみ)を提供し、オプションでマウント時にどのトランザクションモデルが選ばれるかに応じて提供する wandering logs 動作と組み合わせています。}} |
||
| + | Reiser4、Btrfs、Bcachefs、ZFS といったコピーオンライト (別名 write-anywhere) ベースのファイルシステムは、設計上完全にアトミックに動作し、メタデータとインラインデータの両方に対してチェックサムを提供します (操作が不完全に行われることはありません。正常に動作しているハードウェア上では、不完全な操作によってデータが破損することはありません)。なので、これらのファイルシステムは、設計上、他のファイルシステムよりもデータ損失が発生しにくく、メタデータを保護するために従来のジャーナルを使用する必要がありません (メタデータが in-place に更新されることはないからです)。Btrfs は依然としてジャーナルのようなログツリーを使用していますが、fdatasync/fsync の高速化のために使用しているにすぎません。 |
||
| − | 他のファイルシステムは ordered-mode のジャーナリングを提供し、メタデータのみをログに記録します。全てのジャーナリングはクラッシュの後にファイルシステムを有効な状態に戻しますが、データモード・ジャーナリングは破損やデータ損失に対して最大の防御を提供します。しかし、データモード・ジャーナリングはジャーナルとディスクの2つの書き込みを行うため、システムのパフォーマンスは低下します(Reiser4 は "wandering logs" 機能でこれを回避しています。)システムスピードとデータの安全性のトレードオフはファイルシステムタイプを選択する際に考慮されるべきです。Reiser4 は設計上、完全な atomicity で動作し、メタデータとインラインデータの両方にチェックサムを提供する唯一のファイルシステムです(操作が半分発生していてもデータが破損または破壊されない)、したがって設計上、他のファイルシステム [[Btrfs]] などに比べてデータ損失の可能性は非常に低くなっています。 |
||
| + | FAT、exFAT、ext2、HFS はジャーナリングもアトミック性も提供していません。これらのファイルシステムは、一時的な使用あるいは古いシステムのためのものであり、信頼できるストレージが必要である場合に使用することは推奨されません。 |
||
| − | Reiser4、Btrfs、ZFS などのコピーオンライト(write-anywhere としても知られている)に基づくファイルシステムは、その場で更新されることがないため、メタデータを保護するために従来のジャーナルを使う必要はない。Btrfs はまだジャーナル的なログツリーを持っていますが、それは fdatasync/fsync を高速化するためだけに使われます。 |
||
| − | |||
| − | * [[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 などがあります。 |
||
=== FUSE ベースのファイルシステム === |
=== FUSE ベースのファイルシステム === |
||
| + | [[FUSE]] を見てください。 |
||
| − | [[Wikipedia:ja:Filesystem in Userspace|Filesystem in Userspace]] (FUSE) は通常ユーザーがカーネルコードを修正することなく独自のファイルシステムを作成できる、Unix ライクなオペレーティングシステムの仕組みです。''ユーザー空間''でファイルシステムのコードを実行することにより、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}}}} |
||
| − | |||
| − | * {{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|Unionfs|Unionfs は Linux, FreeBSD, NetBSD 用のファイルシステムサービスで,他のファイルシステムの共用マウントを実装しています。|http://unionfs.filesystems.org/}} |
||
| − | |||
| − | * {{App|unionfs-fuse|ユーザースペース Unionfs の実装。|https://github.com/rpodgorny/unionfs-fuse|{{Pkg|unionfs-fuse}}}} |
||
| − | |||
| − | === Read-only ファイルシステム === |
||
| + | * {{App|DwarFS|DwarFS は、Linux と Windows 用の高速で高圧縮率の読み取り専用ファイルシステムです。DwarFS は、多かれ少なかれ SquashFS と同じ機能をサポートしていますが、より圧縮に優れており、ハッシュアルゴリズムをカスタム可能です。|https://github.com/mhx/dwarfs|{{Aur|dwarfs}}}} |
||
| − | * {{App|[[Wikipedia:EROFS|EROFS]]|Enhanced Read-Only File System は、パフォーマンスの向上とストレージ容量の圧縮を目的とした軽量の読み取り専用ファイルシステムです。|https://www.kernel.org/doc/html/latest/filesystems/erofs.html|{{AUR|erofs-utils}}}} |
||
| − | * {{App|[[Wikipedia: |
+ | * {{App|[[Wikipedia:ja:EROFS|EROFS]]|Enhanced Read-Only File System は、パフォーマンスの向上とストレージ容量の圧縮を目的とした軽量の読み取り専用ファイルシステムです。|https://erofs.docs.kernel.org/|{{Pkg|erofs-utils}}}} |
| + | * {{App|[[Wikipedia:ja:SquashFS|SquashFS]]|SquashFS は、読み取り専用の圧縮ファイルシステムです。SquashFS はファイル、inodes、ディレクトリーを圧縮し、さらに大きな圧縮のために最大 1 MiB のブロック・サイズをサポートします。|https://github.com/plougher/squashfs-tools|{{Pkg|squashfs-tools}}}} |
||
| − | === クラスタ化ファイルシステム |
+ | === クラスタ化ファイルシステム === |
| − | * {{App|[[ |
+ | * {{App|[[BeeGFS]]|高パフォーマンスコンピューティングのために開発・最適化された並列ファイルシステム。|https://www.beegfs.io/c/|{{AUR|beegfs-client}}}} |
| + | * {{App|[[Ceph]]|優れたパフォーマンス、信頼性、拡張性を実現するように設計された、統合された分散ストレージシステム。|https://ceph.com/|{{AUR|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| |
+ | * {{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| |
+ | * {{App|OpenAFS|AFS 分散ファイルシステムのオープンソース実装。|https://www.openafs.org|{{AUR|openafs}}}} |
| − | * {{App|[[Wikipedia: OrangeFS|OrangeFS]]|OrangeFS は、マルチサーバ・ベースのディスク・ストレージに透過的に並列アクセスするために設計されたスケール・アウト・ネットワーク・ファイル・システムです。並列および分散アプリケーション向けに最適化された MPI-IO のサポート。Linux クライアントだけでなく、Windows、Hadoop、WebDAV 用の並列ストレージの使用を簡素化します。POSIX 互換です。バージョン4.6以降のLinux カーネルに含まれます。| |
+ | * {{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 ファイルシステムは、フリーでオープン、安全、分散、耐障害性、ピアツーピア分散データストアおよび分散ファイルシステムです。 |
||
| − | |https://tahoe-lafs.org/|{{AUR|tahoe-lafs}}}} |
||
=== 共有ディスクファイルシステム === |
=== 共有ディスクファイルシステム === |
||
| 267行目: | 238行目: | ||
* {{App|[[Wikipedia:GFS2|GFS2]]|GFS2 では、クラスタのすべてのメンバーが同じ共有ブロック・ストレージに直接同時にアクセスできます。|https://pagure.io/gfs2-utils|{{AUR|gfs2-utils}}}} |
* {{App|[[Wikipedia:GFS2|GFS2]]|GFS2 では、クラスタのすべてのメンバーが同じ共有ブロック・ストレージに直接同時にアクセスできます。|https://pagure.io/gfs2-utils|{{AUR|gfs2-utils}}}} |
||
* {{App|[[Wikipedia:OCFS2|OCFS2]]|Oracle Cluster File System (バージョン2) は、Oracle Corporation によって開発され、GNU General Public License の下でリリースされる共有ディスク・ファイル・システムです。|https://oss.oracle.com/projects/ocfs2/|{{AUR|ocfs2-tools}}}} |
* {{App|[[Wikipedia:OCFS2|OCFS2]]|Oracle Cluster File System (バージョン2) は、Oracle Corporation によって開発され、GNU General Public License の下でリリースされる共有ディスク・ファイル・システムです。|https://oss.oracle.com/projects/ocfs2/|{{AUR|ocfs2-tools}}}} |
||
| − | * {{App|[[Wikipedia:VMware_VMFS|VMware VMFS]]|VMware の VMFS (Virtual Machine File System) は、同社の主力サーバ仮想化スイートである vSphere で使用されているファイルシステムです。|https:// |
+ | * {{App|[[Wikipedia:VMware_VMFS|VMware VMFS]]|VMware の VMFS (Virtual Machine File System) は、同社の主力サーバ仮想化スイートである vSphere で使用されているファイルシステムです。|https://core.vmware.com/resource/vmware-vsphere-vmfs|{{AUR|vmfs-tools}}}} |
== 既存のファイルシステムを特定する == |
== 既存のファイルシステムを特定する == |
||
| − | 既存のファイルシステムを特定する |
+ | [[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}} 列に表示されます。 |
||
| − | == ファイルシステムを作成 |
+ | == ファイルシステムを作成する == |
| − | ファイルシステムは通常、 |
+ | ファイルシステムは通常、[[LVM]]、[[RAID]]、[[dm-crypt]] などの論理コンテナ内、[[パーティション]]、通常のファイル ([[Wikipedia:Loop device]] を参照) に作成されます。このセクションでは、パーティションの場合について説明します。 |
| − | {{Note|1=ファイルシステムは |
+ | {{Note|1=ファイルシステムはディスクに直接書き込むことができます (そのようなディスクは ''スーパーフロッピー'' または [[パーティショニング#パーティションレスディスク|パーティションレスディスク]] と呼ばれます)。この方法を取るといくつかの制限が発生します (特に、そのようなドライブから[[Arch ブートプロセス|起動する]]場合)。例については、[[Btrfs#パーティションレス Btrfs ディスク]] を参照してください。}} |
{{Warning| |
{{Warning| |
||
| − | * 新しいファイルシステムを作成した後、このパーティションに以前 |
+ | * 新しいファイルシステムを作成した後、このパーティション上に以前保存されていたデータを復元できる可能性はほとんどありません。'''保持したいデータのバックアップを作成してください'''。 |
| − | *特定のパーティションの目的により、ファイルシステムの選択が制限される場合があります。たとえば、 [[EFI システムパーティション]] には [[FAT32]] ファイルシステムが含まれている必要があり、 {{ic|/boot}} ディレクトリを含むファイルシステムは [[ブートローダー]] によってサポートされている必要があります。 |
+ | * 特定のパーティションの目的により、ファイルシステムの選択が制限される場合があります。たとえば、 [[EFI システムパーティション]] には [[FAT32]] ファイルシステムが含まれている必要があり、 {{ic|/boot}} ディレクトリを含むファイルシステムは [[ブートローダー]] によってサポートされている必要があります。 |
}} |
}} |
||
| − | 続行する前に、 |
+ | 続行する前に、ファイルシステムを作成する[[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}} にマウントされていますが、マウントを解除する必要があります: |
| − | #umount / |
+ | # umount /dev/sda2 |
| − | マウントされたばかりのファイルシステムを見つける |
+ | マウントされたばかりのファイルシステムを見つける方法は、[[#マウントしたファイルシステムの一覧表示]] を参照してください。 |
| − | 新しいファイルシステムを作成するには、 |
+ | 新しいファイルシステムを作成するには、{{man|8|mkfs}} を使用します。正確なタイプ、および特定のファイルシステムにインストールする可能性のあるユーザースペースユーティリティについては、 [[#ファイルシステムのタイプ]] を参照してください。 |
| − | たとえば、 {{ic|/dev/sda1}} でタイプ [[ext4]] (Linuxデータパーティションに |
+ | たとえば、 {{ic|/dev/sda1}} でタイプ [[ext4]] (Linux データパーティションで一般的に使われています) の新しいファイルシステムを作成するには、次のコマンドを実行します: |
| − | #mkfs.ext4 / |
+ | # mkfs.ext4 /dev/sda1 |
{{Tip| |
{{Tip| |
||
| − | * ''mkfs.ext4'' の {{ic|-L}} フラグを使用して、[[永続的なブロックデバイスの命名#by-label|ファイルシステムラベル]] を指定 |
+ | * ''mkfs.ext4'' の {{ic|-L}} フラグを使用して、[[永続的なブロックデバイスの命名#by-label|ファイルシステムラベル]] を指定できます。''e2label'' を使用して、既存のファイルシステムのラベルを変更できます。 |
| − | *ファイルシステムは、特定の制限付きで、作成後に「サイズ変更」 |
+ | * ファイルシステムは、特定の制限付きで、作成後に「サイズ変更」できます。たとえば、 [[XFS]] ファイルシステムのサイズを増やすことはできますが、減らすことはできません。詳細については、 [[Wikipedia:ファイルシステムの比較#サイズ変更機能]] およびそれぞれのファイルシステムのドキュメントを参照してください。}} |
| − | これで、新しいファイルシステムを |
+ | これで、新しいファイルシステムを任意のディレクトリにマウントできます。 |
== ファイルシステムのマウント == |
== ファイルシステムのマウント == |
||
| − | デバイス |
+ | デバイス(パーティションなど)上にあるファイルシステムを手動でディレクトリにマウントするには、{{man|8|mount}} を使用します。この例では {{ic|/dev/sda1}} を {{ic|/mnt}} にマウントしています。 |
# mount /dev/sda1 /mnt |
# mount /dev/sda1 /mnt |
||
| 338行目: | 309行目: | ||
# mount /mnt |
# mount /mnt |
||
| − | ''mount'' にはいくつかのオプションがあり、その多くは指定されたファイルシステムに依存す |
+ | ''mount'' にはいくつかのオプションがあり、その多くは指定されたファイルシステムに依存します。 |
| − | オプションは以下の方法で変更することができます |
+ | オプションは以下の方法で変更することができます: |
| + | |||
| − | * コマンドラインで ''mount'' と共にフラグを使用する。 |
||
| + | * コマンドラインで ''mount'' と共にフラグを使用する |
||
| − | * [[fstab]] を編集する。 |
||
| − | * [[ |
+ | * [[fstab]] を編集する |
| − | * [[ |
+ | * [[udev]] ルールを作成する |
| + | * [[Arch build system|カーネルを自分でコンパイルする]] |
||
| − | * または、ファイルシステム固有のマウントスクリプト ({{ic|/usr/bin/mount.*}} にあります) を使用します。 |
||
| + | * ファイルシステム固有のマウントスクリプト ({{ic|/usr/bin/mount.*}} にあります) を使用する |
||
より詳しい情報は、これらの関連記事と、興味のあるファイルシステムの記事をご覧下さい。 |
より詳しい情報は、これらの関連記事と、興味のあるファイルシステムの記事をご覧下さい。 |
||
| + | {{Tip| |
||
| − | {{Tip|ファイルシステムは ''mount'' の代わりに ''systemd-mount'' でもマウントできます。マウントポイントが指定されていない場合、ファイルシステムは {{ic|/run/media/system/''device_identifier''/}} にマウントされます。これにより、ファイルシステムをどこにマウントするかを決めることなく、簡単にマウントすることができます。使い方や詳細は {{man|1|systemd-mount}} を参照してください。}} |
||
| + | * ファイルシステムは ''mount'' の代わりに ''systemd-mount'' でもマウントできます。マウントポイントが指定されていない場合、ファイルシステムは {{ic|/run/media/system/''device_identifier''/}} にマウントされます。これにより、ファイルシステムをどこにマウントするかを決めることなく、簡単にマウントすることができます。使い方や詳細は {{man|1|systemd-mount}} を参照してください。 |
||
| + | * 一般ユーザーとしてファイルシステムをマウントする方法については、[[udisks#使用方法]] を見てください。これにより、root 権限や完全なグラフィック環境、udisks を使用するファイルマネージャを用いずにファイルシステムをマウントできるようになります。 |
||
| + | }} |
||
=== マウントしたファイルシステムの一覧表示 === |
=== マウントしたファイルシステムの一覧表示 === |
||
| 356行目: | 331行目: | ||
$ findmnt |
$ findmnt |
||
| − | ''findmnt'' は様々な引数を取り、出力をフィルタリングしたり、追加情報を表示したりすることができます。例えば、デバイスやマウントポイントを引数として取り、 |
+ | ''findmnt'' は様々な引数を取り、出力をフィルタリングしたり、追加情報を表示したりすることができます。例えば、デバイスやマウントポイントを引数として取り、指定されたものについての情報のみを表示させることができます: |
$ findmnt /dev/sda1 |
$ findmnt /dev/sda1 |
||
| 372行目: | 347行目: | ||
# umount /mnt |
# umount /mnt |
||
| + | == トラブルシューティング == |
||
| − | == デバイスのフォーマット == |
||
| − | {{Warning|フォーマットはデバイスの全てのデータを消去します。保持したいデータはバックアップを取って下さい。}} |
||
| + | === "linux Structure needs cleaning" === |
||
| − | ===要件=== |
||
| − | はじめる前に、Linux がつけたデバイスの名前を知る必要があります。ハードドライブや USB スティックは {{ic|/dev/sd''x''}} のように表示され、"x" は小文字の英字で、パーティションは {{ic|/dev/sd''xY''}} のように表示され、"Y" は数字です。 |
||
| + | ファイルシステムを[[#ファイルシステムのアンマウント|アンマウント]]し、問題のあるボリュームで [[fsck]] を実行してください。 |
||
| − | フォーマットしたいデバイスがマウントされているなら、次のコマンドの ''MOUNTPOINT'' カラムに表示されます: |
||
| − | |||
| − | $ lsblk |
||
| − | |||
| − | デバイスがマウントされていない時は: |
||
| − | |||
| − | # mount /dev/sd''xY'' /some/directory |
||
| − | |||
| − | ''umount'' をマウントしたディレクトリに使うことでアンマウントできます: |
||
| − | |||
| − | # umount /some/directory |
||
| − | |||
| − | {{note|新しいファイルシステムを作ったりフォーマットするにはデバイスがアンマウントされていなければなりません。}} |
||
| − | |||
| − | パーティションテーブルを書き換えて下さい。MBR には '''fdisk''' が、GPT には '''gdisk''' が使えます。[[#GUI ツール|GUI ツール]]を使うことも可能です。詳しくは[[パーティショニング]]を見て下さい。 |
||
| − | |||
| − | === コンソールツール === |
||
| − | |||
| − | ファイルシステムを作るには {{ic|mkfs}} を使います: |
||
| − | |||
| − | # mkfs -t ext4 /dev/''<partition>'' |
||
| − | |||
| − | {{ic|mkfs}} は様々な {{ic|mkfs.''fstype''}} ツールを使うための統合フロントエンドです。 |
||
| − | |||
| − | swap ファイルシステムを作成するには '''mkswap''' を使います: |
||
| − | |||
| − | # mkswap /dev/''<partition>'' |
||
| − | |||
| − | === GUI ツール === |
||
| − | パーティション管理のための GUI ツール: |
||
| − | * {{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}}}} |
||
| − | * {{App|KDE Partition Manager|ディスク・パーティション・ファイルシステムの管理ができる KDE のユーティリティ。|https://sourceforge.net/projects/partitionman/|{{Pkg|partitionmanager}}}} |
||
== 参照 == |
== 参照 == |
||
| 416行目: | 357行目: | ||
* {{man|5|filesystems}} |
* {{man|5|filesystems}} |
||
* {{man|1|systemd-mount}} |
* {{man|1|systemd-mount}} |
||
| − | * [https:// |
+ | * [https://docs.kernel.org/filesystems/index.html Linux によってサポートされているファイルシステムのドキュメント] |
* [[Wikipedia:File systems]] |
* [[Wikipedia:File systems]] |
||
* [[Wikipedia:Mount (Unix)]] |
* [[Wikipedia:Mount (Unix)]] |
||
| + | |||
| + | {{TranslationStatus|File systems|2025-07-04|839407}} |
||
2025年7月4日 (金) 23:50時点における最新版
関連記事
Wikipedia より:
- ファイルシステムは、コンピュータのリソースを操作するための、オペレーティングシステム (OS) が持つ機能の一つ。ファイルとは、主に補助記憶装置に格納されたデータを指すが、デバイスやプロセス、カーネル内の情報といったものもファイルとして提供するファイルシステムもある。
- より正確に定義すれば、ファイルシステムは抽象データ型の集まりであり、ストレージ、階層構造、データの操作/アクセス/検索のために実装されたものである。ファイルシステムを特殊用途のデータベース管理システム (DBMS) と見なせるかどうかは議論があるが、ファイルシステムとデータベース管理システムには多くの共通点がある。
個々のドライブパーティションに、多くのファイルシステムのなかから1つを設定することができます。ファイルシステムはそれぞれにメリット、デメリット、特徴があります。ここではサポートされているファイルシステムの概要を記述します。より多くの情報を見るには Wikipedia へのリンクを辿って下さい。
目次
ファイルシステムのタイプ
一般的な概要については filesystems(5) を、詳細な機能の比較については Wikipedia:Comparison of file systems を参照してください。カーネルによってすでにロードされている、あるいは組み込まれているファイルシステムは、/proc/filesystems にリストアップされています。一方、インストールされているモジュールは ls /lib/modules/$(uname -r)/kernel/fs ですべて見ることができます。
| ファイルシステム | 作成コマンド | カーネルパッチセット | ユーザースペースユーティリティ | 備考 |
|---|---|---|---|---|
| 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 移植 |
ジャーナリング
ext3/4、HFS+、JFS、NTFS、ReiserFS、XFS ファイルシステムはジャーナリングを使用します。ジャーナリングは、変更をファイルシステムにコミットする前にログに記録することで、障害に対する耐性を提供します。システムクラッシュや停電が発生した場合、こうしたファイルシステムはより迅速にオンラインに戻り、データが破損する可能性が低くなります。ログ記録はファイルシステム内の専用領域で行われます。
ext3/4 はデータモードジャーナリングを提供しており、任意でメタデータに加えてデータもログに記録できます。データモードジャーナリングは書き込み操作を2回行うため (まずジャーナルに、次にディスクに)、速度面でペナルティがあります。そのため、データモードジャーナリングはデフォルトで有効化されていません。ファイルシステムの種類と機能を選ぶ際には、システム速度とデータ安全性とのトレードオフについて検討するべきでしょう。
同様に、Reiser4 は設定可能な「トランザクションモデル」を提供しています。wandering logs と呼ばれる特殊なモデルは、ディスクへ2回書き込む必要がありません。write-anywhere モデルは、純粋なコピーオンライト方式です。hybrid と呼ばれる混合方式は、ヒューリスティックにこれら2つのモデルを切り替えます。
Reiser4、Btrfs、Bcachefs、ZFS といったコピーオンライト (別名 write-anywhere) ベースのファイルシステムは、設計上完全にアトミックに動作し、メタデータとインラインデータの両方に対してチェックサムを提供します (操作が不完全に行われることはありません。正常に動作しているハードウェア上では、不完全な操作によってデータが破損することはありません)。なので、これらのファイルシステムは、設計上、他のファイルシステムよりもデータ損失が発生しにくく、メタデータを保護するために従来のジャーナルを使用する必要がありません (メタデータが in-place に更新されることはないからです)。Btrfs は依然としてジャーナルのようなログツリーを使用していますが、fdatasync/fsync の高速化のために使用しているにすぎません。
FAT、exFAT、ext2、HFS はジャーナリングもアトミック性も提供していません。これらのファイルシステムは、一時的な使用あるいは古いシステムのためのものであり、信頼できるストレージが必要である場合に使用することは推奨されません。
FUSE ベースのファイルシステム
FUSE を見てください。
スタック可能なファイルシステム
- eCryptfs — Enterprise Cryptographic Filesystem は Linux 用のディスク暗号化ソフトウェアのパッケージです。これは POSIX 準拠のファイルシステムレベルの暗号化レイヤとして実装され、オペレーティングシステムレベルで GnuPG と同様の機能を提供することを目的としています。
- mergerfs — FUSE ベースの union ファイルシステムです。
- mhddfs — FUSE ベースの union ファイルシステムである Multi-HDD FUSE ファイルシステム。
- http://mhddfs.uvw.ru || mhddfsAUR
- overlayfs — OverlayFS は Linux 用のファイルシステムサービスで、他のファイルシステムの union マウントを実装しています。
- unionfs-fuse — ユーザースペース Unionfs の実装。
読み取り専用のファイルシステム
- DwarFS — DwarFS は、Linux と Windows 用の高速で高圧縮率の読み取り専用ファイルシステムです。DwarFS は、多かれ少なかれ SquashFS と同じ機能をサポートしていますが、より圧縮に優れており、ハッシュアルゴリズムをカスタム可能です。
- EROFS — Enhanced Read-Only File System は、パフォーマンスの向上とストレージ容量の圧縮を目的とした軽量の読み取り専用ファイルシステムです。
- SquashFS — SquashFS は、読み取り専用の圧縮ファイルシステムです。SquashFS はファイル、inodes、ディレクトリーを圧縮し、さらに大きな圧縮のために最大 1 MiB のブロック・サイズをサポートします。
クラスタ化ファイルシステム
- BeeGFS — 高パフォーマンスコンピューティングのために開発・最適化された並列ファイルシステム。
- Ceph — 優れたパフォーマンス、信頼性、拡張性を実現するように設計された、統合された分散ストレージシステム。
- https://ceph.com/ || cephAUR
- GlusterFS — 数ペタバイトまで拡張可能なクラスタファイルシステム。
- IPFS — Web を高速化、安全化、およびオープン化するためのピアツーピアハイパーメディアプロトコル。IPFS は HTTP に取って代わり、私たち全員のためにより良いウェブを構築することを目指しています。ブロックを使用してファイルの一部を保存し、各ネットワーク・ノードは関心のあるコンテンツのみを保存し、重複除外、分散、拡張性の高いシステムをユーザーのみに制限 (現在はアルファ版)
- MinIO — MinIO は高パフォーマンスな S3 互換のオブジェクトストレージを提供します。
- MooseFS — MooseFS は、耐障害性で可用性が高い、高性能なスケールアウトネットワーク分散ファイルシステムです。
- OpenAFS — AFS 分散ファイルシステムのオープンソース実装。
- OrangeFS — OrangeFS は、マルチサーバ・ベースのディスク・ストレージに透過的に並列アクセスするために設計されたスケール・アウト・ネットワーク・ファイル・システムです。並列および分散アプリケーション向けに最適化された MPI-IO のサポート。Linux クライアントだけでなく、Windows、Hadoop、WebDAV 用の並列ストレージの使用を簡素化します。POSIX 互換です。バージョン4.6以降のLinux カーネルに含まれます。
- https://www.orangefs.org/ || パッケージが存在しないか AUR で検索
- Sheepdog — ボリュームおよびコンテナサービス用の分散オブジェクトストレージシステムで、ディスクとノードをインテリジェントに管理します。
共有ディスクファイルシステム
- GFS2 — GFS2 では、クラスタのすべてのメンバーが同じ共有ブロック・ストレージに直接同時にアクセスできます。
- OCFS2 — Oracle Cluster File System (バージョン2) は、Oracle Corporation によって開発され、GNU General Public License の下でリリースされる共有ディスク・ファイル・システムです。
- VMware VMFS — VMware の VMFS (Virtual Machine File System) は、同社の主力サーバ仮想化スイートである vSphere で使用されているファイルシステムです。
既存のファイルシステムを特定する
lsblk を使って、既存のファイルシステムを特定することができます:
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sdb └─sdb1 vfat Transcend 4A3C-A9E9
存在する場合、既存のファイルシステムが FSTYPE 列に表示されます。mount されている場合は、MOUNTPOINT 列に表示されます。
ファイルシステムを作成する
ファイルシステムは通常、LVM、RAID、dm-crypt などの論理コンテナ内、パーティション、通常のファイル (Wikipedia:Loop device を参照) に作成されます。このセクションでは、パーティションの場合について説明します。
続行する前に、ファイルシステムを作成するデバイスを特定し、それがマウントされているかどうかを確認してください。例えば:
$ 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
これで、新しいファイルシステムを任意のディレクトリにマウントできます。
ファイルシステムのマウント
デバイス(パーティションなど)上にあるファイルシステムを手動でディレクトリにマウントするには、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.*にあります) を使用する
より詳しい情報は、これらの関連記事と、興味のあるファイルシステムの記事をご覧下さい。
マウントしたファイルシステムの一覧表示
マウントされている全てのファイルシステムを一覧表示するには 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 を実行してください。