ウェブサイト検索

既存のLUKSコンテナにDebianをインストールする方法


LUKS(Linux Unified Key Setup)は、Linuxベースのシステムで使用される事実上の標準暗号化方法です。DebianインストーラーはLUKSコンテナを作成する能力は完璧ですが、既存のものを認識し、再利用する能力がありません。この記事では、「DVD1」インストーラーを使用し、「高度な」モードで実行することでこの問題を回避する方法を見ていきます。

このチュートリアルではあなたが学ぶことになる:

  • 「高度なモード」でDebianをインストールする方法
  • 既存のLUKSデバイスを解除するために必要な追加モジュールをインストーラーに読み込む方法
  • 既存のLUKSコンテナへのインストール方法
  • 新しくインストールされたシステムのcrypttabファイルにエントリを追加し、そのinitramfsを再生成する方法

既存のLUKSコンテナにDebianをインストールする方法

使用されるソフトウェア要件と規約

問題: 既存のLUKSコンテナを再利用すること

既に言ったように、Debian インストーラーは LUKS コンテナ上にディストリビューションを作成してインストールすることが完全に可能です(典型的なセットアップは LVM on LUKS です)。しかし、現在のところ、既存の LUKS コンテナを認識して開くことはできません。この機能が必要な理由は何でしょうか?例えば、既に手動で LUKS コンテナを作成し、ディストリビューションインストーラーから調整できない暗号化設定がある場合や、コンテナ内に破壊したくない論理ボリュームがある場合(おそらくデータが含まれているからです)を想像してください。インストーラーの標準手順を使用すると、新しい LUKS コンテナを作成せざるを得ず、既存のものを破壊することになります。このチュートリアルでは、いくつかの追加ステップでこの問題を回避する方法を見ていきます。

DVDインストーラーをダウンロードしています

このチュートリアルで説明されているアクションを実行するには、いくつかのライブラリがnetinstallバージョンには含まれていないため、Debian DVDインストーラーをダウンロードして使用する必要があります。トレント経由でインストールイメージをダウンロードするには、私たちのマシンのアーキテクチャに応じて、以下のリンクのいずれかを使用できます。

  • 64ビット
  • 32ビット

上記のリンクから、インストーラのイメージを取得するために使用するトレントファイルをダウンロードできます。ダウンロードすべきファイルはDVD1です。インストール用のISOを取得するには、Transmissionのようなトレントクライアントを使用する必要があります。イメージがダウンロードされたら、対応するSHA256SUMおよびSHA256SUM.signファイルをダウンロードして、このチュートリアルに従ってLinuxディストリビューションのISOイメージの整合性を確認できます。準備が整ったら、イメージをブートデバイスとして使用できるメディア(DVDまたはUSB)に書き込み、そのデバイスからマシンをブートします。

高度なインストールモードを使用して

私たちが準備したデバイスを使用してマシンを起動すると、次のsyslinuxメニューが表示されるはずです。

私たちは高度なオプションのエントリを選択し、次にグラフィカルエキスパートインストール(または、リソースを少なく使用するncursesベースのインストーラーを使用したい場合はエキスパートインストール)を選択します。

メニュー項目を選択して確認すると、インストーラーが起動し、インストール手順のリストが表示されます:

私たちはインストール手順を進め、CDからインストーラーコンポーネントを読み込むステップに到達します。ここでは、インストーラーによって読み込まれる追加ライブラリを選択することができます。リストから最低限選択したいのは、Crypto-dm-modulesとrescue-modeです(リストをスクロールして見ることができます):

既存のLUKSコンテナを手動で解除し、ディスクをパーティション分割する

この時点では、ディスクを検出するステップに到達するまで通常通り進めます。このステップを実行する前に、ttyに切り替え、コマンドラインから既存のLUKSコンテナを開く必要があります。これを行うには、Ctrl+Alt+F3のキーの組み合わせを押し、Enterを押してプロンプトを取得します。プロンプトから、次のコマンドを実行してLUKSデバイスを開きます:

cryptsetup luksOpen /dev/vda5 cryptdevice
Enter passphrase for /dev/vda5:

この場合、LUKSデバイスは以前に/dev/vda5パーティションに設定されていましたが、もちろんこれはあなたのニーズに合わせて調整する必要があります。コンテナを解除するためにパスフレーズの入力を求められます。ここで使用するデバイスマッパー名(cryptdevice)は、後で/etc/crypttabファイルで必要となるものです。

このステップが完了したら、インストーラーに戻り(Ctrl+Alt+F5)、ディスクの検出と次にディスクのパーティションステップを進めることができます。ディスクのパーティションメニューでは、「手動」エントリを選択します。

アンロックされたLUKSデバイスとその中に含まれる論理ボリュームは、システムセットアップのターゲットとして使用する準備が整った利用可能なパーティションのリストに表示されるべきです。準備が整ったら、インストールを続けてインストールの完了ステップに到達します。それを実行する前に、新しくインストールされたシステムのcrypttabにLUKSデバイスのエントリを作成する必要があります。これはデフォルトでは作成されないため、変更を有効にするためにシステムのinitramfsを再作成する必要があります。

/etc/crypttab にエントリーを作成し、initramfs を再作成する

以前使っていたttyに戻りましょう(Ctrl+Alt+F3)。今私たちがしなければならないことは、新しくインストールされたシステムの/etc/crypttabファイルにLUKSデバイスのエントリを手動で追加することです。そのためには、新しいシステムのルートパーティションをどこかにマウントする必要があります(/mntディレクトリを使いましょう)そして、それに関連する重要な情報を提供するいくつかの擬似ファイルシステムもマウントします。私たちのケースでは、ルートファイルシステムは/dev/debian-vg/root論理ボリュームにあります。

mount /dev/debian-vg/root /mnt
mount /dev /mnt/dev
mount /sys /mnt/sys
mount /proc /mnt/proc

この場合、別のブートパーティション(/dev/vda1)があるため、/mnt/boot にもマウントする必要があります:

mount /dev/vda1 /mnt/boot

この時点で、私たちはインストールされたシステムにchrootしなければなりません。

chroot /mnt

最後に、利用可能なテキストエディタの1つ(例えばvi)を使用して、/etc/crypttabファイルを開き、次のエントリを追加できます:

cryptdevice /dev/vda5 none luks

上記の行の最初の要素は、手動でLUKSコンテナを解除したときに使用したデバイスマッパ名であり、システムブート中にコンテナが開かれるたびに使用されます。

第二の要素は、LUKSデバイスとして使用されるパーティションです(この場合、パス(/dev/vda5)で参照しましたが、より良い方法はUUIDを使用してそれを参照することです)。

第三の要素は、コンテナを開くために使用されるキーファイルの場所です:ここでは、私たちがそれを使用しないためなしと入力します(この種のセットアップを行う方法について知りたい場合は、LUKSデバイスキーとしてファイルを使用する方法に関する私たちのチュートリアルに従ってください)。

行の最後の要素は、暗号化されたデバイスに使用するオプションをホストしています: ここでは、デバイスがLUKSコンテナであることを指定するためにluksを使用しました。

一度 /etc/crypttab ファイルを更新したら、次に進んで initramfs を再生成できます。DebianおよびDebianベースのディストリビューションでは、この操作を行うために update-initramfs コマンドを使用します:

update-initramfs -k all -c

ここでは、-cオプションを使用して、コマンドに既存のinitramfsを更新するのではなく、新しいinitramfsを作成するよう指示し、-kを使用してinitramfsを作成すべきカーネルを指定しました。この場合、引数としてallを渡したので、既存のすべてのカーネルに対して1つずつ生成されます。

initramfsが生成されると、インストーラーに戻り(Ctrl+Alt+F5)、最後のステップであるインストールの完了に進みます。インストールが完了すると、新しくインストールされたシステムにアクセスするために再起動を促されます。すべてが予定通り進んだ場合、システムがブートする際に、LUKSコンテナをロック解除するためのパスフレーズを入力するよう促されるはずです。

結論

このチュートリアルでは、既存のLUKSコンテナを認識して開くことができず、システムインストールをその中で行うことができないDebianインストーラーの制限を回避する方法を学びました。インストーラーを「高度なモード」で使用して、一部の追加モジュールをロードし、ttyに切り替えて手動でコンテナをアンロックできるようにする方法を学びました。一度コンテナが開くと、インストーラーによって正しく認識され、問題なく使用できるようになります。このセットアップで唯一厄介な点は、新しくインストールしたシステムのcrypttabファイルにコンテナのエントリを作成し、initramfsを更新することを忘れないようにしなければならないことです。

関連記事: