安装多个子卷时如何在 btrfs 上运行 SSD 修剪 fstrim?

安装多个子卷时如何在 btrfs 上运行 SSD 修剪 fstrim?

我正在使用 btrfs 并安装了多个子卷(但不是 btrfs 根)。它驻留在 SSD 分区上,所以我想使用fstrim.我应该fstrim调用每个挂载点(每个挂载点对应不同的子卷)吗?或者我是否需要安装 btrfs root 并fstrim在此安装点上运行?

答案1

fstrim应该在“安装点”上运行,因此您需要安装设备。但每个物理设备只需调用一次。因此,如果 2 个挂载点与 btrfs 位于同一设备上,则只需调用fstrim一个挂载点。

找到这个答案: https://forums.gentoo.org/viewtopic-t-1003980-view-previous.html?sid=a51dab49787e5b7b6c2fa4aa7c1a5e44

我这样做:

#!/bin/sh
LOG=/var/log/fstrim.log
echo "===" $(date -R) "===" >> $LOG
for d in $(lsblk -o MOUNTPOINT,FSTYPE | grep -E 'btrfs' | awk '{print $1}'); do
    fstrim -v $d 2>&1 >> $LOG
done

该脚本被放置/etc/cron.weekly/fstrim并设置为可执行文件:

sudo chmod +x /etc/cron.weekly/fstrim

该脚本利用 lsblk 列出块设备。我正在搜索“btrfs”设备并在其上启动fstrim

相关内容