暗号化されたパーティションからの削除を許可しない

暗号化されたパーティションからの削除を許可しない

次のパーティションテーブルがあります。

NAME            
nvme0n1         
├─nvme0n1p1           part  /boot
└─nvme0n1p2           part
  └─crypt             crypt
    ├─crypt-swap      lvm   [SWAP]
    ├─crypt-root      lvm   /
    └─crypt-home      lvm   /home

ドライブがSSDなので実行したいです。打つディスク自体のパフォーマンス/寿命を向上させるコマンドです。

特に周期的なTRIMを有効にしたいと思います。

2番目のパーティション(たとえばnvme0n1p2)は暗号化されているため、セキュリティ上の理由でTRIMは無効になります(https://wiki.archlinux.org/title/Dm-crypt/Specialties#Discard/TRIM_support_for_solid_state_drives_(SSD))。

ただし、encrypt暗号化されたパーティションを開くときに構成することでTRIMを有効にできます。

カーネルの起動時にパーティションが開いたときのカーネルパラメータ(例allow-discards:)を修正しました。

cryptdevice=/dev/sdaX:root:allow-discards

パーティションの命名とボリューム名は、上記のコードスニペットとは関係ありません。)。

これにより、実際にディスク上でTRIMコマンドを正常に実行できました。

# cryptsetup luksDump /dev/nvme0n1p2 | grep Flags
Flags:   allow-discards

そして:

# fstrim ...
/home: [..] trimmed on ...
/: [..] trimmed on

今まではそんなに良くなった。


問題は、元の状態に復元しようとしたときに発生します。

カーネルパラメータを削除しましたが、まだパーティションに表示され、コマンドは正常allow-discardsに実行されます。Flagsallow-discardsfstrim

  • どうやってこれができますか?
  • 暗号化されたパーティションから拒否されたドロップを回復する方法は?

答え1

LUK2は、メタデータをヘッダーに永続的に保存できることがわかりました。

allow-discards次のコマンドを使用して(カーネルパラメータなどの追加設定なしで)パーティション自体にそれを有効にして保存できます。

cryptsetup --allow-discards --persistent refresh root

明らかに、私は過去に廃棄オプションを有効にするためにこのコマンドを実行したことがあります。

このフラグは次のように削除できます。

cryptsetup --persistent refresh root

https://man7.org/linux/man-pages/man8/cryptsetup.8.html

オプションの引数なしでデバイスを更新すると、デフォルト設定を使用してデバイスが更新されます(デバイスの種類によって異なります)。

関連情報