我知道网上有一些关于此问题的帖子,但我的问题似乎很特殊。
最近,我的启动盘(SSD)坏了,我刚刚重建了它。如果有机会,我想我可以继续使用 ZFS 启动设备(即“ZFS 上的根”)来构建它。我安装了gptzfsboot
并pmbr
使用gpart bootcode
。但是当我尝试启动时,我收到了众所周知的“BTX 停止”错误消息,其中包含寄存器的内容。在几次尝试中,出现了一条消息,内容类似于“找不到 ZFS 卷”。
我读到这被认为是由于 BIOS 和 FreeBSD 之间的某种交互造成的,所以我尝试进入 BIOS 进行调整。不幸的是,看起来主板或 BIOS 有问题,因为我无法访问菜单。但我能够从我的实时 USB 正常启动,主板似乎不太可能发生任何实质性变化,因为这与 SSD 故障是一个巨大的巧合。无论如何,我现在没有兴趣摆弄 BIOS,只想让系统恢复到原来的状态。
我运行的实时 USB 是 memstick 安装程序的副本,只是主分区被我自己安装的 FreeBSD 替换了。所以我认为它使用 UEFI,因为它的第一个分区是“efi”,但我没有手动设置它,所以我不确定它和我尝试从中启动的设备之间到底有什么区别。
由于我了解到我的 BTX 暂停问题可能与 ZFS 上的根有关,因此我决定尝试一种混合方法,即我有一个 UFS 根文件系统和一个 ZFS 池,用于从 fstab 挂载其他数据。但是,这会产生相同的 BTX 暂停错误。(不包含任何其他消息,就像以前偶尔会包含的那样,例如“找不到 ZFS 卷”)。此替代方案使用 gptboot 而不是 gptzfsboot(即gpart bootcode -b pmbr -p gptboot -i $index $device
)进行配置。
现在,为了完整性,我还要提一下另一件事,内核可能存在损坏(尽管可能性不大),因为由于原始设备损坏,我不得不有选择地重新安装内核中的几个模块。我认为这无关紧要,因为错误BTX halted
发生在加载程序中,而不是内核被触及之前。
由于实时 USB 工作正常,我的下一步将使用它作为“测试用例”,从我的启动设备上开始,逐步将我想要的内容添加到它,直到我找出导致错误的原因。我不确定如何设置 efi 启动,因为原始的、失败的 SSD 使用了 GPT(实际上它使用了 FreeBSD 网站上的“在 SSD 上启动”指南,我现在似乎找不到了),而且我从未设置过 efi。
然而,在我开始下一步之前,我希望得到一些关于正在发生的事情的意见,因为将驱动器以小的增量组合在一起将非常耗时,如果不浪费时间那就更好了。
谢谢