私はbtrfsを使用していて、いくつかのサブボリュームをマウントしました(ただし、btrfsルートはマウントしていません)。 SSDパーティションにあるので、fstrim
を使いたいと思います。各マウントポイントでfstrim
を呼び出す必要がありますか(それぞれ異なるサブボリュームに対応します)?または、btrfs rootをマウントして、このマウントポイントでfstrim
を実行する必要がありますか?
fstrim
は「mountpoint」で実行する必要があるため、デバイスをマウントする必要があります。ただし、物理デバイスごとに1回だけ呼び出す必要があります。したがって、2つのマウントポイントがbtrfsと同じデバイス上にある場合、1つのマウントポイントでfstrim
を呼び出すだけで済みます。
私はこのようにします:
#!/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
を起動します。