我正在尝试在我的 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 实现仍然更好!