Windows на гібридному MBR / GPT


7

Я подумав, що нарешті відсунув Windows у віртуальну машину, але, на жаль , я натрапив на кілька ігор, у які я хотів би пограти, які просто не будуть робити в цій установці. За ті часи, коли Windows востаннє займала свій власний визначений фрагмент мого диска, я багато переглянув різні дистрибутиви ОС та Linux, і виявилося, що, маючи вільний простір, я мав максимальну кількість підтримуваних розділів. за таблицями розділів MBR . Тож, вважаючи, що це слід Just Work® тут у 21 столітті, і провівши короткий огляд Google, який вказав, що він повинен працювати, я перейшов до таблиці розділів GUID (GPT) і спробував встановити Windows 7. Ось і ось, Windows 7 працює лише з GPT на системах EFI, а моя використовує BIOS. Яя повинен був це помітити в своїх попередніх дослідженнях, але це було б просто надто просто.

Отже, мені залишається вибір перетворення назад в MBR і намагання змінити макет розділів навколо такого, щоб я міг зробити його для Windows, або з гібридним MBR . Останнє звучить привабливіше. На жаль, в Інтернеті є багато страшних попереджень щодо гібридних MBR, тому у мене є кілька питань.

Чи зробить Windows щось потворне для мого завантажувача, оскільки він дійсно на GPT, але він побачить MBR? Чи потребуватиме цього більше ремонту, ніж завантаження з LiveCD та запуску grub-install? Чи є щось, що мені потрібно уникати, крім того, щоб переконатися, що я ніколи не торкаюся інструментів розділення в Windows? Чи вибухне мій комп'ютер? Чи врятувало б багато головних болів, якби я просто перейшов на MBR? (Я розумію, що Маки використовують гібридні MBR з Boot Camp, тому, сподіваюся, це не буде настільки складно, як я це роблю.)

Відповіді:


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-бустер у SYSLINUX, написаний Х. Пітером Анвіном, є ще одним.

Обидва шукатимуть "активний" розділ та завантажуватимуть та запускатимуть його VBR, ефективно завантажуючись за старим ПК / AT та PC98, але за допомогою таблиці розділів EFI. Якщо цих двох немає, найкращі варіанти, які ви отримаєте зараз, це:

  • GRUB 2 : На жаль, це все ще покладається на вказівку провідних номерів у свій завантажувальний код MBR, щоб повідомити, де знайти наступну частину завантажувача. Але цей другий етап, завантажений та запущений, цілком здатний зрозуміти таблицю розділів EFI та завантажувати завантажувачі операційної системи зсередини розділів. Він не знає, як запускати завантажувачі операційної системи EFI, проте знає лише, як впоратися або з VBR, або з Linux, і з BSD.
  • UEFI DUET: ( Род Сміт обговорює це докладно. ) Знову, на жаль, хоча це встановлюється в об'єм і створює повністю спроможний менеджер завантаження EFI та EFI Shell, йому все ж потрібно щось інше, щоб завантажити та запустити свій VBR в першу чергу. І саме зараз щось інше повинно бути чимось на зразок GRUB2, який сам покладається на номери жорстких проводів сектору в коді MBR або SYSLINUX, або ж мій завантажувальний пристрій MBR, відомий розділенням. Але ви зможете запустити належні завантажувачі операційної системи 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 Boot Manager. Таким чином, вам знадобиться:

  • встановити ПК / AT версію Microsoft Boot Manager та домовитись про те, щоб GRUB2 знав, де він знаходиться, якщо ви використовуєте GRUB2; або
  • завжди завантажувати UEFI DUET і звідти запускати версію EFI Microsoft Boot Manager.

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


Не цікаво, чому ви називаєте макет розділу як "Розділення EFI", а не GPT (таблиця розділів GUID) або стиль GPT? Оскільки ви, здається, досить специфічні щодо термінологій, мені цікаво знати, чому ви уникаєте називати це розділ GPT або GUID.
Milind R

Так ви кажете, що після встановлення в режимі UEFI Windows може знову повернутися до завантаження з нього в режимі PC / AT? Тоді чому це не стандартна порада для тих, хто хоче використовувати Windows у більш сучасному стилі розбиття, але не мають прошивки EFI?
Milind R

6

Існує кілька можливих варіантів вирішення цієї проблеми. Підсумовуючи, більш-менш мій порядок вподобань:

  • Оновіть материнську плату - якщо ви отримаєте материнську плату з функціями завантаження UEFI, ви будете налаштовані, оскільки потім зможете встановити Windows в режимі UEFI. Більшість (можливо, всі) плати, засновані на Sandy Bridge від Intel, здатні використовувати UEFI, хоча деякі не рекламують цей факт. Багато нових плат AMD також можуть працювати з UEFI. Насправді є ймовірність, що ви вже отримали таку дошку. На багатьох плат бренда Intel, проданих за останні кілька років, є можливість завантаження UEFI на своїх екранах налаштувань CMOS. Ви можете спробувати знайти такий варіант. Вам може знадобитися використовувати режим UEFI для всіх ваших ОС. На щастя, Linux конвертується досить легко і може перемикатися вперед і назад без перенастроювання, як тільки він налаштований для завантаження в будь-якому випадку. Зауважте, що для установки Windows у режимі UEFI вам знадобиться 64-розрядна версія Vista або 7.
  • Використовуйте другий жорсткий диск - Ви можете встановити Windows на диск MBR і зберегти Linux на диску GPT. Ви навіть можете помістити розділи даних Windows на диск GPT, якщо вам подобається (за умови використання Vista чи 7); в MBR має бути лише завантажувальний диск Windows. Навіть якщо у вас є старий накопичувач на 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, знімати її до найважливіших і використовувати її як завантажувач.
  • GPT-навантажувач SYSLINUX не використовує жорстко кодовані секторні значення; у нього достатньо розумних даних, щоб прочитати GPT та перейти до розділу із встановленим на ньому застарілим прапором для завантаження BIOS. Не те, що в секторі жорсткого кодування є щось не так, як це робить GRUB 2; ці два рішення просто мають різні переваги та недоліки.

3
Я дізнався про завантажувальну програму MBR, відомої про SYSLINUX EFI, деякий час після того, як я знайшов пропозицію T13, написав власну завантажувальну програму MBR з нуля, яка читає таблицю розділів EFI, та опублікував її у світі 2011-06-26; все це в свою чергу було після того, як я написав вищезгадану відповідь і помітив прогалину, яка потребувала заповнення. Мені слід дійсно оновити свою відповідь тут, щоб зауважити, що я одна з двох людей у ​​світі, поки що заповнила прогалину. ☺
JdeBP

Значення сектору жорсткого кодування робить процес завантаження надзвичайно крихким, що призводить до жахливої ​​підказки щодо рятування, навіть для найменшої модифікації розділу. Я переживав це багато разів, і це відклало мене від Linux на деякий час, поки UEFI не зробив це надійним.
Milind R

Syslinux не використовує твердо кодовані секторальні значення, але, з мого читання коду складання, він покладається на жорсткий код GUID розділу . Схоже, це не так у випадку з кодом MBR @ JdeBP для дисків GPT.
Milind R

0

Якщо у вас навіть невеликий диск MBR, ви можете це зробити без жодного злому. Він буде працювати навіть з Windows 32 біт . Дискета або USB-накопичувач дійсно виконають

Завантажте диск для встановлення / відновлення Windows. Створіть системний диск на паличці та використовуйте bcdbootдля розміщення завантажувальних файлів на палиці. Додайте завантажувач із bootsect. Змініть {bootmgr} deviceна boot. Черевик з палички.

Кроки докладно тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.