Linux
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
(我的硬碟)顯示 DISC_GRAN 和 DISC_MAX 的非零值,表明 TRIM 已啟用。這是為什麼?
顯然,因為交換不被視為普通文件系統,所以
fstrim
手動執行時不會被修剪。但是,當底層設備支持該操作時,Linux核心似乎會在自動掛載時對交換進行修整。這在Fedora 項目文件中被引用:Linux 交換程式碼將向啟用 TRIM 的設備發出 TRIM 命令,並且沒有選項可以控制此行為。
也可以在此處的核心程式碼中看到它。所以我不確定它如何與加密互動,但我假設交換修剪不需要任何額外的配置(例如 in
fstab
),只要/etc/crypttab
並且lvm.conf
按照上面的問題進行設置,它可以在 LUKS 和 LVM 級別上進行修剪。