![如何用损坏的启动代码启动 FreeBSD 系统?](https://linux22.com/image/3702/%E5%A6%82%E4%BD%95%E7%94%A8%E6%8D%9F%E5%9D%8F%E7%9A%84%E5%90%AF%E5%8A%A8%E4%BB%A3%E7%A0%81%E5%90%AF%E5%8A%A8%20FreeBSD%20%E7%B3%BB%E7%BB%9F%EF%BC%9F.png)
我有一个 HDD(或 SSD,或闪存驱动器),上面安装了 FreeBSD,不知何故我破坏了启动代码(MBR 的前 446 字节)。我怎样才能启动这个 FreeBSD?
答案1
假设有 512 字节的类似 DOS 的 MBR,并且您已经用一些废话替换了它的前 446 字节(零点或只是/dev/urandom
输出),或以其他方式损坏引导代码。在这种情况下,MBR 分区表就在其位置,但系统无法从此设备启动。
想法是使用其他类似 BSD 的系统的加载程序来引导您的设备和内核。
- 您应该开始从另一个 HDD、CD、闪存驱动器、PXE、通过 BMC 的虚拟媒体启动任何类似 BSD 的操作系统(我已尝试使用 FreeBSD 6.0、7.0、8.0、8.1、8.2、8.3、8.4、9.2 和 Frenzy 1.4) /KVM等
- 在启动过程中,点击加载器屏幕上的“Escape to loader提示”选项(在较旧的 FreeBSD 系统中为“6”,在 FreeBSD 9 中为“3”,在 Frenzy 中为“8”)
- 通过键入卸载内核及其模块
unload
disk0s1a
输入以下命令找出您想要启动 FreeBSD 的设备(通常类似于)lsdev
- 通过键入将此设备设置为“当前”
set currdev="disk0s1a"
- 通过键入从您的设备重新读取
loder.conf
(以确保所有内核调整和黑客都适用)read-conf boot/loader.conf
- 启动操作系统并享受 - 只需键入
boot-conf
当您的操作系统启动时,您可以修复引导代码。我使用sysinstall
它(自定义 -> 分区、、、W(“安装 FreeBSD 启动管理器”)、、、、、),但自 9.0-RELEASE<Yes>
起 已弃用,并自 10.0-RELEASE 起从基础中删除。另一种方法是使用存储在 中的备份来从中提取引导代码:BootMgr
<OK>
Q<Exit>
<Exit Install>
/boot
# gpart bootcode -b /boot/mbr /dev/yourbootdevice