Ubuntuを使用して既存のフルディスク暗号化デバイス(USB)のLUKSヘッダーを分離する

Ubuntuを使用して既存のフルディスク暗号化デバイス(USB)のLUKSヘッダーを分離する

すでにUSBスティックにパーティションがあり、コンピュータにLUKSパーティションがあります。これは、Ubuntu 21のフルディスク暗号化方式に対応しています。 LUKSパーティションのヘッダをUSB(対応するパーティションや他のパーティション)/bootに入れたいです。/boot新しいパーティションに)私のUSBに)

ブートパーティション(デバイスにあると仮定)cryptsetup luksHeaderBackupにヘッダー(含まれている)を配置し、ファイルを使用して次のオプションを試しました。boot_header.luks/dev/sda3crypttabheader=

  • /boot/boot_header.luks
  • /dev/sda3/boot_header.luks
  • /dev/sda3:/boot_header.luksそして/boot_header.luks:/dev/sda3(もちろん)

uuidと同じ/dev/sda3で、また同じです。/dev/disk/by-uuid/[uuid]

sda3そのため、ドキュメントに従ってデバイスがインストールされていないようです。パスワードテーブル(私の理解が正しい場合)

オプションで、[ヘッダーを含むファイル]パスの後に ":" および /etc/fstab デバイス仕様が続くことがあります (たとえば、"UUID=" または同様のもので始まります)。この場合、パスはデバイスファイルに相対的です。システムはルートです。デバイスは、LUKS デバイスのアクティブ化中にのみ自動的にインストールされます。

だから、実行する前にインストールブートパーティションを見つけました。隠しルートlocal-bottomそして、カスタムスクリプトを含むスクリプトinit-bottom。また、おすすめ通りここヘッダーをinitramfsにマージしてみました。回答

ただし、起動時の結果は常に同じです。

「タイトル」オプションの値が無効です。

私はこれがかなり可能だと思ったアーチしかし、Ubuntuで(cryptrootなどの既存のスクリプトを変更せずに)同じことを行う方法はありますか?

ベストアンサー1

コメントで指摘したように@AB解決策は、パーティション内のヘッダーファイルの代わりにヘッダーがある生のパーティションです(ファイルシステムを最初にマウントする必要があるため面倒です)。

ヘッダー(LUKS2は〜16 MB)をパーティション(/dev/sdbヘッダーサイズより大きい)にコピーするには2つのオプションがあります。

  • 1つ目は元のヘッダーをコピーすることですdd

まず、データのオフセットを見つける必要があります(なぜならヘッダーは常に0から始まります。)。 LUKSデバイスの場合はligneを/dev/sda4使用しcryptsetup luksDump /dev/sda4て検索します。オフセットこのセクションのデータセグメント。次に、ファイルシステムのブロックサイズ検索を使用しますstat -fc %s /dev/sda4。ついに、dd if=/dev/sda4 of=/dev/sdb bs=<fs_block_size> count=<data_offset>

  • 2番目は、すべてのヘッダーデータをパーティションにコピーするバックアップファイルに圧縮することです/dev/sdb

ファイルをバックアップするといくつかの問題が発生する可能性があるためセキュリティの質問暗号化されたディスクに保存されていても、そのファイル用の仮想ディスクを作成するのが最善です。

mkdir /tmp/header_backup
mount -t tmpfs -o size=512m tmpfs /tmp/header_backup
cryptsetup luksHeaderBackup /dev/sda4 --header-backup-file /tmp/header_backup/header.luks
dd if=/tmp/header_backup/header.luks of=/dev/sdb
umount /tmp/header_backup

次に、その行に/etc/crypttabオプションを追加しますheader=/dev/sdb(例sda4_crypt [UUID] none luks,discard,header=/dev/sdb:)。

以前のLUKSヘッダを消去するには:cryptsetup luksErase /dev/sda4。これにより、キーホームのみが消去され、すべてのメタデータが保持されます。ヘッダーを完全に消去するには(必須ではありません)、パーティションにUUIDを維持するために、その上に別のファイルシステムヘッダーが必要です。ただし、ストレージデバイス(SSDまたはHDD)によっては、LUKSヘッダーを完全に削除しても安全な削除が行われない場合があります。SSDの場合削除されたブロックは、デバイスがより多くのスペースを割り当てる必要があるまでキューに残ることがあります。

それ以外の場合は、ヘッダーをクリアするには:ファイルシステムブロックサイズ(<fs_block_size>stat -fc %s /dev/sda4、LUKSデータオフセット(<luks_data_offset>cryptsetup luksDump /dev/sdb、パーティションのUUID /dev/sda4<uuid_sda4>)を取得します。

dd if=/dev/urandom of=/dev/sda4 bs=<fs_block_size> count=<luks_data_offset>
mkfs.ext4 fs.img
tune2fs -U <uuid_sda4> fs.img
dd if=fs.img of=/dev/sda4

パーティションは/dev/sdbLUKSと同じUUIDを持ち、これは問題になる可能性があります。 LUKS プロセスを中断することなく変更できます。cryptsetup luksUUID /dev/sdb --uuid $(uuidgen)

最後に更新されたinitramfsupdate-initramfs -u -k all

おすすめ記事