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


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

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


1
Не совсем. Я знаю, что он может работать на гибридной MBR / GPT, и я не боюсь его использовать. Более того, я недоволен этим решением и хочу знать, есть ли другой, лучший способ. Я все еще работаю над этой проблемой, и я могу найти свое собственное решение.
Джон Чедвик

1
Я почти уверен, что этот вопрос является дубликатом этого вопроса, учитывая двухлетнее неравенство. Кроме того, на этот вопрос действительно нет ответа, или, по крайней мере, нет прямого ответа, тогда как на этот вопрос есть прямой ответ.
Джон Чедвик

Вы проверили мой ответ? Это новое, и никто другой не сделал это таким образом. Хотелось бы немного проверить это. Гарантированно не хакерский.
Milind R

Это действительно не будет работать на ноутбуке, хотя. Но опять же, мне очень странно помечать этот вопрос как дубликат после того, как на него был дан достаточный ответ почти за 2 года до того, как этот вопрос был задан. Я не считаю, что запуск реализации UEFI является хакерским; просто диковинно, но имеет то преимущество, что не требует дополнительных дисков.
Джон Чедвик

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

Ответы:


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.

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


Это работает с установками Windows?
Моав

Я успешно использовал его с Windows 8 еще в 2012 году. Он мне больше не нужен, потому что все, что было сделано за последние несколько лет, использует UEFI, потому что Windows 8+ требует, чтобы производители оборудования поддерживали его. Это, вероятно, все еще работает сегодня, но я не знаю, рекомендую ли я это.
Джон Чедвик

2
Теперь ссылка UEFI DUET должна быть здесь , но она больше не поддерживается; сайт говорит использовать Clover EFI вместо этого.
kirbyfan64sos

1
и вы можете установить Clover на HDD, чтобы устранить необходимость в отдельном диске
phuclv

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

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


1
@wzboy Я использую Arch linux и мне удалось добраться до точки установки Windows (с помощью wimlib-imagex). Теперь я не знаю, как продолжить. Не могли бы вы рассказать о том, как создать VHD-файл из дистрибутива Linux?
Михай Бишог

@ MihaiBişog Вам нужен Windows PE для создания этого VHD. Есть много способов загрузки в Windows PE. Например, GRUB и syslinux могут загружаться в файлы iso.
Чжуоюнь Вэй

Разве это не сломает обновления Windows? Я имею в виду, если Microsoft выпустит обновление, которое должно изменить эти файлы boot / bootmgr, которые вы поместили в образ виртуального диска - они не будут обновлены, и вы даже никогда не заметите этого. Также я предполагаю, что это может нарушить некоторые операции по восстановлению окон. Есть ли другие недостатки?
Powerman

Фактически, BCD / Bootmgr никогда не будет найден Windows, так как он находится внутри образа дискеты / диска. Так что нет вопроса об автообновлении его. Авторемонт не сработает. Все, что связано с инструментами Microsoft, относящимися к вашей загрузке, скорее всего, не будет работать.
Milind R

1
Да, все, что связано с bootmgr, не будет работать, так как они "пропали" после того, как вы помогли вашей Windows загрузиться. Фактически, когда вы запускаете «bcdedit» в cmd.exe, он скажет вам, что не может найти загрузочные файлы. :-)
Чжуоюнь Вэй

5

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

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

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

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


2
Попробовал это, и это сработало. Теперь у меня есть работающая Windows 8.1 на GPT-диске под настройкой BIOS. Все, что мне нужно сделать, это вставить флэш-накопитель USB для его загрузки. После процесса загрузки USB-накопитель можно извлечь. Как и в старые времена, я имею в виду дискету MS-DOS ...
Чжуоюнь Вэй

Смешно. Я работаю над решением, которое не требует другого диска. Можете ли вы сказать мне, как медленно / быстро это?
Milind R

1
Я думаю, что установка bootmgr на другой диск не увеличивает загрузку Windows, по крайней мере, я этого не чувствую.
Чжуоюнь Вэй

2
ОХХХХ ДА. Извиняюсь за то, что был слишком взволнован. Я провел целый день и, наконец, смог загрузить Windows 8.1 на GPT-диск с настройкой BIOS БЕЗ второго (маленького) MBR-диска - с помощью модуля syslinux memdisk, который способен загружать образ жесткого диска.
Чжуоюнь Вэй

1
Вот мой пост: reboot.pro/topic/…
Чжуоюнь Вэй

3

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

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

Я провел несколько экспериментов. Сначала я создал виртуальный жесткий диск 32 Мб, как сказал 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 не является проблемой.
Николай Вакуленко

Не могли бы вы рассказать о своем сценарии и своем решении в этой ветке разработчиков ? Я пытаюсь сохранить все детали вместе.
Milind R

2

В статье Преобразование 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 на запасной. Тем не менее, эта статья определенно полезна, и я все еще заинтересован в том, чтобы заставить ее работать самостоятельно. Я постараюсь не забыть забрать флешку в ближайшее время.
Джон Чедвик

@JohnChadwick вы можете использовать Clover и установить его на жесткий диск, чтобы вам больше не требовался отдельный загрузочный диск
phuclv

@phuclv: Вы заметили, что комментарий Джона Чедвика относится к 2011 году, и что он дал свой собственный ответ на этот пост?
Harrymc

@harrymc, конечно, я знаю. Эта информация для будущих читателей
phuclv

0

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

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

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

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


BIOS ничего не знает о накопителе , будь то GPT или MBR, или даже метка BSD или APM ... Он просто загружает первый сектор (то есть MBR) и запускает его. На этом этапе работу BIOS можно считать «законченной». Если ваш диск не загружается, это просто означает, что на нем нет действительного загрузочного сектора
phuclv
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.