Câu trả lời:
Giả sử rằng có MBR giống như 512 byte của DOS và bạn đã thay thế 446 byte đầu tiên của nó bằng một số crap ( số không hoặc chỉ là /dev/urandom
đầu ra) hoặc làm hỏng mã theo cách khác. Trong trường hợp này, bảng phân vùng MBR được đặt đúng chỗ, nhưng hệ thống không thể khởi động từ thiết bị này.
Ý tưởng là sử dụng trình tải của hệ thống giống như BSD khác để khởi động với thiết bị và hạt nhân của bạn.
unload
disk0s1a
) bằng cách nhậplsdev
set currdev="disk0s1a"
loder.conf
từ thiết bị của bạn (để chắc chắn rằng tất cả các điều chỉnh và hack nhân của bạn sẽ được áp dụng) bằng cách nhậpread-conf boot/loader.conf
boot-conf
Khi hệ điều hành của bạn khởi động, bạn có thể sửa chữa bootcode. Tôi sử dụng sysinstall
cho nó (tùy chỉnh -> Partition, W, <Yes>
, BootMgr
( "Cài đặt FreeBSD Boot Manager"), <OK>
, Q, <Exit>
, <Exit Install>
), nhưng nó bị phản đối từ 9.0-RELEASE và lấy ra từ cơ sở từ 10,0-CHÍ. Một cách khác là sử dụng sao lưu, lưu trữ trong /boot
, để trích xuất bootcode từ nó:
# gpart bootcode -b /boot/mbr /dev/yourbootdevice