6

Прочитав много об установочных алгоритмах установки Windows из Linux, для установки Linux в дополнение к Windows, .... Мне немного интересно.

Из того, что я прочитал, например, для установки Windows из Linux, большинство методов создают копию (или свою собственную) MBR из первых 446 байтов Windows MBR и используют ее для установки первых 446 байтов MBR на компьютере, где Windows должен быть установлен (или восстановить эти 446 байтов в случае, если что-то пойдет не так).

Что меня заинтриговало, так это то, что существует программа Linux под названием ms-sys (на sourceforge, то есть с открытым исходным кодом), которую можно использовать для win xp, win 7, .... Для создания таких соответствующих резервных копий MBR.

И после прочтения чего-то в сети, что первые 446 байтов являются остатком от MSDOS (так сказать), мне интересно следующее:

Имеет ли MBR (только первые 446 байтов) для разных версий Windows (XP, Windows 7, Windows 8, ...) какие-либо различия? Или эти 446 байтов Windows XP могут быть использованы для Windows 7 (или наоборот).

3 ответа3

3

Я думаю, что они, вероятно, разные. Некоторые проверки показывают, что да, они разные.

Я не ожидаю большой разницы в их поведении. Основная задача этих 446 байтов состоит в том, чтобы идентифицировать другой раздел диска с дополнительным кодом для выполнения. Этот дополнительный код обычно хранится внутри раздела. Некоторым людям нравится использовать "загрузчик", например GAG или те, которые устанавливаются с XFDisk или RPM (Ranish Partition Manager), где 446 байтов делают что-то немного другое, например, предоставляют интерактивный интерфейс, чтобы пользователь мог передать управление другой раздел. По сути, это включает "загрузочное меню", так что человек может легко выбрать загрузку с другой операционной системы, включив опции "мультизагрузки" (чтобы человек мог легко загружать разные операционные системы).

Эта основная работа, вероятно, не сильно изменилась за долгое время. (Тем не менее, точные сведения о том, как он выполняет функциональность, были изменены.) Если бы были какие-либо полезные обновления с более новыми операционными системами, то я хотел бы представить, что эти обновления делают что-то вроде поддержки дисков большего размера. Вполне возможно, что загрузочный код всех последних выпусков Windows (включая XP) может поддерживать до 2 ТБ, что является пределом формата MBR.

(Должен отметить, что этот ответ был предназначен для систем, использующих MBR для базовой информации о разделах. Системы, использующие GPT, также могут иметь MBR, который должен соответствовать определенным требованиям, указанным в стандарте GPT.)

Обновить

Я должен заключить, что разные версии Windows имеют некоторые различия в первых 446 байтах. Самой убедительной документацией, которую я нашел до сих пор, является TechNet. Сведения о Windows Vista: параметры командной строки Bootsect, которые показывают, что пользователь может указать ключи /nt52 или /nt60 для установки различных версий загрузочного кода.

Там может быть и больше. Похоже, MSDN: «Обновление совместимости дисков с расширенным форматом (4K) » было выпущено для Windows 7 SP1 и Windows Server 2008 R2 SP1. Это обновление содержит много новой информации, некоторые из которых применимы только к Windows 8 и Windows Server 2012. «Я еще не подтвердил, были ли первые 446 байтов также изменены для этих изменений, но вероятность кажется сильной, так как изменения были сделаны разрешить процессу загрузки иметь различную аппаратную совместимость.

Если вы хотите узнать больше о том, что находится в 446 байтах, я нашел документацию о некоторых старых версиях. Сведения о загрузочном секторе Windows 2000 - это более старый документ, более новый, чем MS KB 140418: загрузочный сектор для Win NT 3.x.

1

Есть (незначительные) различия в коде mbr, установленном разными версиями Windows. Все они проверяют таблицу разделов, чтобы найти загрузочный раздел, а затем передают управление первому сектору этого раздела. Таким образом, разные версии в значительной степени взаимозаменяемы. Смотрите, например, страницы по адресу http://thestarman.narod.ru/asm/mbr/VistaMBR.htm#INTRO . В этом коде mbr нет ничего особенного для Windows, он может также загрузить любую другую операционную систему. Код MBR, установленный многими менеджерами загрузки Linux, такими как GRUB, совершенно другой, и может даже не смотреть на таблицу разделов, и будет бесполезен в системе, в которой загрузочные файлы GRUB не хранятся в разделе Linux. или собственный специальный загрузочный раздел.

Более новая процедура загрузки GPT/UEFI - это совершенно другой мир.

1

Вопрос «Эти два MBR разные?" не эквивалентно вопросу" Могу ли я использовать MBR одной версии Windows в другой версии Windows?».

Существуют некоторые различия между MBR разных версий Windows. Самая обширная онлайн-ссылка, которую я знаю, - это веб-страница Starman.

На странице о MBR Win2000/WinXP указано:

Первые 300 байтов (от 000h до 12Bh) этого 512-байтового сектора являются исполняемым кодом ...

в то время как на странице о MBR Windows 7/8 мы можем прочитать:

Первые 355 байтов (от 000h до 162h) этого 512-байтового сектора являются исполняемым кодом

и позже:

Но этот код должен сначала скопировать себя в другую область памяти. Это необходимо, потому что код должен также загрузить загрузочный сектор активного раздела в ту же область памяти, которую он занимает сразу после загрузки! В отличие от Windows 2000/XP MBR, этот код копирует все 512 своих байтов в новое место, начиная с: 0000: 0600. Только первые три инструкции совпадают с MBR для Windows 2000/XP, так что будьте внимательны, сравнивая их.

Это показывает, что между ними есть различия.

Все же TheStarman заявляет (я никогда не пробовал это сам, поэтому я просто сообщаю об этом), для обоих MBR выше:

Примечание . Как и любой другой код, представленный в этой серии, этот код MBR можно по-прежнему использовать для загрузки любой ОС на ПК с архитектурой x86, если он соответствует условиям, перечисленным здесь .

А потом:

Даже несмотря на то, что мы изучаем код, созданный операционной системой Microsoft, эта MBR может также использоваться для запуска процесса загрузки любой загрузочной записи операционной системы на компьютере с процессором x86 (ПК), если эта ОС: 1) на жестком диске Primary Master, 2) установить в качестве единственного активного раздела и 3) он имеет загрузчик в первом секторе этого раздела.

Наконец, я должен упомянуть, что на одних и тех же веб-страницах представлены полные версии всех MBR (за исключением таблицы разделов, конечно), что может в любом случае помочь восстановить потерянную / поврежденную MBR. Стандартная таблица разделов может быть восстановлена вручную или с помощью инструментов, предоставляемых веб-страницами TheStarman.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .