
LUKS暗号化ディスクの分離ヘッダーを設定する方法に関する情報は、Stack Exchangeに分散されています。 Google を使用してウェブを検索し、限られた情報を見つけました。私が見つけた最高の情報のいくつかは質問の下部にリンクされています。そのうちのいくつかは私のような初心者にも役立ちます。しかし、一部は不完全に見えるため、この記事を書くようになった動機があります。次の問題を解決して問題を完了し、正しく機能できることを確認してください。
私は読者がlsblk
ヘッダードライブを取り外してsdb
別のドライブに保存する必要があることを発見したと仮定しますsda
。
方法1:ヘッダーをパーティションにする
ヘッダーのサイズを確認し、パーティションを正しいサイズに設定してください。次のコマンドは多くの情報を提供します。
offset
下の数字の横に数字を書いてくださいData segments:
$ cryptsetup luksDump /dev/sdb ... Data segments: 0: crypt offset: 16777216 [bytes] length: (whole device) cipher: aes-xts-plain64 sector: 512 [bytes] ...
実行
fdisk
(使用できない場合はインストール)$ fdisk /dev/sda
。コマンドを出し、
n
Enter を押します。デフォルトのパーティション番号を使用してデフォルトのパーティションを作成します。X。デフォルトの最初のセクタ値を選択して記録します。中サイズ)。最後のセクタの入力を求められます。K。正しい番号を探すK入力(セクタサイズを512バイトと仮定)、計算K = 中サイズ + オフセット/ 512;どこからオフセットluksDump
上記のコマンドを使用して見つけた数字ですcryptsetup
。 luks-headerとまったく同じサイズのパーティションを作成します。最後にw
。これでluks-headerをエクスポートし、~/some/file/path/header.img
作成したパーティションに書き込みます。$cryptsetup luksHeaderBackup /dev/sdb --header-backup-file ~/some/file/path/header.img $dd if=~/some/file/path/header.img of=/dev/sdaX個数=Kbs=512ステータス=進行
どこXそしてK上記で選択した番号です
fdisk
。これで、ヘッダーが保存されており、楽しむためにプログラムを開き(必要に応じてインストール)、gpartedが小さなLUKS暗号化パーティションであると思うことがわかります!表示されるUUIDは、のUUIDと同じです。したがって、新しいUUIDを作成する必要があります(Googleで「uuidジェネレータ」を検索)。新しく作成されたUUIDが次のと仮定します。sdaX
gparted
sdaX
lsblk -f
/dev/sda1
/dev/sdb1
新しいUIDの作成;それでは変えてください$cryptsetup luksUUID /dev/sda1 --uuid新しいUIDの作成
この情報をに入力する必要があります
/etc/crypttab
。テキストエディタを使用してファイルを開き、sdb
4番目の列にオプションを追加します。header=/dev/sdaX
header=/dev/disk/by-uuid/UUID を設定してこれを行うには、Frostschutz の回答をご覧ください。必ず修正して回答に投票してください。
それから
$ update-initramfs -u -k all
。エラーがなければ大丈夫だと思います。
方法2:ヘッダーをファイルシステムのファイルにする
文書やその他のソースは、ヘッダーをファイルシステムにコピーし、そこから参照することが可能であることを示しますsda
。パーティションのファイルシステムが次のと仮定しますsda1
。
UUID=###########-############-####-########
に関しては、sda1
ヘッダーは/some/path/header.img
.thenにあります。パスワードテーブル(5)4番目の列に/etc/crypttab
私が書くべきだと言われています。
header=/some/path/header.img:UUID=###########-############-####-########
しかし、これはupdate-initramfs
ヘッダーが見つからないと文句を言います。
Q:それを見て、あなたが書こうとしている内容を引用してもらえますか? DEBIANを新しくインストールしましたが、残念ながら正常に動作しません。
最後に、を使用して既存のヘッダーから情報を削除できますcryptsetup luksErase /dev/sdb
。暗号化されたパーティションに関する情報にアクセスするためにcryptsetupを適用するには、--header /dev/sdax
-オプションを渡す必要があります。私はすべてが正確で詳細に書かれていることを確認するために全力を尽くしました。しかし、バグがあるかもしれません。自由に編集してください。もちろん、データが失われた場合、または何かが破損した場合、保証は無効になります。
ソース/追加を読む:
- cryptsetup、既存ボリュームのヘッダーの分離(スーパーユーザー情報)
- Ubuntuを使用して既存のフルディスク暗号化デバイス(USB)のLUKSヘッダーを分離する
- 分離されたヘッダーでLUKSを使用する方法(LinuxConfig.orgから)
- パスワードテーブル(5)Debian マンページから
- パスワードテーブル(5)man7.orgから
答え1
ヘッダーの分離は特別なユースケースです。少数の人が使用しているため、一部の場所ではサポートが不足している可能性があります。だから私はそれらを使用しないことをお勧めします。また、パーティションテーブルのないドライブを使用しないことをお勧めします。この設定にはトラップが多すぎます。
header=UUID=x
うまくいかない場合はお試しくださいheader=/dev/disk/by-uuid/x
。
の場合、header=/some/path/file:UUID=x
パスは指定されたファイルシステムに基づいています。だからあなたがあればmount UUID=x /mnt/somewhere
それを見つけるでしょう/mnt/somewhere/some/path/file
。
情報luksErase
(またはluksRemoveKeyまたはluksKillSlotを介してすべてのキーを削除)。残りのキーホームを持たないLUKSヘッダーは開くことができません。 (分離されたヘッダーを使用する必要があります)が、暗号化されたデバイスを識別できるようにUUIDを提供します。
分離されたヘッダーもパーティション内にあり、同じUUIDを持つ場合、競合が発生します。 UUIDでヘッダーと暗号化デバイスを識別できるようにするには、luksUUIDを使用してこれらのいずれかを変更する必要があります。 LUKS2の場合は、ラベルを設定することもできます。
または、GPTパーティションを使用している場合は、PARTUUIDまたはPARTLABELを使用して識別できます。
答え2
initramfs-toolsやDebianの他の設定を使ってフックやパラメータを設定する必要はありませんか?
Arch Linuxでは、LUKSディスクを復号化してLVMにファイルシステムをマウントするようにinitramfsを設定するには、mkinitcpio設定フックスクリプトが必要です。他のカーネルパラメータも/etc/default/grubのgrub構成を介して渡されます(このブートローダを使用している場合)。
*アーチLinuxを参照:
https://wiki.archlinux.org/title/Dm-crypt/Specialties#Encrypted_system_using_a_detached_LUKS_header