dadv: (Default)
Choose your future ([personal profile] dadv) wrote2009-05-04 06:24 pm
Entry tags:

BootEasy, FreeBSD 7.2 & Windows

Долгая история проблемы совместимости бутменеджера FreeBSD по имени BootEasy (или проще boot0) получила логическое завершение (на текущем этапе ;-)

Больше четырех лет назад напоролся на то, что WinXP иногда (зависит от дисковой конфигурации системы) не может загрузиться, если в MBR установлен сторонний бутменеджер, потому что XP ищет там свою 4-байтную "метку", которую она туда прописывает при установке. По результатам обсуждения сделал патч на BootEasy (тогда от FreeBSD 4), который делал его и системные утилиты FreeBSD совместимыми с этой виндовой меткой. Патч в том же обсуждении опубликовал и долгое время нормально жил с патченным загрузчиком, благо обновлять его в MBR после однократной установки не требуется.

В 2006-м обновил патч для BootEasy от FreeBSD 6.1, чтобы опять же подружить его с WinXP в особой дисковой конфигурации.

В январе этого года обнаружил, что BootEasy с Vista не совместим вообще, в любых конфигурациях - Vista без своей метки не грузится безусловно, в отличие от XP, которой метка нужна не всегда. Обновил патч опять, теперь уже для BootEasy от семерки. Попутно обнаружив, что какой-то австралиец нашел мой код и засамбитил его в PR: bin/127764. Откуда его подобрал luigi@ и со своими редакторскими изменениями прокоммитил его сначала в CURRENT, а потом и в RELENG_7.

И вот сегодня вышла FreeBSD 7.2-RELEASE, где в Release Notes объявлено, что "The boot(8) now supports 4-byte volume ID that certain versions of Windows® put into the MBR and invoking PXE by pressing F6 key on some supported BIOSes."

К поддержке PXE отношения никакого не имею, а вот что больше не надо будет патчить загрузчик - приятно.

Update: В 7.2-RELEASE код загрузчика, обеспечивающий совместимость, по умолчанию не вкомпилирован. Загрузчик необходимо пересобирать в режиме совместимости. В 8.0-RELEASE уже всё работает по умолчанию.

[identity profile] d11he11.livejournal.com 2010-01-18 10:07 am (UTC)(link)
8.0-RELEASE-amd64

Воз и ныне там.

[identity profile] dadv.livejournal.com 2010-01-18 10:20 am (UTC)(link)
Вообще-то сейчас подумал, что "NT Loader missing" это другая проблема.

[identity profile] d11he11.livejournal.com 2010-01-18 10:38 am (UTC)(link)
Хз. В принципе похоже: проблема всегда возникала при наличии >1 винта в системе. Надо буит попробовать на том же компе установку с единственным винтом..

[identity profile] dadv.livejournal.com 2010-01-18 10:47 am (UTC)(link)
"NT Loader is missing" может получиться просто от того, что сместилась нумерация разделов в MBR. Например, если по какой-то причине фрёвый раздел стал первым, а виндовый вторым. Для XP тогда достаточно в boot.ini поменять номер раздела.

[identity profile] d11he11.livejournal.com 2010-01-18 11:00 am (UTC)(link)
http://ru.wikipedia.org/wiki/NTLDR

Если я правильно ошибаюсь, boot.ini читается при загрузке NTLDR.
А если 'NTLDR is missing' то до этого дело не дойдет.

[identity profile] dadv.livejournal.com 2010-01-18 11:09 am (UTC)(link)
Кстати, да. "Сообщение об ошибке «NTLDR Is Missing» может появиться после смены активного раздела. Для нормальной работы загрузчика Windows необходимо, чтобы системные файлы, которые он использует, располагались на активном разделе." Я всегда в MBR ставлю BootEasy, который по дефолту "на лету" маркирует активным выбранный раздел, видимо поэтому такой проблемы у меня никогда не было.

[identity profile] dadv.livejournal.com 2010-01-18 11:10 am (UTC)(link)
http://support.microsoft.com/kb/315261