DebianベースのGNU/Linuxから分離されたLUKSヘッダ

DebianベースのGNU/Linuxから分離されたLUKSヘッダ

LUKS暗号化ディスクの分離ヘッダーを設定する方法に関する情報は、Stack Exchangeに分散されています。 Google を使用してウェブを検索し、限られた情報を見つけました。私が見つけた最高の情報のいくつかは質問の下部にリンクされています。そのうちのいくつかは私のような初心者にも役立ちます。しかし、一部は不完全に見えるため、この記事を書くようになった動機があります。次の問題を解決して問題を完了し、正しく機能できることを確認してください。

私は読者がlsblkヘッダードライブを取り外してsdb別のドライブに保存する必要があることを発見したと仮定しますsda


方法1:ヘッダーをパーティションにする

  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

    コマンドを出し、nEnter を押します。デフォルトのパーティション番号を使用してデフォルトのパーティションを作成します。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が次のと仮定します。sdaXgpartedsdaXlsblk -f/dev/sda1/dev/sdb1新しいUIDの作成;それでは変えてください

    $cryptsetup luksUUID /dev/sda1 --uuid新しいUIDの作成
  2. この情報をに入力する必要があります/etc/crypttab。テキストエディタを使用してファイルを開き、sdb4番目の列にオプションを追加します。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-オプションを渡す必要があります。私はすべてが正確で詳細に書かれていることを確認するために全力を尽くしました。しかし、バグがあるかもしれません。自由に編集してください。もちろん、データが失われた場合、または何かが破損した場合、保証は無効になります。

ソース/追加を読む:

ベストアンサー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を使用して識別できます。

おすすめ記事