启动时,我点击“grub rescue”,可以使用“set root=(hd1,gpt1) ...”
启动,启动后,运行“sudo update-grub”,然后运行“sudo grub-install /dev/sda”,但出现以下错误
在 /boot/grub/grub.cfg 上,我可以看到“set root='hd0,gpt1'”,
所以如果我可以将其修改为 hd1,我想我的启动问题就会得到解决。
(我已经检查了 /etc/grub.d/* 和 /etc/default/grub,但我没有找到如何编辑 hd(x))
我的 cmos 显示“UEFI”仅供参考,
请提供意见。
sudo grub-install /dev/sda
Installing for i386-pc platform.
**grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.**
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
**grub-install: error: will not proceed with blocklists.**
Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: EB47D80D-DD29-474D-8267-A6CFE06F828A
Device Start End Sectors Size Type
/dev/sda1 5078124544 5860532223 782407680 373.1G Linux filesystem
/dev/sda2 2048 62500863 62498816 29.8G Linux swap
/dev/sda3 62500864 5078124543 5015623680 2.3T Linux filesystem
答案1
如果您想使用 UEFI 启动模式,那么您将错误的 GRUB 变体安装到了错误的位置。
UEFI 系统不要将其引导加载程序直接保存在 /dev/sda 的“MBR”中。它们需要一个特殊的分区,称为“EFI 系统分区”,其中包含组成引导加载程序的文件。(例如,安装 GRUB2 会将“grubx64.efi”文件复制到该分区。)
因此,您必须首先创建该分区,在 fdisk 中设置正确的“分区类型”,使用正确的文件系统对其进行格式化,然后将其挂载在 /boot/efi 等上。
(EFI 系统分区应为 ~200 MB,分区类型C12A7328-F81F-11D2-BA4B-00A0C93EC93B
为 GPT 磁盘,并且必须使用 格式化为 FAT32 mkfs.vfat
。它可以位于磁盘上的任何位置,因此只需缩小现有分区之一即可腾出一些空间。)
创建并挂载分区后,告诉grub 安装将所有内容安装到 /boot/efi 中,然后不要指定磁盘名称:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable
更详细的说明可以在这里找到:
注意:显示错误消息是因为grub 安装当前正在尝试为 BIOS 安装 GRUB2,而不是为 UEFI 安装。这可能是因为您的系统当前已在“传统模式”下启动(例如从与 UEFI 不兼容的 .iso 映像启动)。
如果您遇到这种情况但希望主系统使用 UEFI,请忽略错误消息并按照上述说明操作。您可能需要--removable
首先使用 grub-install,然后重新启动进入新安装的系统,并安装 grub再次(但这次没有--removable
)按应有的方式设置 NVRAM 条目。
但是,如果你确实想安装 BIOS GRUB 版本,你仍然由于 BIOS+GPT 组合,需要一个特殊分区。这次,“BIOS 启动分区”(顾名思义,仅在 BIOS 模式下使用)需要约 2 MB,未格式化,并且 - 我认为 - 位于磁盘的前 2 TiB 内。
再次强调,更多信息可在此处找到: