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按照lvm.conf上面的问题进行设置即可在 LUKS 和 LVM 级别上进行修剪。

相关内容