按照@mook765,跟进将 Grub2 安装到 PBR,并打开一个新问题以提供引导信息摘要的链接:
http://paste.ubuntu.com/p/SnT6Tcdmqk/
问题又来了:
% grub-install /dev/sdc5
Installing for i386-pc platform.
grub-install: warning: File system `ext2' doesn't support embedding.
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
即,grub-install
拒绝继续使用阻止列表,说“文件系统'ext2'不支持嵌入”。但是,我的不是ext2
文件系统,而是ext4
,它不需要 fsck:
$ mount | grep /dev/sdc5
/dev/sdc5 on /mnt/osp type ext4 (rw,noatime,nodiratime,data=ordered)
% umount /dev/sdc5
umount: /dev/sdc5: not mounted.
% fsck.ext4 /dev/sdc5
e2fsck 1.44.1 (24-Mar-2018)
osp: clean, 115049/513072 files, 897251/2048287 blocks
为了您的方便,这里是 boot-info-summary 中的相关部分:
sdc5: __________________________________________________________________________
File system: ext4
Boot sector type: Grub2 (v1.99-2.00)
Boot sector info: Grub2 (v1.99-2.00) is installed in the boot sector of
sdc5 and looks at sector 34172346 of the same hard
drive for core.img, but core.img can not be found at
this location.
Operating System: Ubuntu 18.04.2 LTS
Boot files: /boot/grub/grub.cfg /etc/fstab
/boot/extlinux/extlinux.conf
/boot/grub/i386-pc/core.img
修正:
好吧,让我解释一下我的配置。
- 我不用
lilo
来启动我的系统。我放入 mbr 的唯一原因lilo
是,它具有能够直接从扩展分区引导的优点,而不是仅从主分区引导。 - 是的,我有 4 个 MBR,即 4 个 HD,但所有 HD 的设置都相同——它将从活动分区启动,
*
在fdisk -l
输出中显示为“”,这要归功于 mbr 中的 lilo。事实上,任何普通的 MBR 都可以,因为我所有的活动分区都是主分区,而不是扩展分区。但我只是保持我的选择开放。 - 任何 HD 的活动分区都由
extlinux
. 从那里,我从它的启动菜单链接加载我想要启动的任何内容。 - 正常的 Linux 分区也可以通过 引导
extlinux
,但不知怎的,我无法通过/dev/sdc5
引导extlinux
,所以我切换到grub2
,它之前一直可以正常引导。 - 当我尝试使 USB 分区可引导时,问题就开始了,在我之前的问题中,“将 grub2 作为引导加载程序从分区 B 中的操作系统安装到分区 A 上的操作系统”。
- 现在分区 B 和分区 A 都不能再启动了。
- 为了全面披露,分区 B 和分区 A 都是从我仔细安装和修剪的 LUbuntu 系统恢复的。这种“恢复”是我无法通过 启动它的主要原因
extlinux
,我怀疑,但无法证明。 - Legacy grub 是一个陈旧的分区/操作系统,我已经多年甚至 10 多年没有接触过,但是,
- grub4dos 是我在 USB 磁盘上新安装的。它是可引导的,它允许我使用我理解的简单语法将引导链接到我想要的任何东西。即,它与我当前的系统启动方式无关,因为我可能随时将其分离。
我尝试在使用映像文件作为硬盘驱动器的 Virtualbox VM 中安装 Grub2 时遇到此错误。该解决方案原来是使用带有 grub-install 的 --force 选项。尽管 grub 抱怨使用阻止列表,但虚拟机现在可以正常启动。
grub-install: error: will not proceed with blocklists
在 Linode VM 上从 19.10 升级到 20.04 时出现在我面前,解决方案是忽略错误并运行并忽略 grub-install 错误。似乎启动正常。