跟进将 Grub2 安装到 PBR,并提出一个新问题以提供 boot-info-summary 的链接,如@mook765 所述:
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
为了您的方便,这里是启动信息摘要中的相关部分:
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 都可以,因为我的所有活动分区都是主分区,而不是扩展分区。但我只是保留了我的选择。 - 任何硬盘的活动分区都由 引导
extlinux
。从那里,我从其引导菜单中链式加载我想要引导的任何内容。 - 正常的 Linux 分区
extlinux
也由 启动,但不知何故,我无法使其/dev/sdc5
由 启动extlinux
,因此我切换到grub2
,并且之前它一直启动正常。 - 当我尝试使 USB 分区可启动时,问题就开始了,“将 grub2 作为引导加载程序从分区 B 中的操作系统安装到分区 A 中的操作系统”我之前的问题中提到过。
- 现在分区 B 和分区 A 都不再可启动。
- 为了全面披露,分区 B 和分区 A 都是从我精心安装和修剪的 LUbuntu 系统恢复的。这“恢复”是我无法通过使其可启动的主要原因
extlinux
,我怀疑,但无法证明。 - 旧版 grub 是一个过时的分区/操作系统,我已经很多年甚至 10 多年没有碰过它了,但是,
- grub4dos 是我在 USB 磁盘上新安装的。它是可启动的,它允许我使用我熟悉的简单语法将启动链接到任何我想要的启动。也就是说,它与我当前的系统启动方式无关,因为我可能随时将其分离。
答案1
我在尝试将 Grub2 安装在使用映像文件作为硬盘的 Virtualbox VM 中时遇到此错误。解决方案是使用 grub-install 的 --force 选项。尽管 grub 抱怨使用阻止列表,但 VM 现在可以正常启动。
sudo grub-install /dev/sda --force
sudo update-grub
答案2
grub-install: error: will not proceed with blocklists
我在 Linode VM 上从 19.10 升级到 20.04 时遇到了这个问题,解决办法是忽略错误并运行
grub-update
并忽略 grub-install 错误。似乎启动正常。
答案3
创建 grub-install 期望的 1MB 分区。它必须在 GParted 中将其标记为“bios_grub”是主要的(其他方法已记录这里)
重新运行 grub-install 并确认您现在看到类似以下内容的输出:
grub-install: Info: setting the root device to `hostdisk//dev/sda,gpt6'.