
Я установил FreeBSD 9.1 на второй раздел внешнего жесткого диска и не могу загрузить с него компьютер. FreeBSD был установлен с помощью образа FreeBSD memstick, записанного на USB-флешку.
Первый раздел — это раздел ntfs, в котором находится моя резервная копия. Когда мне потребовалась установка FreeBSD, я «сжал» первый раздел (в Windows), чтобы освободить место для установки FreeBSD, а затем установил FreeBSD. Он так и не попросил установить менеджер загрузки.
Когда я впервые попытался загрузиться, это не удалось без сообщения об ошибке (возможно, не был установлен менеджер загрузки). Поэтому я загрузился с флэш-накопителя и выполнил команду boot0cfg -B /dev/ad1)
(ad1 относится к внешнему жесткому диску). Теперь при загрузке отображается меню вроде:
F1 Win
F2 FreeBSD
F5 First disk
и при нажатии F1 или F2 появляется сообщение об ошибке: "BOOTMGR is missing". В чем может быть проблема?
Пожалуйста, помогите мне загрузить мою установку FreeBSD.
решение1
Оба жестких диска ad0 и ad1 должны иметь загрузочный код boot0, а слайс (раздел MBR) ad1, на котором находится FreeBSD, должен иметь boot1. Это несколько сбивает с толку, но является результатом давнего архитектурного решения использовать метки дисков bsd внутри разделов MBR.
Boot0 действительно маленький и динамичный, что позволяет другим ОС, уважаемым загрузчикам, продолжать работу. По сути, boot0 находится в MBR. Boot0 не может читать метки дисков, поэтому он просто загружает первый блок(и) раздела(слайса) и переходит к выполнению этого кода.
Boot1 — это место, где действительно запускается специфичный для FreeBSD код, память настроена в режимах, подходящих для ядра FreeBSD, а код boot1 может читать метку диска BSD, находить / и даже читать файловую систему достаточно, чтобы найти файл ядра по имени. Boot1 довольно сложен и выполняет множество вещей, включая загрузку большего количества загрузочного кода, модулей, ядра и запуск выполнения ядра.
Я предполагаю, что у вас примерно такая структура диска:
ad0 - внутренний жесткий диск (boot0)
ad0s1 - первый и единственный раздел (срез) внутреннего жесткого диска, C:\
ad1 - внешний жесткий диск (boot0)
ad1s0 - раздел (слайс) FAT или NTFS на внешнем диске, D:\
ad1s1 - раздел (слайс) FreeBSD (boot1)
ad1s1a - FreeBSD /
ad1s1b - своп FreeBSD
ad1s1c - FreeBSD /usr
...
Я отметил, где вам нужны загрузчики boot0 и boot1.
Выполнение этого вручную дает ценные уроки о том, как загружается FreeBSD. Следующие уроки на очереди — настройка среды /boot/, изменение пользовательского образа и выбор и настройка модулей ядра перед загрузкой самого ядра.
Я предполагаю, что вы делаете это в основном в учебных целях и вам может быть интересно разобрать установку. NanoBSD стоит рассмотреть.