grub-install:错误:不会继续使用黑名单

grub-install:错误:不会继续使用黑名单

跟进将 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'.

相关内容