我已经安装了系统ext4 文件系统在左室厚度(vg 名称encrypted
,称为 root encrypted-root
)上幸运。当我试图奔跑时fstrim /
,我明白了fstrim: /: the discard operation is not supported
。
我的/etc/crypttab
包含
cryptroot UUID=5ddb7e3a-dcbe-442d-85e8-359e944d0717 none luks,discard,lvm=encrypted
/etc/lvm/lvm.conf
包含
issue_discards = 1
/etc/initramfs-tools/conf.d/cryptroot
仅包含
CRYPTROOT=target=encrypted-root,source=/dev/disk/by-uuid/5ddb7e3a-dcbe-442d-85e8-359e944d0717
(我曾经update-initramfs -k all -c
创建过 initramfs)。
/etc/default/grub
包含
GRUB_CMDLINE_LINUX="cryptops=target=encrypted-root,source=/dev/disk/by-uuid/5ddb7e3a-dcbe-442d-85e8-359e944d0717,lvm=encrypted"
我尝试rd.luks.options=discard
在 grub 中手动将 linux 作为参数。我尝试过实用程序refresh
选项cryptsetup
(cryptsetup --allow-discards refresh
device
),但好像没有(cryptsetup: Unknown action
)。
物理设备显然有TRIM
支持,当我运行fstrim /boot
它时它可以工作(它是相同的设备,只是未加密)。
dmsetup table
命令不allow_discards
显示cryptroot
.
当我从 USB 启动并手动解密(使用--allow-discards
参数cryptsetup
)并挂载根分区时,它可以工作。我尝试过使用--persistent
选项,但它说它无法使其持久化。
我迷路了。我应该做什么才能fstrim /
工作?有些东西告诉我我应该以某种方式修改 grub 中的启动选项,但我不知道如何修改。我也不确定是否使用了 /etc/crypttab 中的行(我将其更改为cryptroot
安装后,即使更改它似乎也没有执行任何操作)。
我在跑Linux 薄荷 19.3。
链接:
答案1
我发现问题出在加密级别上。 (您可以dmsetup table
以 root 身份运行来查看您的设备是否显示allow_discards
。)
这解决了我的问题:
- 编辑
/etc/initramfs-tools/conf.d/cryptroot
,添加discard
特定设备的选项。就我而言,该行看起来像这样:CRYPTROOT=target=encrypted-root,source=/dev/disk/by-uuid/5ddb7e3a-dcbe-442d-85e8-359e944d0717,discard
。 - 跑步
update-initramfs -k all -c
。 (也许先进行备份,以防您的配置有问题而您不知道。)