RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
FreeBSD: загрузка со второго жесткого диска с помощью NTLDR [2010]
Долгое время я хотел попробовать FreeBSD в роли операционной системы для
рабочей станции, однако, постоянно находились банальные причины, оттягивающие
этот момент. Наконец-то дошли руки, в компьютер был установлен второй жесткий диск, при этом я, вопреки традициям, решил оставить
системные области первого жесткого диска с Windows XP, в частности MBR, в первозданном виде, т.к. эксперименты –
экспериментами, а работающий компьютер всегда должен быть под рукой.
Постановка задачи
Как известно, загрузчик Windows (NTLDR) позволяет загружать
операционные системы, которые не являются представителями семейства Windows NT,
с помощью специальных MBR-файлов. Так для запуска FreeBSD, которая установлена
на второй жесткий диск, NTLDR требуется MBR-файл, обеспечивающий передачу
управления MBR второго жесткого диска. В свою очередь, второй жесткий диск
должен содержать MBR, которая обеспечивает запуск FreeBSD со своего первого
слайса. Такой вариант загрузки FreeBSD нельзя организовать средствами sysinstall(8), однако, он может быть реализован с
помощью утилиты установки стандартного загрузчика FreeBSD boot0cfg (8).
Исходные данные
Имеется компьютер с двумя жесткими дисками, на первый из которых установлена
операционная система Windows XP (или любая другая операционная система семейства
Windows NT), на второй необходимо установить операционную систему FreeBSD, при
этом FreeBSD должна загружаться с помощью NTLDR. Во избежание путаницы следует
отметить, что диск с Windows XP определяется BIOS как disk 0,
FreeBSD видит его как устройство ad4, а диск для установки FreeBSD
– disk 1 и ad5, соответственно. Для выполнения
установки понадобится загрузочный CD или DVD диск FreeBSD и флешка или другой сменный носитель.
Установка FreeBSD без изменения MBR дисков
Для того, чтобы в процессе установки FreeBSD sysinstall не
изменила MBR жестких дисков, на вопрос Install Boot Manager for drive
ad5 необходимо ответить None - Leave the Master Boot Record
untouched. Это единственная особенность предложенного варианта установки.
Учтите, что при отказе от установки загрузчика Вы сможете запустить FreeBSD
только с помощью загрузочного CD или DVD диска, однако, не стоит переживать по
этому поводу, т.к. подобный запуск придется выполнить всего один раз.
Создание MBR-файла для NTLDR
Для создания описанного выше MBR-файла, способного обеспечить загрузку
FreeBSD со второго жесткого диска, необходимо загрузиться с загрузочного CD или
DVD диска FreeBSD, выбрать в меню Welcome to FreeBSD! пункт 6
- Escape to loader prompt (перейти к командной строке загрузчика), а
затем выполнить команды запуска FreeBSD с первого раздела первого слайса второго
жесткого диска:
1.set
currdev=disk1s1a
2.boot
После того, как завершится загрузка FreeBSD со второго жесткого диска,
необходимо войти в систему под именем root и выполнить команду
создания MBR, предназначенной для размещения на первом жестком диске и
обеспечивающей загрузку FreeBSD со второго жесткого диска:
Указанные ключи командной строки имеют следующие значения: -B –
обновление MBR без изменения таблицы слайсов; -d – используемый
BIOS номер диска, на котором будет использоваться MBR (первый жесткий диск имеет
номер 0x80, второй – 0x81 и т.д.), -o – дополнительные
опции (setdrv – принудительное использование номера диска,
заданного ключом -d, а не номера устройства, для которого
выполняется команда boot0cfg, и noupdate – сохранение
флагов активности слайсов); -s – номер загрузочного слайса
(значение 5 обеспечивает загрузку со второго жесткого диска); -t –
время ожидания ответа пользователя при выборе загружаемой операционной системы,
исчисляется в ticks (в секунде приблизительно 18,2
ticks), должно быть больше нуля; /dev/ad5 – усройство,
для которого выполняется команда boot0cfg. Далее следует выполнить
команду dd (1), которая сохранит созданную MBR (первый
сектор второго жесткого диска) в файл freebsd.mbr:
1.dd if=/dev/ad5
of=freebsd.mbr count=1
Затем нужно переместить файл freebsd.mbr на флешку (в моем
случае FreeBSD определила ее как устройство da1) или другой сменный
носитель для переноса на первый жесткий диск с Windows XP (непосредственный
перенос файла freebsd.mbr на первый раздел первого жесткого диска с
NTFS без использования промежуточного сменного
носителя или дополнительного программного обеспечения невозможен):
1.mount -t
msdosfs /dev/da1s1 /mnt
2.mv freebsd.mbr
/mnt
3.umount
/mnt
Создание MBR второго жесткого диска
После создания файла freebsd.mbr необходимо привести MBR второго
жесткого диска в описанное выше состояние, обеспечивающее загрузку FreeBSD с его
первого первого слайса. Для этого следует выполнить еще одну команду
boot0cfg, но на этот раз с другими ключами -d и
-s:
На этом манипуляции по изменению MBR заканчиваются.
Изменение конфигурации NTLDR
Остается запустить Windows XP, переместить с флешки (в моем случае Windows XP
определила ее как диск G:) файл freebsd.mbr в корневую
папку диска C:, а зетем соответствующим образом откорректировать
файл BOOT.INI (файл конфигурации NTLDR), который находится в той же
папке. Для этого можно запустить Командную строку (Command
Prompt) и выполнить следующую последовательность команд:
1.move
g:\freebsd.mbr c:\
2.c:
3.cd \
4.attrib -h -r
-s boot.ini
5.echo
c:\freebsd.mbr="FreeBSD" >> boot.ini
6.attrib +h +r
+s boot.ini
На этом настройка рассмотренного варианта загрузки FreeBSD заканчивается.
Теперь во время запуска компьютера NTLDR будет выводить меню выбора загружаемой
операционной системы, последним пунктом которого будет FreeBSD.
Заключение
Я надеюсь, что данная статья поможет сомневающимся начать использование
FreeBSD на своем десктопе. Не знаю, на сколько данный вопрос интересен рядовым
пользователям, мне же, как системному администратору, давно хотелось увидеть как
выглядит наиболее уважаемая мной операционная система в непривычном десктопном
варианте. Позже я обязательно продолжу описание своих экспериментов.