我有一个双启动系统,Windows 10 和 Ubuntu Unity 23.10。我的主要系统是 Ubuntu 系统,但有时我在 Windows 上需要做一些事情。
目前我正在使用 BIOS/EFI 快速启动菜单进行切换。
如何在 GRUB 中添加启动 Windows 分区/操作系统的“Windows”条目?两个系统都有专用的 ssd。Windows = sda,Ubuntu = sdb。
我尝试添加 Windows 条目/etc/grub.d/40_custom
并使用以下命令重建 grub.cfg update-grub
:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
#menuentry "Windows 10" {
# insmod part_msdos
# insmod ntfs
# set root='(hd0,msdos1)' # Anpassen Sie dies entsprechend Ihrer Windows-Partition
# chainloader +1
#}
#76EC965EEC961887
#sudo blkid /dev/sda1
menuentry 'Windows 10' {
search --fs-uuid --no-floppy --set=root 76EC965EEC961887
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
上述配置的问题在于,它显示Error: File >/EFI/Microsoft/Boot/bootmgfw.efi< not found
。(答案来自这里:https://askubuntu.com/a/977251)
被评论的条目:
#menuentry "Windows 10" {
# insmod part_msdos
# insmod ntfs
# set root='(hd0,msdos1)'
# chainloader +1
#}
我需要将 grub 指向哪里才能启动 Bitlocker 加密的 Windows 操作系统?我没有使用任何 TPM 模块,只使用密码/密码短语。
来自这里的问题/答案如何将 Windows 10 添加到 grub 启动加载程序?不处理 bitlocker 加密。
blkid 输出:
/dev/mapper/sdb3_crypt: UUID="Qa4U6U-NHWZ-43ls-yA4d-cjpe-msbA-LqFRCN" TYPE="LVM2_member"
/dev/mapper/vgubuntu--unity-swap_1: UUID="0011aea7-ca50-4b2c-a9f4-e3dca2d4a024" TYPE="swap"
/dev/mapper/vgubuntu--unity-root: UUID="b293f930-373e-4733-96f7-7859ec008691" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sdb2: UUID="04d5a3a1-dd17-449b-a692-f4a4a24a11b7" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="9f5bcccd-6fe6-471d-aba2-8e44de44fbf4"
/dev/sdb3: UUID="84a67fde-1ef2-41d1-94b7-eacb88ab08ab" TYPE="crypto_LUKS" PARTUUID="8eba46c6-88dc-4f02-aa71-2ea90625d47d"
/dev/sdb1: UUID="4C36-1F97" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="c1bcdc04-4313-40dd-ba2a-27ac5c3d9423"
/dev/sda2: TYPE="BitLocker" PARTUUID="8b4480f4-02"
/dev/sda3: BLOCK_SIZE="512" UUID="3E564DDA564D9395" TYPE="ntfs" PARTUUID="8b4480f4-03"
/dev/sda1: LABEL="System-reserviert" BLOCK_SIZE="512" UUID="76EC965EEC961887" TYPE="ntfs" PARTUUID="8b4480f4-01"
我尝试使用 PARTUUID 8b4480f4-02,但失败了,提示:
Error: no such device: 8b4480f4-02
Error: File >/EFI/Microsoft/Boot/bootmgfw.efi< not found
答案1
目前我正在使用 BIOS/EFI 快速启动菜单进行切换。
我建议你继续这样做。当 BitLocker 配置为使用 TPM 和安全启动(即 PCR7 绑定模式)时,它不喜欢任何未经 Microsoft 签名的中介。
除了启动链中的一次性更改(这将需要 BitLocker 恢复密钥)之外,它还将使用更脆弱的 PCR4 绑定模式,该模式将因每次 GRUB 更新而失效(并且也容易因 Windows 更新而失效),因此您将输入 BitLocker 恢复密钥很多。(当然,如果您使用带有密码的 BitLocker,这没有任何区别;它只会像平常一样继续要求输入密码。)
你可以运行efibootmgr --bootnext XXXX
在 Ubuntu 内部预先设置 EFI 一次直接启动进入 Windows,而无需手动摆弄 EFI 启动菜单。
上述配置的问题是,它显示错误:未找到文件 >/EFI/Microsoft/Boot/bootmgfw.efi<。(答案来自这里:https://askubuntu.com/a/977251)
我猜你指定了错误的分区作为 $root – 你指定的 UUID 看起来很像 NTFS UUID,而且我怀疑您的 EFI 系统分区是 NTFS。几乎总是 FAT32(并且正如您在链接的答案中所看到的,FAT32 UUID 只有一半的长度)。
不要假设 /dev/sda1 是正确的,尝试在所有分区中查找实际文件(或目录EFI
)并使用找到的分区的 UUID。
如果分区实际上是 NTFS,那么更有可能的是不是一个 EFI 启动分区,但一个用于“传统”BIOS(这可以解释 Bootmgfw.efi 的缺失)。我不是当然如果您可以从基于 EFI 的启动管理器内部进行链式加载,但无论哪种方式,chainloader +1
在这种情况下您都需要“BIOS VBR 链式加载”方法。