我已经设置了一个加密交换分区如下本指南。我的/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 级别上进行修剪。