7

Я думал, что наконец-то вернул Windows к жизни внутри виртуальной машины, но, увы, я столкнулся с некоторыми играми, в которые я хотел бы поиграть, но в этой настройке они просто не подходят. В те дни, когда Windows в последний раз занимала свой собственный указанный кусок моего диска, я много раз переключался между различными ОС и дистрибутивами Linux, и оказалось, что, когда у меня было свободное место, я был на максимальном количестве поддерживаемых разделов по таблицам разделов MBR. Поэтому, полагая, что в 21-м веке он должен работать именно здесь, и проведя краткий анализ Google, который показал, что он должен работать, я перешел на таблицу разделов GUID (GPT) и попытался установить Windows 7. И вот, Windows 7 работает только с GPT в системах EFI, а моя использует BIOS. Я должен был заметить это в своих предыдущих исследованиях, но это было бы слишком просто.

Таким образом, у меня остается выбор: вернуться обратно в MBR и попытаться изменить структуру разделов так, чтобы я мог создать один для Windows или использовать гибридную MBR. Последнее звучит более привлекательно. К сожалению, в Интернете есть много страшных предупреждений о гибридных MBR, поэтому у меня есть несколько вопросов.

Будет ли Windows делать что-то уродливое с моим загрузчиком, так как он действительно на GPT, но будет видеть MBR? Это потребует большего ремонта, чем загрузка с LiveCD и запуск grub-install? Есть ли что-то, что мне нужно избегать, кроме как убедиться, что я никогда не касаюсь инструментов разметки в Windows? Мой компьютер взорвется? Будет ли много головных болей, если я просто вернусь к MBR? (Я понимаю, что Mac используют гибридные MBR с Boot Camp, так что, надеюсь, это будет не так сложно, как я думаю).

3 ответа3

7

Нет необходимости возвращаться к схеме разбиения MBR, и даже нет необходимости в схеме разделения "гибридного MBR". (У меня есть такие на одной из моих машин, и подтверждаю, что они не для слабонервных.)

Windows 7 может нормально использовать EFI-разделенные диски. Он просто не может быть загружен с них на компьютерах, не поддерживающих EFI, и (чтобы защитить вас от себя, в стиле Microsoft) отказывается устанавливать на них в первую очередь. В вашем случае ваша проблема - это фундаментальный недостаток вашей прошивки, и на самом деле это не проблема Windows . Ваша прошивка не понимает таблицу разделов EFI.

Такое понимание необходимо, если кто-то хочет преобразовать загрузочную версию своей операционной системы в разделенные диски EFI. Необходимо знать прошивку, чтобы открыть меню диспетчера загрузки EFI, а затем загрузить выбранную программу загрузки операционной системы из системного раздела EFI. Однако ваша прошивка не очень умная и не знает, как сделать намного больше, чем загрузить "основную загрузочную запись" и запустить ее загрузочный код. На многораздельном диске EFI в основной загрузочной записи нет кода, который можно было бы запустить до конца процесса загрузки EFI.

В лучшем случае, прямо сейчас, у вас есть код начальной загрузки MBR, который в равной степени так же не знает о схеме таблиц разделов EFI, как и ваша прошивка, и он ожидает найти и обработать таблицу разделов MBR. Что вам нужно, это две вещи:

  • иметь загрузочный код MBR, который знает, как читать таблицу разделов EFI, и найти загрузчик второго уровня, который также поддерживает таблицы разделов EFI и который позволит вам, в свою очередь, загружать и запускать загрузчики операционной системы
  • какой-то способ убедить Windows 7 установить на разделенный диск EFI

Первое не невозможно. Существует два источника таких загрузочных загрузок MBR с поддержкой EFI-разбиения:

  • Я написал и опубликовал один (после того, как этот ответ был впервые написан, на самом деле).
  • Так называемый "GPT" MBR Boostrap в SYSLINUX, написанный Х. Питером Анвином, является другим.

Оба будут искать "активный" раздел, загружать и запускать его VBR, эффективно загружая старый PC /AT и PC98, но с таблицей разделов EFI. Если эти два не удастся, лучшая альтернатива, которую вы получите прямо сейчас:

  • GRUB 2: К сожалению, это все еще основано на вставке аппаратных цифр в код начальной загрузки MBR, чтобы сообщить ему, где найти следующую часть его загрузчика. Но этот второй этап, после загрузки и запуска, полностью способен понимать таблицу разделов EFI и запускать загрузчики операционной системы изнутри разделов. Однако он не знает, как запускать загрузчики операционной системы EFI, он знает только, как справиться с VBR, Linux и BSD.
  • UEFI DUET: (Род Смит обсуждает это подробно.) Опять же, к сожалению, несмотря на то, что это устанавливается в том и вызывает полностью работоспособный EFI Boot Manager и EFI Shell, ему все равно нужно что-то еще для загрузки и запуска VBR. И прямо сейчас, что-то еще должно быть чем-то вроде GRUB2, которое само полагается на номера проводных секторов в коде MBR, или на SYSLINUX, или на самом деле на мою загрузочную запись MBR, поддерживающую разделение EFI. Но вы сможете запускать правильные загрузчики операционной системы EFI.

Второе (убедить Windows 7 установить на многораздельный диск EFI) достижимо, по крайней мере, с x86-64 разновидностью Windows 7. Он сложный, официально не поддерживается Microsoft и требует создания своего собственного установочного диска Windows с EFI-версией Microsoft Boot Manager на нем и запуска его из среды загрузки EFI. (Если у вас установлен UEFI DUET, это довольно легко, конечно.) Но он убеждает Windows 7 в том, что его установщик был загружен в систему EFI, и этот критерий использует установщик, чтобы определить, позволит ли он устанавливать Windows на разделенный жесткий диск EFI.

Конечно, есть дополнительная, заключительная, сложность после установки загрузки Windows 7 изо дня в день; потому что установщик, зная, что у вас есть прошивка EFI, установит версию EFI менеджера загрузки Microsoft. Таким образом, вам понадобится либо:

  • установить PC/AT-версию Microsoft Boot Manager и договориться, чтобы GRUB2 знал, где она находится, если вы используете GRUB2; или же
  • всегда загружать UEFI DUET и запускать версию EFI Microsoft Boot Manager оттуда.

Практически вся эта ерунда просто исчезнет, если в первую очередь будет установлена прошивка EFI. Windows 7 (x86-64) будет успешно установлена, и EFI Boot Manager, который понимает таблицу разделов EFI и будет загружать и запускать Microsoft Boot Manager (а также любую другую EFI-загружаемую операционную систему) непосредственно из файла обычного образа программы в системном разделе EFI, поставляется с прошивкой.

5

Есть несколько возможных решений этой проблемы. Подводя итог, в более или менее моем порядке предпочтений:

  • Обновите материнскую плату. Если у вас есть материнская плата с функциями загрузки UEFI, все будет настроено, поскольку вы сможете установить Windows в режиме UEFI. Большинство (возможно, все) платы на базе Intel Sandy Bridge поддерживают UEFI, хотя некоторые не рекламируют этот факт. Многие новые платы AMD также поддерживают UEFI. На самом деле, есть шанс, что у вас уже есть такая доска. Многие платы Intel, проданные за последние несколько лет, имеют опцию загрузки UEFI, скрытую на экранах настроек CMOS. Вы можете попробовать поискать такую опцию. Возможно, вам придется использовать режим UEFI для всех ваших операционных систем. К счастью, Linux довольно легко конвертируется и может переключаться назад и вперед без переконфигурации, если он настроен на загрузку в любом случае. Обратите внимание, что для установки Windows в режиме UEFI вам потребуется 64-разрядная версия Vista или 7.
  • Используйте второй жесткий диск - вы можете установить Windows на MBR-диск и оставить Linux на GPT-диске. Вы даже можете разместить разделы данных Windows на GPT-диске, если хотите (при условии, что вы используете Vista или 7); только загрузочный диск Windows должен быть на MBR. Даже если у вас есть какой-то старый диск объемом 20 ГБ, вероятно, достаточно держать раздел Windows C: и вы можете поместить свои программные файлы Windows в раздел GPT, если вы используете Vista или 7.
  • Конвертировать в MBR - это можно сделать с помощью GPT fdisk (gdisk), но с определенными оговорками. В частности, у вас должен быть по крайней мере один свободный сектор перед каждым логическим разделом, который вы хотите создать, и все логические разделы должны быть смежными. Если ваш текущий диск не соответствует этим спецификациям, вы либо потеряете разделы при преобразовании, либо вам придется изменить размер некоторых разделов, чтобы создать необходимые промежутки. Существует также некоторый риск потери данных, особенно если вам нужно изменить размер разделов.
  • Используйте UEFI DUET - как предложено JdeBP (и ссылка на мою страницу по теме), UEFI DUET является возможностью. ИМХО, недостатки этого подхода не так велики, как предполагает JdeBP, ЕСЛИ UEFI DUET даже загружается в вашей системе. (Шансы хороши, если у вас 64-разрядный процессор Intel, менее хороши на 64-разрядных процессорах AMD, и он не будет работать вообще на 32-разрядных процессорах.) Вы должны быть осторожны и иметь хороший ум для устранения технических неполадок, чтобы попробовать это, однако. Вы можете сделать некоторые предварительные исследования с USB-накопителем; установите UEFI DUET и посмотрите, сможете ли вы загрузить его. Если он загрузится, вы, вероятно, сможете заставить Windows устанавливать и загружаться, даже на регулярной основе, хотя есть и подводные камни, как отмечено на моей странице по этому вопросу. После настройки UEFI DUET становится, по сути, довольно большим загрузчиком GPT для Windows.
  • Используйте виртуализацию - это не совсем то, о чем вы просите, но вполне возможно, что Windows будет работать приемлемо на виртуальной машине. Что касается игр, я немного скептически отношусь к тому, что вы получите необходимую производительность, но, возможно, стоит попробовать.
  • Hybrid MBR - Вы можете настроить это и установить Windows в гибридный раздел. Windows уничтожит ваш текущий MBR-резидентный загрузчик, поэтому будьте готовы переустановить его. Лично я не рекомендую это решение, так как гибридные MBR опасны. Однако, если все остальные параметры не будут выполнены, возможно, это означает отказ от Windows.

Я также хотел бы прояснить пару заблуждений:

  • Неспособность Windows загружаться из GPT на компьютере на базе BIOS - это, безусловно, ограничение Windows, а не прошивка (BIOS). Linux, FreeBSD и некоторые другие ОС могут нормально загружаться с GPT-дисков на компьютерах с BIOS. Я не знаю, почему Microsoft не хочет поддерживать загрузку Windows из GPT на компьютерах на базе BIOS, но они, безусловно, могли бы сделать это, если бы захотели. Если не что иное, они могли бы взять реализацию UEFI, обрезать ее до самого необходимого и использовать в качестве загрузчика.
  • Загрузчик SYSLINUX GPT не использует жестко закодированные значения секторов; у него достаточно смарта, чтобы прочитать GPT и перейти к разделу с установленным флагом Legacy BIOS Bootable. Не то, чтобы с жестко кодируемыми значениями секторов что-то было не так, как в GRUB 2; Два решения имеют разные преимущества и недостатки.
0

Если у вас даже есть маленький MBR-диск, вы можете сделать это без взлома. Это будет работать даже с Windows 32 бит. Подойдет дискета или флешка.

Загрузитесь с установочного / ремонтного диска Windows. Создайте системный диск на флешке и используйте bcdboot чтобы поместить ваши загрузочные файлы на флешку. Добавьте загрузочный сектор с bootsect . Изменение {bootmgr} device для boot Загрузиться с флешки.

Шаги подробно здесь.

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