更換主機板後如何使用 LUKS 加密的 LVM 分區恢復 grub?
我在帶有 EFI bios 的聯想 X280 筆記本上安裝了雙啟動 Windows 10 和 Kali Linux x64(基於 Debian 9 x64 的 Linux 發行版)。Windows 10 使用帶密碼的 BitLocker(不是 TPM)。Linux 使用 LUKS 加密。我有單獨創建的 Kali /boot 分區。我不得不在服務中更換主機板。在此之後只有 Windows 啟動。格魯布不見了。所以我嘗試從 Live 系統(從 USB 快閃記憶體驅動器)重新安裝 grub:
- 我手動加密了 LUKS 分區:
cryptsetup luksOpen /dev/nvme0n1p4 disk
- 我安裝了分區:
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
- 安裝和更新 grub:
chroot /mnt grub-install /dev/nvme0n1 update-grub
成功安裝 grub 後,打開筆記型電腦後,我看到黑屏和 LUKS 密碼,當我輸入正確密碼時,我在 Grub 菜單中只看到 Windows 啟動管理器,而不是 Kali Linux。
我的驅動器是這樣分區的:
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 添加引導項?請問在grub螢幕之前我用LUKS密碼請求跳過黑屏的方法是什麼?(在更換主機板之前,我直接看到 grub 螢幕)。
閱讀您的
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_path
設置為y
,則將跳過整個塊,避免此處出現 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
and/etc/grub.d/05_debian_theme
,找出它們提供的配置選項。然後您可以複製適當的文件並使用適當的選項/etc/default/grub
使 GRUB 從另一個位置找到所需的字型和圖像,因此 GRUB 不需要讀取加密磁碟來顯示菜單。看起來您可以將字型檔從復製
/usr/share/grub/unicode.pf2
到 eg/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
命令。