Làm thế nào để khởi động hệ thống FreeBSD với mã khởi động bị hỏng?


8

Tôi có một ổ cứng (hoặc SSD, hoặc ổ đĩa flash) được cài đặt FreeBSD trên đó và bằng cách nào đó tôi đã phá vỡ mã khởi động (đầu tiên là 446 byte MBR). Làm thế nào tôi có thể khởi động vào FreeBSD này?

Câu trả lời:


13

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.

  • Bạn nên bắt đầu khởi động vào bất kỳ HĐH nào giống BSD (Tôi đã thử với FreeBSD 6.0, 7.0, 8.0, 8.1, 8.2, 8.3, 8.4, 9.2 và Frenzy 1.4) từ một ổ cứng, CD, ổ đĩa flash, PXE, phương tiện ảo khác qua BMC / KVM, v.v.
  • Trong quá trình khởi động, nhấn tùy chọn "Escape to loader prompt" trên màn hình của trình tải (nó sẽ là "6" trong các hệ thống FreeBSD cũ hơn, "3" trong FreeBSD 9, "8" trong Frenzy)
  • Dỡ bỏ kernel và các mô-đun bằng cách gõ unload
  • Tìm hiểu thiết bị bạn muốn khởi động FreeBSD của bạn (thường là một cái gì đó như disk0s1a) bằng cách nhậplsdev
  • Đặt thiết bị này "hiện tại" bằng cách gõ set currdev="disk0s1a"
  • Đọc lại loder.conftừ 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
  • Khởi động HĐH và tận hưởng - chỉ cần gõ 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 sysinstallcho 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.