Linux

fstrim 不修剪交換

  • December 20, 2019

我已經按照本指南設置了一個加密交換分區。我/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 級別上進行修剪。

引用自:https://unix.stackexchange.com/questions/556805