web-dev-qa-db-ja.com

マザーボードを交換した後、LUKS暗号化LVMパーティションでGRUBを回復する方法は?

EFI BIOSを搭載したLenovo X280ノートブックに、デュアルブートWindows 10とKali Linux x64(Debian 9 x64に基づくLinuxディストリビューション)を搭載しました。 Windows 10では、BitLockerとパスワード(TPMではない)を使用します。 LinuxはLUKS暗号化を使用します。 Kali/bootパーティションを個別に作成しました。使用中のマザーボードを交換する必要がありました。この後、Windowsのみが起動します。グラブが欠落していた。だから私はライブシステムから(USBフラッシュドライブから)GRUBを再インストールしてみました:

  1. LUKSパーティションを手動で暗号化しました:

    _cryptsetup luksOpen /dev/nvme0n1p4 disk_

  2. パーティションをマウントしました:

    _mount /dev/mapper/sk1-system /mnt mount /dev/nvme0n1p5 /mnt/boot mount /dev/nvme0n1p1 /mnt/boot/efi for i in /dev /dev/pts /proc /sys /run; do mount -B $i /mnt$i; done_

  3. Grubをインストールして更新します。

    _chroot /mnt grub-install /dev/nvme0n1 update-grub_

Grubが正常にインストールされた後、ノートブックの電源を入れた後、LUKSパスワードが表示された黒い画面が表示され、正しいパスワードを入力すると、GrubメニューにKali LinuxではなくWindowsブートマネージャーのみが表示されます。

私のドライブはこのようにパーティション化されています:

nvme0n1: nvme0n1p1: EFI p2: MS Reserved Partition p3: Windows 10 (BitLocker) p4: crypto_LUKS partition it contains: LVM: /dev/mapper/sk1-system /dev/mapper/sk1-swap p5: Kali /boot partition (ext4) p6: DATA (NTFS) p7: WinRE_DRV

grub.cfg

fstab ファイル

Kali Linuxのブートアイテムを追加する方法も教えてください。そして、どのように私はLUKSのパスワード要求で黒い画面をスキップしてからgrub画面をスキップしてくださいか? (マザーボードを交換する前に、直接画面を確認します)。

1
Mato

grub.cfgファイルを読み取ると、最初のLUKSパスワード要求の直接の原因である部分は次のとおりです。

cryptomount -u 99cc765bd11945e7a922436c76cfd505
set root='lvmid/vlNbhc-Fecj-bwew-vg7J-nnuy-3aCy-zl395m/Co88vm-3aMx-939B-ehD7-ijFW-Hw7p-z3gWUW'

したがって、update-grubはLVMベースのファイルシステムから何かを読み取る準備をしているようです。それは何でしょうか?

font="/usr/share/grub/unicode.pf2"

ああ、それは/ usr/share/grubから直接フォントファイルを読みたいのです。

コメントによると、この部分は/etc/grub.d/00_headerファイルからのものです。 GRUB内部機能テスト変数feature_default_font_pathyに設定されている場合、ここでLUKSパスワードプロンプトを回避して、ブロック全体がスキップされます。

別の同様のブロックは### BEGIN /etc/grub.d/05_debian_theme ###コメントの直後にあります。これにより、暗号化されたディスクが確実にマウントされ、...

if background_image /usr/share/desktop-base/kali-theme/grub/grub-16x9.png; then
  set color_normal=white/black
  set color_highlight=black/white

... GRUBメニューの背景画像を/usr/share/desktop-base/からロードします。

残りのブロック(および/etc/grub.d/の対応する構成スニペットファイル)は、暗号化されたディスクへのアクセスに依存していないようです。

したがって、GRUBメニューの前にある余分なLUKSプロンプトを取り除くには、グラフィカルメニューを無効にして、GRUBのより単純な外観に戻すか、/etc/grub.d/00_header/etc/grub.d/05_debian_theme、それらが提供する構成オプションを見つけます。適切なファイルをコピーし、/etc/default/grubの適切なオプションを使用してGRUB必要なものを見つけることができます別の場所のフォントと画像なので、GRUBはメニューを表示するためだけに暗号化されたディスクを読み取る必要はありません。

フォントファイルを/usr/share/grub/unicode.pf2からたとえばにコピーできるようです。 /boot/grub/unicode.pf2、次にGRUB_FONT=/boot/grub/unicode.pf2/etc/default/grubに設定します。

同様に、バックグラウンドファイルを/usr/share/desktop-base/kali-theme/grub/grub-16x9.pngから/boot/grub/grub-16x9.pngにコピーしてから、GRUB_BACKGROUND=/boot/grub/grub-16x9.png/etc/default/grubに設定できます。

これらの構成を行った後、update-grubを実行して、再生成されたGRUB構成がかなりシンプルになり、cryptmountコマンドが含まれていないことを確認できます。

3
telcoM