最近インストールされた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が復号化自体を管理しているため、起動は機能しますか?
- それともホストシステムにも適用されますか?
- スタンドアロン設定でも機能する場合、このようなスタンドアロン暗号化パーティションではなく(暗号化されていない)ブートパーティションを作成するのはなぜですか?
cryptsetup
KVMが復号化を管理している場合は、暗号化されたデバイスを作成するために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パーティションを取得します。
理想的には、パーティションの外のどこかにすべてが隠されているので、どのように機能するのか頭を傷つけるのではなく、パーティションテーブルを見て、それがどのように設定されているかを理解できます。