複数のシステムでArch Linux(systemd)を実行しています。一部にはSSDストレージがあり、一部にはNVMEストレージがあり、一部にはロータリーHDDが使用されます。一部のシステムでは、dm-crypt を使用してファイルシステムを暗号化します。すべてのシステムが存在します/
。
ルートファイルシステム()をホストする物理デバイスを決定するbashスクリプトがあることを願っています/
。ブロックデバイスがトリミングをサポートしていることを確認し、サポートしている場合は、システムでfstrim.timerが有効になっていない場合はアクションを取ることが目的です。
たとえば、その機能がオンになっていることがわかっている場合は、クリーンアップがサポートされて/
いることを確認できます。それから私はできます。/dev/sda
hdparm -I /dev/sda | grep TRIM
systemctl enable fstrim.timer
ただし、暗号化されたシステムでは実行中である/
と報告/dev/mapper/cryptoroot
されていません。スクリプトに優しいこの方法は、物理ブロックデバイス(たとえば/dev/sda
)に再マッピングして、クリーンアップをサポートするかどうかを決定します。
私が理解しているように、SSDは通常定期的なトリム実行で利益を得ています。NVMeデバイスはそうではないかもしれません。
暗号化されていない場合は、次の質問が関連します。
フォルダがどの物理デバイスにあるかを確認するには?
Linux で /dev/root が表すデバイスが何であるかをご覧ください。
https://unix.stackexchange.com/a/431968/15010
答え1
BTRFSはさまざまなデバイスをサポートしているため、これを使用してbtrfs fi show
ブロックデバイスのリストを取得できます。その後、cryptsetup status
特定のデバイスがLUKSコンテナであることを確認するために使用されます。その場合、コマンドは下線付きのデバイスを出力します。
出力を解析する必要があるため、これをスクリプトフレンドリーと呼ぶことはありませんが、うまくいきます。