「F2FS」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→チェックと修復: 節を追加) |
(→F2FS ファイルシステムの作成: 情報を更新) |
||
13行目: | 13行目: | ||
== F2FS ファイルシステムの作成 == |
== 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'' |
||
− | F2FS ファイルシステムを作成するには {{Pkg|f2fs-tools}} の[[インストール]]が必要です。 |
||
+ | {{Note|上記の例は、 {{ic|f2fs.fsck}} が特定の種類のファイルシステムの破損を検出して修正するのに役立つ最小限の推奨オプションセットです。使用可能なすべてのオプションについては、{{man|8|mkfs.f2fs}} を参照してください。}} |
||
− | ファイルシステムを作成: |
||
+ | === 圧縮 === |
||
− | # mkfs.f2fs -l mylabel ''/dev/sdxY'' |
||
+ | 圧縮を使用するには、 {{ic|compression}} オプションを含めます。例: |
||
− | {{ic|''/dev/sdxY''}} は F2FS でフォーマットしたい対象ボリュームに置き換えてください。利用可能なオプションについては {{man|8|mkfs.f2fs}} を参照。 |
||
+ | # mkfs.f2fs -l mylabel -O extra_attr,inode_checksum,sb_checksum,'''compression''' ''/dev/sdxY'' |
||
− | === Compression === |
||
+ | ファイルシステムをマウントするときは、 {{ic|<nowiki>compress_algorithm=(lzo|lz4|zstd|lzo-rle)</nowiki>}} を指定します。 {{ic|<nowiki>compress_extension=txt</nowiki>}} を使用すると、デフォルトですべての txt ファイルが圧縮されます。 |
||
− | If you want to use compression, you must provide {{ic|extra_attr}} and {{ic|compression}} options at filesystem creation. |
||
− | Example: |
||
+ | F2FS にファイルまたはディレクトリを圧縮するように指示するには、次を使用します。 |
||
− | # mkfs.f2fs -l mylabel -O extra_attr,compression ''/dev/sdxY'' |
||
+ | $ chattr -R +c [フォルダ] |
||
− | When mounting the filesystem, you will have to specify {{ic|<nowiki>compress_algorithm=(lzo|lz4|zstd|lzo-rle)</nowiki>}}. Using {{ic|<nowiki>compress_extension=txt</nowiki>}} will cause all txt files to be compressed by default. |
||
=== ファイルベースの暗号化サポート === |
=== ファイルベースの暗号化サポート === |
||
− | Linux 4.2 |
+ | 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 ファイルシステムのマウント == |
== F2FS ファイルシステムのマウント == |
2021年2月9日 (火) 02:32時点における版
関連記事
F2FS (Flash-Friendly File System) はフラッシュ変換レイヤ (FTL) を備えた NAND ベースフラッシュメモリに最適化されたファイルシステムです。JFFS や UBIFS と異なり、書き込み分散を処理するのに FTL に依存しています。F2FS はカーネル 3.8 以上でサポートされています。
FTL は SCSI/SATA/PCIe/NVMe インターフェイスがある全てのフラッシュメモリに存在します [1]。スマートメディアカードやベアメタルな NAND フラッシュには存在しません [2]。
目次
F2FS ファイルシステムの作成
この記事は、デバイスに パーティション がすでにセットアップされていることを前提としています。 f2fs-tools を インストール し mkfs.f2fs
を使用して、 /dev/sdxY
と呼ばれるターゲットパーティションをフォーマットします。
# mkfs.f2fs -l mylabel -O extra_attr,inode_checksum,sb_checksum /dev/sdxY
圧縮
圧縮を使用するには、 compression
オプションを含めます。例:
# mkfs.f2fs -l mylabel -O extra_attr,inode_checksum,sb_checksum,compression /dev/sdxY
ファイルシステムをマウントするときは、 compress_algorithm=(lzo|lz4|zstd|lzo-rle)
を指定します。 compress_extension=txt
を使用すると、デフォルトですべての 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
または、後で fsck.f2fs -O encrypt /dev/sdxY
を使用して暗号化機能を追加します。
F2FS ファイルシステムのマウント
フォーマットしたファイルシステムは手動でマウントすることができます:
# mount /dev/sdxY /mnt/foo
チェックと修復
f2fs ファイルシステムのチェックと修復は f2fs-tools に含まれている fsck.f2fs
で行います。利用可能なスイッチは fsck.f2fs(8) を見てください。
Implementation of discard
By default, F2FS partitions are mounted using a hybrid TRIM mode which behaves as continuous TRIM. This implementation creates asynchronous discard threads to alleviate long discarding latency among RW IOs. It keeps candidates in memory, and the thread issues them in idle time [3]. As a result of this, users wanting periodic TRIM will need to implicitly set the nodiscard
mount option in /etc/fstab
or pass it to mount if mounting manually.
F2FS ファイルシステムの拡大
ファイルシステムがアンマウントされている状態なら、パーティションを拡大してからファイルシステムをそれに合わせて拡大できます。縮小は現在サポートされていません。
まずパーティションツールを使ってパーティションのサイズを変更します: 例えば、parted
コンソールで 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
f2fs
パーティションを拡大して4番目のパーティションまでの全ての領域を使い切るには 、resizepart 3 31GB
を実行してから exit
します。それから以下のコマンドでファイルシステムを拡張して新しいパーティションを埋めます:
# resize.f2fs /dev/sdxY
/dev/sdxY
は拡大する F2FS ボリュームに置き換えてください。利用可能なオプションは resize.f2fs(8) を参照。
既知の問題
fsck の実行時間が長くて起動が遅い
カーネルのバージョンが変わってから再起動すると fsck.f2fs ユーティリティは完全なファイルシステムチェックを行うため、完了するまで長い時間がかかります [4]。