このガイド に従って暗号化されたスワップパーティションを設定しました。私の/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が有効になっていることが示されます。何故ですか?
明らかに、スワップは通常のファイルシステムとは見なされないため、fstrim
を手動で実行してもトリミングされません。しかし、Linuxカーネルは、基盤となるデバイスが操作をサポートしているときに自動的にマウントされると、スワップのトリミングを行うようです。これは Fedoraプロジェクトのドキュメント で参照されています:
LinuxスワップコードはTRIM対応デバイスにTRIMコマンドを発行し、この動作を制御するオプションはありません。
カーネルコード自体でもそれを見ることができます ここ 。したがって、暗号化とどのように相互作用するかはわかりませんが、/etc/crypttab
とlvm.conf
が設定されている限り、スワップトリミングには追加の構成(たとえばfstab
)は必要ないと思います。上記の質問のように、LUKSおよびLVMレベルでのトリミングが可能になります。