由于某种原因,在我的系统上运行 11.4 引导代码失败。这正在调查中[1],但与此同时,我正在尝试将我的系统恢复到 11.3。
我正在尝试找出恢复旧引导代码的正确方法。我想这最终会是对 的一些调用gpart bootcode -b xxx ...
,但我不确定什么是正确的。或者也许这就是bsdlabel -b ...
所需要的?
以下是事件的简要时间表:
- 我有一个正在运行的 11.3 系统
- 编译11.4源码(
make buildworld
,make kernel
) - 成功重启进入11.4内核
- 准备安装新用户区 (
adjkerntz -i
,mergemaster -p
) - 安装新用户区 (
make installworld
)- 我的理解是,这也适用于任何新的引导代码。真的吗?我还没有从 makefile 中找到可以做到这一点的确切调用。
- 重启进入新系统
- 失败- 出现“BTX 已停止”错误
因此,当我试图找出实际问题时,我首先关心的是获得系统可启动增益。
我试图避免“从备份重新安装”核选项。我已经知道该怎么做了(:
相反,我试图让启动代码再次工作。
- 也许我可以手动安装 11.3 启动代码并仍然运行我的 11.4 系统?
- 我还保存着11.3的源代码;也许我可以重新安装它?
任何意见,将不胜感激。
答案1
错误链接中有一些血淋淋的细节,但本质上,我只需要这样做:
- 通过 LiveCD USB 记忆棒启动
- 在那里,跑
cp /boot/loader MOUNTPOINT/boot/loader
- 其中 MOUNTPOINT 是真实系统的根分区,安装在 LiveCD 内。所以,没有 MBR 更新或任何东西,它只是 /boot/loader 中需要更新的普通文件。
这样(在弄清楚 BIOS 选择了错误的驱动器之后),它又回到了在 11.4 系统中正确引导的状态。
不过,仍然需要弄清楚回归是什么时候引入的——请参阅错误报告以了解该进展。