物理ボリュームを追加して論理ボリュームを拡張した後、grubが失敗する

物理ボリュームを追加して論理ボリュームを拡張した後、grubが失敗する

数年前、私は500GiBハードドライブにDebianをインストールしました。インストール中にファイルシステムを暗号化することを選択しました。そのため、インストーラは、暗号化されていない小さなブートパーティション(grub構成が残っていると推測)と大規模なLUKS暗号化パーティションを作成しました。この大規模暗号化パーティションは、ボリュームグループの唯一のメンバーである物理ボリュームで、2つの論理ボリューム(スワップ用の1つと他のすべてのボリューム用)が作成されます。この構成では、私はあまり心配することなく、何年もの間すべてがうまくいきました。

数日前、新しい2TiBハードドライブを購入し、システムをそのドライブに移行することにしました。単に "cat /dev/sda > /dev/sdb"を使って、既存のハードドライブを新しいハードドライブに少しずつコピーしました。その後、私のコンピュータは新しいハードドライブから正しく起動しましたが、既存のハードドライブからコピーしたパーティションテーブルがあったため、サイズはわずか500GiBでした。だから、もっと大きく作ろうとしました。

まず、その上に新しい(3番目の)パーティションを作成しました。その上に物理ボリュームを作りました。私は以前のパーティションと同じパスワードを使用して( "cryptsetup"コマンドを使用して)この物理ボリュームを暗号化しました。この物理ボリュームを既存のボリュームグループに追加しました。既存の論理ボリュームを拡張し、その上にファイルシステムも拡張しました。私はCDから起動したKnoppixを使ってこれをすべてやりました。 grub 設定を変更していません。それから(私はまだKnoppixにいます)、暗号化された両方のパーティションからファイルシステムをマウントしてみました。うまくいきました。 1つのファイルシステムで、2TiBサイズで、すべてのファイルがそこにあります。

その後、このハードドライブから起動しようとします。 GrubはLUKS暗号化パーティションのパスワードを入力するように要求しましたが、次のメッセージで失敗しました。

ブートエラー

このメッセージでは、uuid "EFc551-(...)"を見ることができます。このuuidが何であるかわかりません。

grubが起動時に実行するコマンドは次のとおりです(写真はぼやけていますが、テキストを理解してください):

グラップコマンド

このコマンドで表示できる文字列「9e5881c3(...)」は、以前の暗号化パーティションのUUIDです。今私は2つを達成したいと思います。

  • 何が起こったのか理解し、
  • 2TiBハードドライブから起動できます。

これら2つの目標を達成するのに役立ちますか?


最後の解決策

マルマレクの考えは正しかった。

最初に考えたのとは異なり、私の設定(デフォルトのDebian設定のようです)では、grubはLVMとは何の関係もありません。 Grubは暗号化されていない小さな起動パーティションから起動し、パーティションのinitは暗号化されたLVMボリュームを復号化してマウントする役割を果たします。したがって、grubではなくinitrdを変更する必要があります。 Marmarekはupdate-initramfsを使用してKnoppixで再生成することを提案しましたが、うまくいきませんでした。 update-initramfsによって生成されたinitrdには、/conf/conf.d/cryptrootファイル(元のinitrdにファイルがあります)が欠落しており、パーティションのパスワードをまったく解読していません。 update-initramfsコマンドを実行すると、パーティションが暗号化されず、LVMボリュームがアクティブにならないため、このファイルが欠落しているようです。

だから、元のinitrdイメージを解凍し、次の行のようにinitファイルに入れました。

cryptsetup luksOpen UUID=some-uuid udisks-luks-uuid-this-uuid

cryptsetupの最後の引数が私が提供したものと正確に一致する必要があるかどうかはわかりません。私はただいくつかの例で見たものを模倣しています。

この行は、/ devがマウントされたinitの内側に配置する必要があります。私は試行錯誤を通してこの場所を見つけました。その行の後に続く内容は次のとおりです。

run_scripts /scripts/init-top

この修正されたinitrdをパッケージ化してコンピュータを起動すると、2つのパスワードを求めるメッセージが表示され、正しく機能します。

ベストアンサー1

このuuid "EFc551-(...)"はおそらく2TBディスク(つまり暗号化PV)です。 2番目のPVについて何とかinitramfsに知らせる必要があります。おそらくupdate-initramfsが次のようになります(knoppixで):(ディスクが/mnt/diskにマウントされていると仮定)

cp -a /dev/* /mnt/disk/dev/
chroot /mnt/disk
マウント /proc
マウント /sys
update-initramfs -u -k すべて

おすすめ記事