ブートパーティションのない単一の暗号化されたシステムパーティション - これはどのように可能ですか?

ブートパーティションのない単一の暗号化されたシステムパーティション - これはどのように可能ですか?

最近インストールされたLubuntu KVM仮想マシンの仮想ディスクイメージパーティションは次のとおりです。

# lsblk -f
NAME   FSTYPE      LABEL              UUID                                 FSAVAIL FSUSE% MOUNTPOINT
loop0  squashfs 
                                                                 0   100% /rofs
... SNIP ...

sr0    iso9660     Ubuntu 19.10 amd64 2019-10-17-12-53-34-00                     0   100% /cdrom
vda                                                                                       
└─vda1 crypto_LUKS                    xxxx-yyyy-zzzz    

つまり、暗号化されたシステムパーティション(vda1)があり、起動パーティションはありません。 (注。暗号化されたパーティションを確認/サイズ調整するためにライブイメージで起動しましたが、起動パーティションがないので驚きました。)

質問:ブートパーティションがないのにシステムをどのようにブートできますか(ブートするから!)?

その後の質問のより良い理解を助けるために:

  • KVMが復号化自体を管理しているため、起動は機能しますか?
  • それともホストシステムにも適用されますか?
  • スタンドアロン設定でも機能する場合、このようなスタンドアロン暗号化パーティションではなく(暗号化されていない)ブートパーティションを作成するのはなぜですか?
  • cryptsetupKVMが復号化を管理している場合は、暗号化されたデバイスを作成するためにKVMに正しい/互換バージョンがインストールされていることを確認するにはどうすればよいですか?バージョンが一致しない場合はどうなりますか?
  • KVMが復号化を管理している場合は、フルディスク暗号化でLubuntuをインストールするときに、インストールプログラムがLubuntuが仮想マシンで実行されていることを確認し、暗号化されたパーティションを作成するのに十分であると判断したとします。そうですか?それでは、ブートパーティションを含む「一般」設定をしたいかどうか尋ねないのはなぜですか?

注:実際に起動時に暗号化されたディスクを開くGUIは非常に簡単です。これはテキストベースのGUIです。シングル暗号化されたパーティションを開くためにパスワードを入力しようとしましたが、まったくフィードバックはありません(アスタリスクは入力した文字数を少なくとも表示しないようです)。以前は Lubuntu が Ubuntu より単純だったため、その理由を推測していましたが、今は (上記のように) KVM が復号化自体を管理していると疑われます。

ベストアンサー1

いくつかの可能性があります:

  • MBR / DOSパーティション、暗号化ディスクサポートを含むGRUB、およびLUKS 1(またはPBKDF2暗号化を含むLUKS 2)を使用している場合は、ブートパーティションは必要ありません。 GRUBの将来のバージョンはLUKS 2を完全にサポートするかもしれませんが、私が知っている限り、まだ完全には実装されていません。argon2iはまだサポートされていません)。

  • カーネル/initramfsは外部に保存でき、-kernel -initrd適切なオプションをqemuに渡してqemu / KVMによって直接ロードできます。この場合、qemu自体がブートローダとして機能するため、仮想マシン内にブートパーティションは必要ありません。

  • カーネルイメージは、最初のパーティションの前の特定のデバイスオフセットに存在できます。パーティション/ファイルシステム/ファイルではなく、生データとしてデバイスに直接書き込まれ、ブートローダはそれを見つける場所を知っています。この方法は通常、組み込みデバイスでのみ発見されます。


このように、別々の暗号化パーティションではなく(暗号化されていない)ブートパーティションを作成するのはなぜですか?

問題は、ブートローダが最終的にどこかに移動する必要があるということです。したがって、MBR / DOSパーティションを使用すると、パーティション化されていないスペースで多くの操作が発生します。もちろんこれはうまくいきます... 2つの異なるものが同じオフセットにデータを配置し、互いに上書きしようとするまでです。

我々は、これらを適切に分割する方が良いと判断しました。したがって、GPTを使用すると、EFIパーティションを取得するか、GRUBはコアイメージなどのためのBIOS_grubパーティションを取得します。

理想的には、パーティションの外のどこかにすべてが隠されているので、どのように機能するのか頭を傷つけるのではなく、パーティションテーブルを見て、それがどのように設定されているかを理解できます。

おすすめ記事