Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
F2FSのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
F2FS
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:ファイルシステム]] [[en:F2FS]] [[ko:F2FS]] [[zh-hans:F2FS]] {{Related articles start}} {{Related|ファイルシステム}} {{Related articles end}} [[Wikipedia:ja:F2FS|F2FS]] (Flash-Friendly File System) はフラッシュ変換レイヤ (FTL) を備えた NAND ベースフラッシュメモリに最適化されたファイルシステムです。JFFS や UBIFS と異なり、書き込み分散を処理するのに FTL に依存しています。F2FS はカーネル 3.8 以上でサポートされています。 FTL は SCSI/SATA/PCIe/NVMe インターフェイスがある全てのフラッシュメモリに存在します [http://accelazh.github.io/ssd/A-Summary-On-SSD-And-FTL]。スマートメディアカードやベアメタルな NAND フラッシュには存在しません [http://www.linux-mtd.infradead.org/archive/tech/nand.html]。 {{Warning|F2FS パーティションに含まれるデータは、実行中のマシンのカーネルのバージョンがパーティションの作成に使用されたカーネルのバージョンよりも ''古い'' 場合、使用できなくなる可能性があります。例えば、 F2FS パーティションが {{pkg|linux}} で提供されるメインラインカーネル上に作成されているにもかかわらず、システムが {{pkg|linux-lts}} で提供される古いシリーズのカーネルにダウングレードする必要がある場合、この問題が出てきます。 {{Bug|69363}} を参照してください}} == 既知の問題 == === fsck が失敗する=== F2FS は fsck 実行に問題があり、突然の電源喪失の場合にデータ損失につながる可能性があります [https://www.usenix.org/system/files/atc19-jaffer.pdf][https://web.archive.org/web/20200925120546/https://archived.forum.manjaro.org/t/record-fsync-data-failed-on-f2fs-file-system-how-to-fix-foregt-the-help-i-reinstalled-its-just-easier/121051] 電力損失が頻繁に発生する場合は、別の [[ファイルシステム]] を検討してください。 === fsck の長時間実行による起動の遅延 === ブート間でカーネルバージョンが変更された場合、 ''fsck.f2fs'' ユーティリティは完全なファイルシステムチェックを実行しますが、完了するまでに時間がかかります [https://bbs.archlinux.org/viewtopic.php?id=245702] これは、最近のコミット [https://www.mail-archive.com/linux-f2fs-devel@lists.sourceforge.net/msg17224.html] のおかげで、将来的に軽減される可能性があります。 === GRUB のサポート === GRUB はバージョン 2.0.4 から F2FS をサポートしていますが、{{ic|extra_attr}} フラグを有効にして作成した F2FS パーティションからブートファイルを正しく読み込むことができません (詳細は [[GRUB#サポートのないファイルシステム]] を参照してください。) === Cannot set file attributes for '/var/log/journal' === 以下のエラーが発生した場合: Cannot set file attributes for '/var/log/journal', maybe due to incompatibility in specified attributes, previous=0x10001000, current=0x10001000, expected=0x10801000, ignoring. F2FS がサポートしていないファイルシステムの機能を [[systemd-tmpfiles]] が使おうとしているためです。 == F2FS ファイルシステムの作成 == この記事は、デバイスに [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 パーティション] がすでにセットアップされていることを前提としています。 {{Pkg|f2fs-tools}} を [[インストール]] し {{ic|mkfs.f2fs}} を使用して、{{ic| ''/dev/sdxY''}} と呼ばれるターゲットパーティションをフォーマットします。 # mkfs.f2fs -l mylabel -O extra_attr,inode_checksum,sb_checksum ''/dev/sdxY'' {{Note|上記の例は、 {{ic|f2fs.fsck}} が特定の種類のファイルシステムの破損を検出して修正するのに役立つ最小限の推奨オプションセットです。使用可能なすべてのオプションについては、{{man|8|mkfs.f2fs}} を参照してください。}} === 圧縮 === {{note|インライン圧縮を行う他のファイルシステムとは異なり、f2fs 圧縮はデフォルトで追加のフリースペースを公開せず、代わりに圧縮が有効かどうかに関わらず同じ数のブロックを確保します。主な目的はフラッシュの寿命を延ばすために書き込みを減らすことであり、 潜在的には [https://lz4.github.io/lz4/ 性能が少し向上する] ことである。カーネルドキュメントの [https://www.kernel.org/doc/html/latest/filesystems/f2fs.html#compression-implementation Compression Implementation] を参照してください。{{ic|F2FS_IOC_RELEASE_COMPRESS_BLOCKS}} はファイルごとに未使用領域を公開するために使うことができますが、その過程でファイルが不変になってしまいます。}} 圧縮を使用するには、 {{ic|compression}} オプションを含めます。例: # mkfs.f2fs -l mylabel -O extra_attr,inode_checksum,sb_checksum,'''compression''' ''/dev/sdxY'' ファイルシステムをマウントするときは、 {{ic|<nowiki>compress_algorithm=(lzo|lz4|zstd|lzo-rle)</nowiki>}} を指定します。 {{ic|<nowiki>compress_extension=txt</nowiki>}} を使用すると、デフォルトですべての txt ファイルが圧縮されます。 F2FS にファイルまたはディレクトリを圧縮するように指示するには、次を使用します。 $ chattr -R +c [フォルダ] === ファイルベースの暗号化サポート === Linux 4.2以降、 F2FS はファイル暗号化をネイティブにサポートしています。暗号化はディレクトリレベルで適用され、ディレクトリごとに異なる暗号化キーを使用できます。これは、ブロックデバイスレベルの暗号化である [[dm-crypt]] と、スタック暗号化ファイルシステムである [[eCryptfs]] の両方とは異なります。 F2FS のネイティブ暗号化サポートを使用するには、 [[fscrypt]] の記事を参照してください。次のファイルシステムを作成します # mkfs.f2fs -l mylabel -O extra_attr,inode_checksum,sb_checksum,'''encrypt''' ''/dev/sdxY'' または、後で {{ic|fsck.f2fs -O encrypt /dev/sdxY}} を使用して暗号化機能を追加します。 == F2FS ファイルシステムのマウント == ファイルシステムは、手動または他のメカニズムを介してマウントできます。 # mount /dev/sdxY /mnt/foo === 推奨のマウントオプション === F2FS はフラッシュデバイスで使用することを想定しているため、圧縮を行うのがよいでしょう。{{ic|mkfs.f2fs}} の時点で有効にしておく必要があります。 いくつかのマウントオプションを使用することで、少し改善することができます。 # mount -o compress_algorithm=zstd:6,compress_chksum,atgc,gc_merge,lazytime /dev/sd''xY'' /mnt/''mountpoint'' * {{ic|1=compress_algorithm=zstd:6}} はレベル6の圧縮に [[w:Zstandard|zstd]] を使用するよう指示します。これにより、かなり優れた圧縮率が得られます。 * {{ic|compress_chksum}} (破損を防ぐため) 圧縮されたブロックをチェックサムで検証するように指示します。 * {{ic|atgc,gc_merge}} より優れたガベージコレクターを有効にし、一部のフォアグラウンドガベージコレクションを非同期にできるようにします。 :{{Note|[[F2FS#一部のオプションで再マウントが不可能|一部のオプションで再マウントが不可能]] を参照して下さい。}} * {{ic|lazytime}} アクセス時間や変更時間を同期的に更新しないようにします。IO性能とフラッシュの耐久性を向上します。 === 廃棄する === デフォルトでは、 F2FS は [https://wiki.archlinux.org/index.php/Solid_state_drive#Continuous_TRIM continuous TRIM] として動作するハイブリッド TRIM モードを使用してマウントされます。この実装では、RW IO 間の長い廃棄遅延を軽減するために、非同期廃棄スレッドが作成されます。候補をメモリーに保持し、スレッドはそれらをアイドル時間 [https://sourceforge.net/p/linux-f2fs/mailman/message/36957687] に発行します。この結果、 [https://wiki.archlinux.org/index.php/Solid_state_drive#Periodic_TRIM periodic TRIM] を必要とするユーザは、暗黙的に {{ic|/etc/fstab}} に {{ic|nodiscard}} マウントオプションを設定するか、手動でマウントする場合は [[mount]] に渡す必要があります。 == チェックと修復 == F2FS ファイルシステムのチェックと修復は、{{pkg|f2fs-tools}} によって提供される {{ic|fsck.f2fs}} を使用して実行します。ファイルシステムをチェックするには、次のコマンドを実行します。 # fsck.f2fs ''/dev/sdxY'' 結果に応じて、不整合を修復するために使用できるスイッチについては、{{man|8|fsck.f2fs}} を参照してください。 例えば: # fsck.f2fs -f ''/dev/sdxY'' == F2FS ファイルシステムの拡大 == ファイルシステムがアンマウントされている状態なら、パーティションを拡大してからファイルシステムをそれに合わせて拡大できます。[https://www.mail-archive.com/linux-f2fs-devel@lists.sourceforge.net/msg04247.html 縮小は現在サポートされていません] まず [[パーティショニング#パーティショニングツール|パーティションツール]] を使ってパーティションのサイズを変更します: 例えば、{{ic|parted}} コンソールで {{ic|print}} コマンドを実行したときのディスクの出力内容が以下のようになっている場合: Number Start End Size File system Name Flag 1 1049kB 106MB 105MB fat32 EFI system partition boot, esp 2 106MB 11,0GB 10,9GB ext4 3 11,0GB 12,3GB 1322MB f2fs 4 31,0GB 31,3GB 261MB ext4 {{ic|f2fs}} パーティションを拡大して4番目のパーティションまでの全ての領域を使い切るには 、{{ic|resizepart 3 31GB}} を実行してから {{ic|exit}} します。それから以下のコマンドでファイルシステムを拡張して新しいパーティションを埋めます: # resize.f2fs /dev/sdxY {{ic|''/dev/sdxY''}} は拡大する F2FS ボリュームに置き換えてください。利用可能なオプションは {{man|8|resize.f2fs}} を参照。 {{Note|GPT を使っている場合、パーティションの GUID ({{ic|/dev/disk/by-partuuid/}} で確認可能) が変わってしまう可能性がありますが、ファイルシステムの UUID ({{ic|/dev/disk/by-uuid/}} で確認可能) は変わりません。}} == トラブルシューティング == === 一部のオプションで再マウントが不可能 === [[fsck#ブート時のチェック]] で触れているように、カーネルはデフォルトでファイルシステムを読み取り専用状態に保ち、{{ic|rw}} [[カーネルパラメータ]] を渡すために明示的に必要です。または、{{ic|systemd-remount-fs.service}} を使用して systemd にファイルシステムを読み書き可能として再マウントさせます。 ファイルシステムを読み取り専用状態から読み取り/書き込み状態に再マウントする場合、{{ic|mount -o remount,... /}} の手順は複数の理由で失敗する可能性があり、ルートファイルシステムを読み取り専用になり、以下のエラーメッセージを表示してシステムが起動できなくなります: Failed to start Remount Root and Kernel File Systems. {{ic|atgc}} オプションが fstab ファイルで指定されているが、カーネルパラメータとして渡されていない場合、F2FS カーネルモジュールは、追加またはクリアされた {{ic|atgc}} オプションによる再マウントを許可しません [https://github.com/systemd/systemd/issues/22982][https://github.com/systemd/systemd/issues/26763]、次のいずれか: * [[カーネルパラメータ]] {{ic|1=rootflags=atgc}} をブートローダー設定に追加します。 * [[カーネルパラメータ]] {{ic|rw}} をブートローダー設定に追加します。 * fstab から {{ic|atgc}} マウントオプションを削除します。 {{Pkg|linux}} 6.2 以降、[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=967eaad1fed5f6335ea97a47d45214744dc57925 チェック] がファイルシステムが読み取り専用の場合、カーネルは {{ic|flush_merge}} を無効にしますが、チェックされるのは再マウント前のファイルシステムの状態です。{{Bug|77596}} で説明されているように、次のいずれか: * [[カーネルパラメータ]] {{ic|rw}} をブート ローダー設定に追加します。 * fstab から {{ic|flush_merge}} マウントオプションを削除します。
このページで使用されているテンプレート:
テンプレート:Bug
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
テンプレート:Warning
(
ソースを閲覧
)
F2FS
に戻る。
検索
検索
F2FSのソースを表示
話題を追加