21

Я хотел бы знать, есть ли способ заставить Windows 7 или Windows 8 Developer Preview установить на диск GPT в моей традиционной установке IBM PC BIOS. Windows 7, конечно, отклоняет мой раздел GPT, потому что у меня нет UEFI. Ну, кажется, что Debian и Grub 2 работают нормально ... Поэтому я хочу знать, есть ли способ заставить Windows работать так же.

Я бы серьезно предпочитаю избегать гибридной MBR/GPT, потому что это довольно хрупко и чувствует хак, но она работает. Я бы предположил, что основной блокировкой является то, что Microsoft просто не добавляет поддержку в свой загрузчик BIOS для GPT, что вполне понятно, я полагаю. Есть ли выход?

На мой взгляд, есть несколько потенциальных решений:

  1. Наличие альтернативного загрузчика для ядра Windows. НЕ цепной погрузчик. Насколько я знаю, ничего не существует. Это позор.
  2. Хранить как можно меньше на альтернативном MBR-диске. Не нравится эта идея, но это выполнимо. Я не уверен, что назвал бы это решением проблемы так же, как обходным решением.
  3. Эмуляции EFI достаточно, чтобы заставить загрузчик EFI работать ... Я помню, что немного слышал об эмуляторе UEFI-on-BIOS, но сейчас ничего не могу найти по этому поводу. Я предполагаю, что это выполнимо, но, вероятно, пока нет особого спроса на него, и, вероятно, совсем не интересно его настраивать. GRUB 2, по-видимому, может загружать hackintosh с необходимой эмуляцией EFI, но я думаю, что нет никакого интереса /UEFI 2 труднее подойти (и я бы предположил, что другие эмуляторы EFI, используемые для hackintosh, находятся на одной лодке).
  4. Coreboot с TainoCore. Coreboot не работает на моей материнской плате (насколько я знаю), и я совершенно уверен, что последняя попытка сделать это во время GSoC была неудачной. Мне бы очень понравилось это решение, если бы оно сработало.

Я что-то пропустил?

6 ответов6

8

Ну, все изменилось с тех пор, как я впервые задал этот вопрос. Во-первых, мой компьютер теперь основан на UEFI, поэтому у меня больше нет этой проблемы. Ну вроде как. Я был заинтересован в том, чтобы вытащить аналогичную настройку на моем ноутбуке (разделы GPT и т.д.) Мне, наконец, удалось получить рабочую настройку Tianocore UEFI DUET, и она была настолько болезненно простой, насколько это возможно!

Это предполагает, что вы хотите все блестящие, новые настройки. Если вы хотите преобразовать ваши старые настройки, удачи. На самом деле, удачи в любом случае, так как эта операция в любой ситуации нечеткая.

Предупреждение: если вы поклонник быстрой загрузки, вы можете переосмыслить это решение. Не то, чтобы UEFI DUET работал медленно, но он добавляет еще одну стадию в ваш процесс загрузки, поэтому, если ваш BIOS/POST не быстрый, вам это может не понравиться.

Без дальнейших церемоний:

  1. Вы будете хотеть установку Linux. Я использовал Fedora 16 с USB-накопителя (с UNetBootin) и очень рекомендую, потому что он практически работает из коробки. В любом случае вам нужен USB-накопитель, поэтому не планируйте продолжать без него.

  2. Возьмите несколько сборок UEFI DUET. Без сомнения, лучшее место, чтобы получить это здесь. Тарбалы фактической сборки находятся в основной ветке первого репозитория, здесь. Дайте ему старый tar -xf .

  3. Настройте свои разделы. Вы должны зарезервировать 200 МБ где-нибудь на диске (очень желательно начало и первый раздел). Вы можете отформатировать его с помощью FAT32, но мы переформатируем его позже. Просто убедитесь, что он отображается как раздел. Вы должны использовать GPT здесь.

  4. Теперь установите любое дополнительное программное обеспечение, которое вам может понадобиться. В дистрибутиве Fedora Live я обнаружил, что мне нужен yum install gdisk . Я думаю, что это было так.

  5. Теперь перейдите в каталог извлеченных сборок. chmod +x ./duet-install и ./duet-install -64 -F -m /dev/sda1 (где /dev/sda1 - желаемый системный раздел EFI.)

  6. Скрестите пальцы и перезагрузитесь. Если повезет, вы увидите логотип TianoCore всего за несколько минут. Если это так, вы, вероятно, хорошо! Вам нужно будет установить установочные файлы вашей ОС на USB-накопитель - Tianocore не поддерживает приводы CD-ROM /DVD-ROM из коробки (и я не знаю ни одного драйвера для него).

Вы также можете захотеть поиграть с некоторыми исполняемыми файлами UEFI. Я нашел некоторые здесь. Хотя еще не тестировал с Tianocore.

В любом случае, спасибо всем, кто пытался помочь.

6

Мне удалось загрузить Windows 8.1 на GPT-диск под настройкой BIOS БЕЗ второго MBR-диска.

История была такова: мой ноутбук был настроен на BIOS + GPT, только с установленным Arch Linux. В последнее время мне нужно выполнить некоторые задачи в Windows (а виртуальные машины этого не могут), поэтому я изо всех сил пытаюсь установить Windows под моей существующей настройкой BIOS + GPT. Согласно ответу Милинда, мне удалось установить загрузочные файлы Windows (Boot, bootmgr и т.д.) На (маленький) USB-накопитель MBR. И каждый раз, когда я включаю свой ноутбук с подключенным USB-накопителем, я могу загружаться в Windows 8.1, после чего его можно безопасно отключить.

Недостаток очевиден: мне нужно носить с собой USB-накопитель для загрузки Windows. Поэтому я всегда пытался избавиться от этого.

Попробовав разными методами, я наконец нашел модуль memdisk проекта syslinux работающим.

  • Вам нужно отказаться от менеджера загрузки Windows.
  • Вам не нужно устанавливать syslinux. Необходим только модуль memdisk (файл размером 26 КБ).
  • Вы можете использовать много загрузчиков для загрузки этого модуля, в моем случае, мой любимый загрузчик GRUB (версия 2).

Вот схема с практическими рекомендациями:

  • Разбейте ваш GPT-диск, чтобы удовлетворить потребности GRUB, то есть небольшой раздел для встраивания core.img. Подробная ссылка
  • Установите GRUB в этот небольшой раздел.
  • Установите Windows с помощью imagex . И используйте bootsect и bcdboot для установки загрузочных файлов Windows на маленький USB-диск MBR. ,
  • Используйте dd или dd_rescue для клонирования вашего маленького USB-диска в образ диска. (Ваш USB-диск завершил свою работу.) Образ может быть слишком большим для загрузки memdisk, вы можете смонтировать его и сжать файловую систему / раздел в нем.
  • Согласно моему тесту, вам не нужен физический MBR-диск для установки загрузочных файлов Windows. Вы можете создать VHD-файл и рассматривать его как физический диск. После установки загрузочных файлов Windows в VHD вы можете преобразовать его в необработанный образ диска (в стиле dd) с помощью инструментов, предоставляемых VirtualBox или QEUM. При создании с type=fixed файл vhd является обычным необработанным образом диска (в стиле dd) с нижним колонтитулом 512 байт. Нижний колонтитул будет распознан как "неразмеченный пробел" и будет игнорироваться, поэтому файл vhd с type=fixed может быть напрямую передан в MEMDISK без преобразования и, следовательно, загрузки Windows
  • Сконфигурируйте GRUB для использования memdisk для загрузки этого образа диска.
  • Windows загрузится.

Подробное руководство можно найти в моем ответе reboot.pro на ветку Milind .

5

Если у вас даже есть небольшой запасной диск, вы можете загрузить Windows(32- или 64-разрядную версию) из GPT в BIOS. Дискета подойдет.

Загрузитесь с установочного / ремонтного диска Windows.

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

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

3

Большое спасибо wzyboy.

Я столкнулся с этой проблемой, когда пытался установить Windows 2012 на Dell PowerEdge 2950 с 6 ТБ RAID. Это не UEFI.

Я провел несколько экспериментов. Сначала я создал 32Mb виртуальный жесткий диск, как сказал wzyboy, и просто скопировал все содержимое из зарезервированного раздела Microsoft. Винда запустилась нормально. Но с этим решением служба Hyper-V не может запуститься.

Как говорит memdisk wiki, он автоматически определяет размер изображения, какой тип носителя должен имитировать. Итак, я создал виртуальную 720K дискету в среде WMware и скопировал в нее bootmgr, BCD и bootstat.dat (на всякий случай удалил подменю memtest из хранилища BCD). Размер дискеты я выбрал как можно меньше, поэтому он может быть больше или меньше, я не пробовал.

Теперь он загружается с GPT-диска, и Hyper-V работает хорошо.

PS может сторонний софт помогает. Кто-нибудь использовал что-нибудь подобное? https://www.terabyteunlimited.com/bootit-bare-metal.htm

2

В статье Преобразование BIOS в UEFI подробно описывается, как использовать TainoCore UEFI DUET.

Я понимаю, что у вас были проблемы с использованием TainoCore, но, возможно, эта статья подойдет вам.

В статье говорится:

Некоторые компьютеры не работают с UEFI DUET. Самое главное, это действительно полезно только на 64-битных компьютерах x86-64, особенно в двоичной форме. На самом деле, он не запускается должным образом даже на некоторых компьютерах x86-64. В тестах на пяти системах x86-64 мне удалось получить одну или обе версии, работающие только на трех компьютерах - на самом деле довольно удручающий показатель успеха. Это может быть просто совпадением, но два компьютера, которые работали лучше всего для меня, использовали процессоры Intel, тогда как два, которые работали хуже всего, и тот, который работал с версией 2.1, но не версией 2.3, имели процессоры AMD.

Кажется, это подразумевает, что перед тем, как сдаться, нужно попробовать несколько версий UEFI DUET.

Это помогло бы узнать модель вашего компьютера.

0

Люди должны помнить, что не все микропрограммы BIOS могут работать с GPT-диском. У меня есть USB-накопитель Seagate 4 Tb, который был GPT с завода, и ни один из моих двух компьютеров не загрузился бы, если диск был подключен к USB-порту.

Машины будут зависать на экране меню загрузки F2 Enter Setup F10, и единственное, что можно сделать в этот момент, - это отключить питание и включить его снова.

Как только я преобразовал диск в MBR, который убивает около 2 ТБ дискового пространства, обе системы запустятся и загрузятся в ОС как обычно с подключенным диском.

Я ищу патч BIOS, чтобы исправить эту проблему.

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