使用 Ubuntu 19.10 ZFS 根文件系统恢复损坏的 GRUB

使用 Ubuntu 19.10 ZFS 根文件系统恢复损坏的 GRUB

在安全启动出现一系列故障(尝试签署 VMWare Player 内核模块)之后,GRUB 停止显示与 Ubuntu 19.10 相对应的条目,安装为 ZFS 根目录(默认 19.10 安装程序选项),默认在系统设置中启动。

我能够通过执行以下操作来启动我的系统(根据记忆;下面的一些细节可能有误)。

在 GRUB shell 中,我输入

set root=(hd0,gptXXX)
linux /BOOT/ubuntu_YYY/@/vmlinuz root=ZFS=rpool/ROOT/ubuntu_YYY boot=zfs
initrd /BOOT/ubuntu_YYY/@/initrd.img
boot

为了找到gptXXX要使用的分区,我运行了ls,然后ls (hd0,gptXXX)/直到找到启动文件。ubuntu_YYY似乎是 Ubuntu 系统的唯一标识符。我通过 找到了ls(hd0,gptXXX)/BOOT

ls从 GRUB 进行操作时,我遇到了一些有关 的错误compression algorithm 115 not supported

我没有安装任何其他操作系统,并且暂时禁用了安全启动。

我现在想知道要采取什么步骤才能恢复 GRUB 引导加载程序的正确运行。如果我无法修复它,我可能会最终安装一个新的 20.04 LTS 副本。但至少上述内容可以帮助任何陷入同样境地的人。

编辑:我已经compression=lz4设置rpool(但是不是bpool,这可能是相关的。

答案1

由于上述命令可以启动它,因此第一个也是最直接的方法是将它们插入到您的/boot/grub/grub.cfg(标准位置),如下所示:

Menuentry 'my Ubuntu installation' {
insmod zfs
insmod part_gpt
insmod (whatever)
 ... here go your commands (without "boot")...
}

最有可能的是,如果编辑grub.cfg已经足够,您甚至可能不需要insmod那里的内容。无论如何,查看一下已经存在的条目(由系统安装创建)不会有什么坏处。

或者您可以选择使用该命令重新安装 grub grub-install,假设您的(hd0)/dev/sdagrub-install /dev/sda

相关内容