ZFS:i/o 错误 - 所有块副本不可用

ZFS:i/o 错误 - 所有块副本不可用

我正在尝试在我的 SunFire440 机器上安装 FreeBSD Sparc64,我按照教程在 ZFS 上安装 FreeBSD Root,使用这个 教程链接。我所做的唯一更改是,我尝试使用四个内部磁盘配置 raidz1,而不是使用镜像。安装时一切正常,但安装后启动时显示以下错误:-

ZFS: i/o error - all block copies unavailable
ZFS: can't read MOS object directory
ZFS: can't find root filesystem 

FreeBSD/sparc64 ZFS enabled bootstrap loader, Revision 1.0
([email protected], Wed Nov 12 03:13:59 UTC 2014)

bootpath="" 

can't load 'kernel'

有任何想法吗?

答案1

首先,在 Sun 硬件上安装 FreeBSD 是严重的犯罪行为,在某些国家你可能会被斩首(不过,我认为在楚科奇的集中营里坐几年牢就足够了)!

其次,10.x 版本系列包含一个bsdinstall可以在 ZFS 根上安装 FreeBSD 的功能,无需手动模拟日出。

第三,造成这种情况的原因可能有以下几个:

a) 你的池子坏了,确实没有足够的可用数据

b) SunFire 440 BIOS 无法访问引导块,无论它们位于何处,例如超过 1 Tb、超过 2 Tb 或任何其他大小

c)gptzfsboot无法这样做。

d) 内核 ZFS 代码无法读取和理解虚拟设备标签(有时会发生)本身。

我建议您从 USB 启动并导入此池。如果导入成功,这将排除 a)。其余部分由您自行调查,例如,您可以创建一个单独的混合 /boot 切片来启动内核和/或libzfs,以及许多其他选项(重新切片磁盘、缩小根池等等)。我自己也遇到过类似的问题,从现在起我必须使用 USB 启动。我正在考虑创建较小的根池,因为我怀疑我的 GigaByte MB BIOS。

请记住:Solaris ZFS 实现仍然更好!

相关内容