如何在加密根上启用丢弃

如何在加密根上启用丢弃

我已经安装了系统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选项cryptsetupcryptsetup --allow-discards refreshdevice),但好像没有(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。 (也许先进行备份,以防您的配置有问题而您不知道。)

相关内容