我安装了 root zfs,一切运行良好。关机后,我无法重新启动,并卡在 initrd shell 提示符处。
在同一个 SSD 上从头开始重新安装。重新启动。效果很好。应用 Ubuntu 更新,然后运行 taskel 来添加更多桌面 gui 环境。(与我之前失败时所做的相同...)嗯。似乎可以重复。有没有人有一套关于获取此可启动项的很好的笔记。尝试在 19.10 安装下安装这些东西——但遇到了问题。zpool 在那里,看起来不错,可以上线。我需要弄清楚如何更改安装点,并修复这些东西以便它再次启动。
我知道这是实验性的——还有人看到吗?
账单
答案1
该错误中有一个很明显的地方我之前没有过多考虑:NEW grub.cfg
( /boot/grub/grub.cfg.new
) 的第 180 行出现了错误。
该行有一个额外的}
。因此我删除了该行,然后运行
grub-script-check grub.cfg.new
并且 - 没有错误。
于是我复制grub.cfg.new
并grub.cfg
重新启动;现在一切正常。但是,update-grub
每次运行时似乎仍会添加额外的花括号。
答案2
是的,我在两次不同的安装中都遇到了类似的问题。第一次编辑 /etc/default/grub 以从启动中删除“quiet”和“splash”时,它工作正常。在某个时候,某个进程再次重建了 grub 配置,我遇到了和你一模一样的问题。后续尝试运行 update-grub 总是会失败,并出现语法错误警告,即使我恢复了默认的 /etc/default/grub:
Adding boot menu entry for EFI firmware configuration
error: syntax error.
error: Incorrect command.
error: syntax error.
Syntax error at line 180
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub/grub.cfg.new file attached.
我使用 Solaris 已有多年,包括最新版本,因此我对使用 ZFS 非常熟悉。我也在生产 CentOS 系统上运行它(不是以 root 身份运行)。它在那里很稳定,但同样——没有 root 池。
至于如何修复它,我记得如果在运行 update-grub 时失败或之前尝试运行更新 grub,则会出现旧的或新的 grub.cfg,那么如何恢复它。
假设您的池在 sda 上。在我的系统上,/boot/grub 默认位于 sda2 上。
启动实时 CD/USB 并进入“尝试”选项,但是按照其措辞,不要安装。
打开命令提示符,然后输入“mount /dev/sda2 /mnt”。
cd /mnt,然后希望你能找到另一个有效的 grub.cfg。
对我来说,它是最大的文件——新文件通常只有原始文件的一半(原始文件为 7.1K),而且它们根本不起作用。将其复制到 grub.cfg 并重新启动。
这听起来类似于下面的错误,但安装 gawk 并没有为我修复它。它据称已经修复,而且可能不是真正的问题:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1834095