fstrimはスワップ領域を切り捨てません。

fstrimはスワップ領域を切り捨てません。

次のように暗号化されたスワップパーティションを設定しました。このガイド。私の/etc/crypttab設定は次のとおりです(discardスワップオプションを参照)。

rootfs UUID=<UUID_root> none luks,discard
swap UUID=<UUID_swap> /dev/urandom swap,offset=2048,cipher=aes-xts-plain64,size=512,discard

にもallow_discards=1この項目があります/etc/lvm/lvm.conf。ただし、手動クリーンアップを実行すると、スワップはクリーンアップされません。

#sudo /sbin/fstrim -av
/media/win: 670.4 GiB (719872700416 bytes) trimmed
/boot/efi: 221.8 MiB (232525824 bytes) trimmed
/boot: 291 MiB (305152000 bytes) trimmed
/: 221.7 GiB (237996343296 bytes) trimmed

どうやって剪定をしますか?


関連メモで/media/win剪定をする理由は何ですか?これはLinuxが自動的にマウントするハードドライブ(SSDではない)のNTFSパーティションですが、ハードドライブでTRIMを有効にする必要があるのはなぜですか。実際に印刷すると、lsblk -D/dev/sda(私のHDD)はDISC_GRANとDISC_MAXのゼロ以外の値を表示し、TRIMが有効になっていることを示します。なぜそんなことですか?

答え1

fstrim明らかに、スワップは一般的なファイルシステムとは見なされないため、手動で実行するとクリーンアップされません。ただし、基本デバイスがこの操作をサポートしている場合、Linuxカーネルはスワップ領域が自動的にマウントされたときにスワップ領域をクリーンアップするようです。これはFedoraプロジェクトドキュメント:

LinuxスワップコードはTRIM対応デバイスに対してTRIMコマンドを発行し、この動作を制御するオプションはありません。

カーネルコード自体でも見ることができます。ここ。したがって、暗号化とどのようにやり取りするのかはわかりませんが、スワップクリーンアップには追加の設定(例:)が必要fstabなく、上記の質問/etc/crypttabに従って設定してLUKSレベルとLVMレベルでクリーンアップするだけでよいとします。lvm.conf

関連情報