【发布时间】:2017-05-29 05:30:03
【问题描述】:
我在 ZFS 镜像模式下设置了几个新磁盘(使用 Ubuntu-16.04-Root-on-ZFS。遗憾的是,我搞砸了一些东西(在 grub 安装期间),不得不重新开始。当我重新启动时(该文档中的步骤 6.5)我出现错误:
cannot import 'rpool': more than one matching pool
import by numeric ID instead
它让我进入了 initramfs shell。确实有两个 rpool,但其中一个坏了……大概是原始安装中的那个。我能够使用它的 ID 作为 rpoolgood 导入“好”的 rpool 并重新导出它。
但是我无法导入“损坏的”rpool(通过名称或 ID)。我想做的就是摧毁它。我的猜测是我应该在创建新分区之前将非数据分区清零(步骤 2.2)。我还没有真正的数据,所以我可以(并且可能应该)再次进行安装(首先将分区归零)。
在重新安装之前,我很好奇是否有办法炸毁那个坏/伪造的 rpool。
根据要求,我附上了重新导出 rpoolgood 后“zfs 导入”的屏幕截图。 IIRC,我在安装 grub 时不小心指定了一个分区而不是磁盘。当我意识到我的错误时,我只在其中一个磁盘上完成了它。
【问题讨论】:
-
我假设“坏”池使用相同的物理设备?命令是否: zpool import -D 列出任何已损坏的池?
-
运行 zdb 以查看您的 zpool.cache 文件是否看起来很奇怪,可能(或可能不会)对问题有所了解。如果看起来有什么不妥,删除 /etc/zfs/zpool.cache 应该是安全的,然后运行 zpool set cachefile=/etc/zfs/zpool.cache
来创建一个新的。虽然我认为这是值得做的,但我不认为这是最终的解决方案。 -
import -D 没有显示任何已损坏的文件(这并不奇怪,因为重新安装是在 zfs 工具集的范围之外完成的)。我用 zdb 尝试了几个查询,但并没有给我更多的洞察力(但这可能与我缺乏 zfs 经验有关)。顺便说一句,我将 zfs 用于我的根文件系统,因此 /etc/zfs/... 充其量感觉就像是鸡和蛋的事情...在最坏的情况下是不合理的,因为 /etc/ 在导入 rpool 之前不存在。
-
我想我有一个简单的(?)解决方案,但再提供一条信息会有所帮助。 zpool import 的输出是什么,没有池名称,并且在您运行命令时让我知道是否导入了好的 rpool。
-
根据您的要求附上屏幕截图。感谢您的任何想法。
标签: zfs