既存のデータをバックアップ/復元せずに外部ディスクを暗号化する方法は?

既存のデータをバックアップ/復元せずに外部ディスクを暗号化する方法は?

ext4 暗号化されていない外部 USB ディスクがあります。

/dev/sda1       3.6T  2.9T  613G  83% /data

データを失うことなくこのディスクを暗号化したいと思います。これでパフォーマンスを向上させるために暗号化したいので、このディスクをRaspberry3からRaspberry4に移行しています。

私は読んだファイルシステムスタックレベルの暗号化そしてデバイスレベルの暗号化のブロックしかし、LUKSは最も安全なようで、Debian標準です。

私はこのガイドを読みました:

警告する!次のコマンドは、暗号化しているパーティションのすべてのデータを削除します。すべての情報が失われます!したがって、次のコマンドを入力する前に、NASやハードドライブなどの外部ソースにデータをバックアップしてください。

# cryptsetup -y -v luksFormat /dev/xvdc

4TBのデータを他のディスクにコピーすることはできません。それほど容量のディスクがないからです。

既存のデータをバックアップ/復元せずにこのディスクを暗号化するにはどうすればよいですか?可能ですか?

ベストアンサー1

これは可能ですが、すべての内部変換と同様にデータ損失のリスクがあります。

LUKSヘッダー用のスペースを解放するには、外部ヘッダーを使用する予定がない限り、最初にファイルシステム(resize2fsext4の場合)を縮小する必要があります。 LUKS1の場合、2MiBだけ減らす必要があります。 LUKS2の場合、4M、16M、または最大64Mまで縮小できます。高度な機能(dm-integrity)を使用する場合は、さらに絞り込む必要があります。

パーティションの縮小に加えて、ディスクパーティションのレイアウトが許可されている場合は、パーティションを増やすこともできます。

オフラインcryptsetup-reencryptユーティリティを使用して既存のデータを暗号化する:

# cryptsetup-reencrypt --new --type luks1 --reduce-device-size 2M /dev/sdXn
Enter new passphrase: 
Verify passphrase: 
[A wild progress bar appears.]

オンラインcryptsetup reencryptLUKS2の使用:

# cryptsetup reencrypt --new --reduce-device-size 16M /dev/sdXn

WARNING!
========
This will overwrite data on LUKS2-temp-2c9761be-a765-4349-aa0a-553203e534f1.new irrevocably.

Are you sure? (Type uppercase yes): 

Enter passphrase for LUKS2-temp-2c9761be-a765-4349-aa0a-553203e534f1.new: 
Verify passphrase: 
[A wild progress bar appears.]

したがって、この方法は、プロセス全体で電源やケーブル障害が発生しない限り機能します。

cryptsetup-reencryptマニュアルページによると、次のようになります。

このツールを使用する前に、常に安定したバックアップがあることを確認してください。

おすすめ記事