すでにUSBスティックにパーティションがあり、コンピュータにLUKSパーティションがあります。これは、Ubuntu 21のフルディスク暗号化方式に対応しています。 LUKSパーティションのヘッダをUSB(対応するパーティションや他のパーティション)/boot
に入れたいです。/boot
新しいパーティションに)私のUSBに)
ブートパーティション(デバイスにあると仮定)cryptsetup luksHeaderBackup
にヘッダー(含まれている)を配置し、ファイルを使用して次のオプションを試しました。boot_header.luks
/dev/sda3
crypttab
header=
/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/sdb
LUKSと同じUUIDを持ち、これは問題になる可能性があります。 LUKS プロセスを中断することなく変更できます。cryptsetup luksUUID /dev/sdb --uuid $(uuidgen)
最後に更新されたinitramfsupdate-initramfs -u -k all