Есть ли способ загрузить Windows 7/8 с помощью BIOS на GPT?

23513
John Chadwick

Я хотел бы знать, есть ли способ установить 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 была неудачной. Мне бы очень понравилось это решение, если бы оно сработало.

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

19
Не совсем. Я знаю, что он может работать на гибридной MBR / GPT, и я не боюсь его использовать. Более того, я недоволен этим решением и хочу знать, есть ли другой, лучший способ. Я все еще работаю над этой проблемой, и я могу найти свое собственное решение. John Chadwick 12 лет назад 1
Я почти уверен, что этот вопрос является дубликатом этого вопроса, учитывая 2-летнее расхождение. Кроме того, на этот вопрос действительно нет ответа, или, по крайней мере, нет прямого ответа, тогда как на этот вопрос есть прямой ответ. John Chadwick 10 лет назад 1
Ты проверил мой ответ? Это новое, и никто другой не сделал это таким образом. Хотелось бы немного проверить это. Гарантированно не хакерский. Milind R 10 лет назад 0
Это действительно не будет работать на ноутбуке, хотя. Но опять же, мне очень странно отмечать этот вопрос как дубликат после того, как на него был дан достаточный ответ почти за 2 года до того, как этот вопрос был задан. Я не считаю, что запуск реализации UEFI может быть хакерским; просто диковинно, но имеет то преимущество, что не требует дополнительных дисков. John Chadwick 10 лет назад 0
В работе есть реализация на одном диске, которая будет обновляться при тестировании ... Кроме того, это хак в том смысле, что вы лжете окнам о системе: в гибридной MBR, врет о типе раздела, в DUET, врет про прошивку. Milind R 10 лет назад 0
Кроме того, я не получил уведомление, пожалуйста, укажите @MilindR, чтобы он уведомлял ... Milind R 10 лет назад 0
исправили двойную ситуацию :) Milind R 10 лет назад 0

6 ответов на вопрос

7
John Chadwick

Ну, все изменилось с тех пор, как я впервые задал этот вопрос. Во-первых, мой компьютер теперь основан на 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.

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

Это работает с установками Windows? Moab 7 лет назад 0
Я успешно использовал его с Windows 8 еще в 2012 году. Он мне больше не нужен, потому что все, что было сделано за последние несколько лет, использует UEFI, потому что Windows 8+ требует, чтобы производители оборудования поддерживали его. Это, вероятно, все еще работает сегодня, но я не знаю, рекомендую ли я это. John Chadwick 7 лет назад 0
Ссылка UEFI DUET теперь должна быть [здесь] (https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer), но она больше не поддерживается; сайт говорит использовать вместо этого [Clover EFI] (http://sourceforge.net/projects/cloverefiboot). kirbyfan64sos 6 лет назад 1
и вы можете [установить Clover на HDD] (https://github.com/m13253/clover-linux-installer), чтобы устранить необходимость в отдельном диске phuclv 5 лет назад 0
6
Zhuoyun Wei

Мне удалось загрузить 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 байт. Нижний колонтитул будет распознан как «неразмеченное пространство» и будет игнорироваться, поэтому type=fixedVHD-файл может быть напрямую передан в MEMDISK без преобразования и, следовательно, загрузки Windows.
  • Сконфигурируйте GRUB для использования memdisk для загрузки этого образа диска.
  • Windows загрузится.

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

@wzboy Я использую Arch linux и мне удалось добраться до точки установки Windows (с помощью wimlib-imagex). Теперь я не знаю, как продолжить. Не могли бы вы рассказать о том, как создать VHD-файл из дистрибутива Linux? Mihai Bişog 9 лет назад 1
@ MihaiBişog Вам нужен Windows PE для создания этого VHD. Есть много способов загрузки в Windows PE. Например, GRUB и syslinux могут загружаться в файлы iso. Zhuoyun Wei 9 лет назад 0
Разве это не сломает обновления Windows? Я имею в виду, если Microsoft выпустит обновление, которое должно изменить эти файлы boot / bootmgr, которые вы поместили в образ виртуального диска - они не будут обновлены, и вы даже никогда не заметите этого. Также я предполагаю, что это может нарушить некоторые операции по восстановлению окон. Есть ли другие недостатки? Powerman 9 лет назад 0
Фактически, BCD / Bootmgr никогда не будет найден Windows, поскольку он находится внутри образа дискеты / диска. Так что нет вопроса об автоматическом обновлении его. Авторемонт не сработает. Все, что связано с инструментами Microsoft, связанными с вашей загрузкой, скорее всего, не будет работать Milind R 9 лет назад 0
Да, все, что связано с bootmgr, не будет работать, так как они "пропали" после того, как вы помогли вашей Windows загрузиться. Фактически, когда вы запускаете «bcdedit» в cmd.exe, он скажет вам, что не может найти загрузочные файлы. :-) Zhuoyun Wei 9 лет назад 1
В моем случае мне нужно было заменить `harddisk` на` raw` в строке конфигурации grub `linux16 / boot / syslinux / memdisk harddisk`. mixel 7 лет назад 0
5
Milind R

If you even have a small spare drive, you can boot Windows(either 32 or 64 bit) from GPT on BIOS. A floppy will do.

Boot into the Windows install/repair disc.

Create the system drive on the small disk/floppy, and use bcdboot to put your boot files on the the newly created drive on the small disk. Add a bootsector with bootsect. Change the device to boot. Boot from small disk.

Steps are detailed here.

Пробовал, и это сработало. Теперь у меня есть работающая Windows 8.1 на GPT-диске под настройкой BIOS. Все, что мне нужно сделать, это вставить флэш-накопитель USB для его загрузки. После процесса загрузки USB-накопитель можно извлечь. Как и в старые времена, я имею в виду дискету MS-DOS ... Zhuoyun Wei 10 лет назад 2
Лол. Я работаю над решением, которое не требует другого диска. Можете ли вы сказать мне, как медленно / быстро это? Milind R 10 лет назад 0
Я думаю, что установка bootmgr на другой диск не увеличивает загрузку Windows, по крайней мере, я этого не чувствую. Zhuoyun Wei 10 лет назад 1
ОХХХХ ДА. Извиняюсь за то, что был слишком взволнован. Я потратил целый день и, наконец, смог загрузить Windows 8.1 на GPT-диск с настройкой BIOS БЕЗ второго (маленького) MBR-диска - с помощью модуля syslinux memdisk, который способен загружать образ жесткого диска. Zhuoyun Wei 9 лет назад 2
@wzyboy Эй, это здорово. Пожалуйста, сообщите о том, как вы достигли этого в [ветке reboot.pro] (http://reboot.pro/topic/19516-hack-bootmgr-to-boot-windows-in-bios-to-gpt/). Milind R 9 лет назад 0
Вот мой пост: http://reboot.pro/topic/19516-hack-bootmgr-to-boot-windows-in-bios-to-gpt/page-2#entry184489 Zhuoyun Wei 9 лет назад 1
Я знаю, что прошло много времени с тех пор, как вы опубликовали это, но есть ли шанс, что вы могли бы опубликовать шаги здесь для будущих пользователей? Вы когда-нибудь находили способ сделать это без дополнительного диска? Mokubai 8 лет назад 0
Проверьте ответ wzyboy. Milind R 8 лет назад 0
3
Nikolai Vakulenko

Большое спасибо 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

В последнее время, после того, как я потратил много часов на трюки с изображениями, я обнаружил, что RAID-контроллер Perc5-i способен нарезать массив меньше, чем емкость физического жесткого диска. Итак, на профессиональном оборудовании загрузка GPT не является проблемой. Nikolai Vakulenko 9 лет назад 0
Не могли бы вы рассказать о своем сценарии и своем исправлении для него в [этой ветке разработчиков] (http://reboot.pro/topic/19516-hack-bootmgr-to-boot-windows-in-bios-to-gpt/) ? Я пытаюсь сохранить все детали вместе. Milind R 9 лет назад 0
2
harrymc

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

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

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

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

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

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

С тех пор, как я в последний раз обновлял этот вопрос, я действительно получил UEFI DUET для успешной загрузки на моем компьютере. К сожалению, отсутствие драйвера DVD-ROM убило меня, так как у меня не было USB-накопителей для хранения Windows. После того, как мой основной жесткий диск случайно вышел из строя, я решил дать ему отдохнуть и использовать разметку BIOS на запасной. Тем не менее, эта статья определенно полезна, и я все еще заинтересован в том, чтобы заставить ее работать самостоятельно. Я постараюсь не забыть забрать флешку в ближайшее время. John Chadwick 12 лет назад 0
@JohnChadwick вы можете использовать Clover и [установить его на HDD] (https://github.com/m13253/clover-linux-installer), чтобы вам больше не нужен отдельный загрузочный диск phuclv 5 лет назад 0
@phuclv: Вы заметили, что комментарий Джона Чедвика относится к 2011 году и что он дал [свой собственный ответ] (https://superuser.com/a/375788/8672) на этот пост? harrymc 5 лет назад 0
@harrymc, конечно, я знаю. Эта информация для будущих читателей phuclv 5 лет назад 0
0
Scott Tovey

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

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

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

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

** BIOS ничего не знает о приводе **, будь то GPT или MBR, или даже метка BSD или APM ... Он просто загружает первый сектор (то есть MBR) и запускает его. На этом этапе работу BIOS можно считать «законченной». Если ваш диск не загружается, это просто означает, что ** нет действительного загрузочного сектора на диске ** phuclv 5 лет назад 0