如何用损坏的启动代码启动 FreeBSD 系统?

如何用损坏的启动代码启动 FreeBSD 系统?

我有一个 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

相关内容