症状

症状

症状

  • 内核没有更新。也就是说重启后系统仍然使用旧内核。
  • 对 GRUB 配置的更改未应用。
  • 安装新内核不适用。
  • 由于未导入,bpool 丢失。

问题

这是由于从安装时到症状开始出现时磁盘设备名称的变化造成的。例如,如果安装时安装 Ubuntu 的磁盘是 /dev/sda,然后添加了另一个磁盘,则第一个磁盘可以变成 /dev/sdb。Ubuntu 20.04 安装介质附带的 Ubiquity 安装程序版本在创建 ZFS 池时使用 /dev/sdX 名称。这意味着和是rpoolbpoolvdevs 创建的/dev/sdaX。一旦这些在安装后发生变化,就无法导入非根池,因为原始 vdev ID 不再包含 ZFS 池。这导致在启动 Ubuntu 时没有挂载 GRUB 使用的 /boot 文件系统。相反,在内核更新或安装期间写入 /boot 的文件最终会放在 /boot 中,而rpoolGRUB 在启动期间不会使用它。等等。

答案1

当我最近遇到这个问题时,运行时bpool在线状态丢失

sudo zpool status

所以我这样做

首先我bpool像这样导入

sudo zpool import -d /dev/sdX bpool

我之前的 bpool 处于/dev/sdb6 这样运行时zpool status它说rpool并且bpool在线,然后我重新安装最后一个图像像这样强制在空的 /boot 上写入

就我而言

sudo apt --reinstall install linux-image-5.4.0-52-generic

然后重启,似乎新内核已更新成功

就是这样

我希望这对别人有帮助

巴西雷亚尔

答案2

解决方案

安装后

我不确定安装后是否可以可靠地修复此问题。我发现,如果我bpool使用正确的 vdev 导入,它会显示出来,并在后续重新启动时挂载,因为它会被记住在池缓存中。似乎可以在导入时更改 ZFS vdev 名称,但我不确定具体如何操作,所以我不建议这样做。ZFS 更熟练的人可以建议正确的命令序列,可能涉及zpool import ... -d ...

安装时

Ubiquity 中负责代码块中已经有一个修复程序,但它不是第一个 20.04 媒体附带的当前版本的一部分。不过,您可以在启动 Live 桌面环境后获取它。

  1. 从 Ubuntu 安装媒体启动。
  2. 选择Try Ubuntu without installing
  3. 抓住那个固定的zsys-setup
sudo wget -O /usr/share/ubiquity/zsys-setup https://git.launchpad.net/ubiquity/plain/scripts/zsys-setup?h=20.10.2
  1. 运行 Ubuntu 安装程序并正常在 ZFS(实验)上安装。

相关内容