Завантаження Windows 7/10 з GPT диска на BIOS системі (без UEFI)

Сьогодні ми розберемося, як встановити будь-яку сучасну версію Windows (в тому числі Windows 7 або Windows 10) на жорсткий диск, з таблицею розділів GPT на застарілому комп'ютері з BIOS, який не підтримує сучасне середовище UEFI. Необхідність виконати такий трюк виникла при спробі встановити Windows Server 2008 R2 x64 на сервері HP DL380 G8 (сервера HP DL поки не підтримують EFI) з локальними дисками, загальна ємність яких в RAID 5 перевищує 4 Тб. При стандартній установці Windows на диск з MBR розміткою, в системі доступні тільки 2 Тб. Розмаїття або отримати доступ до решти 2 ТБ місця на диску з-під Windows не вийде. Єдиний спосіб скористатися всім доступним місцем на диску - перетворити розмітку диска в формат GPT.

У цій статті описано, як налаштувати завантаження Windows з жорсткого диска, розміченого в таблиці розділів GPT на комп'ютері з класичним BIOS (в якому відсутня UEFI) або в режимі Legacy BIOS. Операційна система Windows не вміє завантажуватися з GPT дисків на старих BIOS системах. Для обходу цього обмеження ми скористаємося методикою перенесення BCD завантажувача Windows на окрему невелику USB флешку (або HDD диск) з таблицею розділів MBR. Дана флешка буде використовуватися тільки для запуску завантажувача Windows, який потім повинен передати управління основним образу Windows, розташованому на диску з GPT розміткою. Інструкція універсальна і повинна працювати як в Windows 7, так і Windows 10 і будь-яких інших підтримуваних 32 і 64 редакціях Windows.

зміст:

  • Переваги GPT перед MBR
  • Завантаження Windows з GPT диска
  • Установка Windows на GPT диск на комп'ютері з BIOS
  • Gptgen - перетворимо таблицю розділів диска з MBR в GPT без видалення розділів
  • Перенесення завантажувача Windows на USB флешку

Переваги GPT перед MBR

Які ж переваги дає використання GUID Partition Table (GPT) - нового формату розміщення таблиць розділів на жорсткому диску. Таблиця розділів GPT дозволяє обійти ряд обмежень класичної таблиці розділів MBR. Перелічимо основні моменти:

  • Підтримка жорстких дисків розміром більше 2,2 Тб (Максимальний доступний розмір диска для GPT- 9,4 ЗетаБайт (9,4 × тисячі двадцять один байт))
  • Підтримка до 128 розділів на диску (в MBR тільки 4 розділу)
  • висока надійність, досягається завдяки дублюванню таблиці розділів в декількох місцях диска і перевірки таблиці розділів за допомогою циклічної перевірки парності з надмірністю (CRC). Таким чином, структура розділу диска не втрачена при пошкодженні перших секторів диска.
  • Немає необхідності використовувати логічні розділи, схильні до різних помилок

Завантаження Windows з GPT диска

Згідно офіційній документації Microsoft http://msdn.microsoft.com/en-us/windows/hardware/gg463525.aspx, все її ОС, починаючи з Windows Server 2003 SP1, підтримують томи з розміткою GPT як дисків з даними, однак завантажитися з GPT томи зможуть лише 64 бітові версії Windows, встановлені на материнських платах з підтримкою нової специфікації UEFI (Unified Extensible Firmware Interface). Таким чином, не вийде встановити або завантажити Windows з GPT диска на старих комп'ютерах з класичним BIOS.

Порада. існує кілька обхідних рішень, дозволяють завантажити Windows 10/7 x64 на BIOS системах з GPT диска. Для цього потрібно скористатися завантажувальним диском, що містить емулятор середовища розробки UEFI - DUET (Developer's UEFI Environment), імітує EFI. У цій конфігурації BIOS комп'ютера почне завантажувати з встановленого SYSLINUX, який завантажує емулятор UEFI (DUET). DUET в свою чергу викликає стандартний завантажувач Windows - bootx64.efi. Також є можливість перекладу диска в гібридний MBR режим (hybrid mbr) за допомогою Linux-утиліти gdisk. Однак в обох випадках процедура задоволена складна і вимагає від користувача доброго знання ОС Linux.

Ще раз відзначимо важливий факт, який слід назавжди засвоїти: завантаження Windows x64 з GPT диска можлива тільки на системі з UEFI.

Таким чином, якщо ваш комп'ютер працює на базі BIOS, і вам необхідно щоб його диск містив таблицю розділів GPT, найпростіше буде додати в систему ще один жорсткий диск (звичайний або SSD) з розміткою MBR, встановити на нього Windows і надалі завантажуватися вже з нього.

Ми спробуємо трохи модифікувати цю методику. Для цього нам знадобиться USB флешка або SD карта невеликого обсягу (не менше 64 Мб) з MBR розміткою, на якій ми розмістимо диспетчер завантаження Windows - bootmgr. Ця завантажувальна флешка буде забезпечувати початкову завантаження системи і передавати управління завантажувачу основної системи, розташованому на GPT томі.

важливо. Система повинна на рівні BIOS підтримувати завантаження з USB флешки або SD карти.

Таким чином ми зможемо забезпечити завантаження будь-(як 32, так і 64 бітної версії Windows !!!) З GPT диска на системі з BIOS, що не підтримує EFI.

Установка Windows на GPT диск на комп'ютері з BIOS

Припустимо, у нас є комп'ютер з BIOS (без UEFI), на жорсткому диску якого використовується нова таблиця розділів GPT. При спробі встановити Windows на gpt диск такий комп'ютер, інсталятор Windows видасть помилку:

Windows can not be installed to this disk the selected disk is of the GPT Partition Style

У російській версії помилка:

Установка Windows на даний диск. Обраний диск мають стиль розділів GPT.

Порада. Здійснити конвертацію диск з MBR в GPT з втратою всіх даних можна, натиснувши на екрані установки Windows комбінацію Shift + F10. І виконавши в командному рядку наступні команди:
Diskpart
select disk 0 (Якщо в системі один жорсткий диск)
clean (Очистити вміст диска)
convert gpt (Перетворити таблицю розділів в GPT)

Встановити Windows 10 / 8.1 / 7 безпосередньо на GPT диск в такій ситуації можливо тільки в режимі UEFI через емуляцію цього середовища за допомогою DUET. Але в такому режимі можливо установка тільки 64 бітових версій Windows, і сама процедура, як ми вже говорили вище, досить складна.

В такому випадку, набагато простіше в звичайному режимі встановити Windows на MBR диск, а потім конвертувати його в GPT за допомогою утиліти gptgen.

Gptgen - перетворимо таблицю розділів диска з MBR в GPT без видалення розділів

Консоль Windows "Управління дисками" дозволяє конвертувати диск з розмітки MBR в GPT тільки "чисті" розділеного диски. Консоль не дозволить виконати конвертацію розділів на диску, на якому вже встановлена ​​ОС.

Примітка. У Windows 10 1703 (і вище) є консольна утиліта mbr2gpt.exe, що дозволяє виконати конвертацію таблиці розділів диска з MBR в GPT без втрати даних (див. статтю Конвертація MBR в GPT без втрати даних в Windows 10)

Для онлайн перетворення жорсткого диска з MBR в GPT можна скористатися невеликою утилітою Gptgen, що дозволяє "на льоту" перетворити формат таблиці розділу без необхідності видалення всіх розділів (без втрати даних).

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

Скачайте утиліту gptgen, і розпакуйте її в довільний каталог (наприклад, c: \ tools \ gptgen-1.1).

  1. Запустіть командний рядок з правами адміністратора
  2. Виконайте команду: diskpart
  3. В контексті diskpart виведемо на екран всі диски в системі: list disk В даному прикладі в системі є один диск розміром 40 Гб з індексом 0 (Disk 0). Як ви бачите, цей диск має стандартну таблицю розділів MBR (стовпець Gpt порожній)
  4. Перетворимо таблицю розділів диска 0 з MBR в GPT командою: gptgen.exe -w \\. \\ physicaldrive0 В процесі виконання утиліти з'явився попередження про те, що розробники не гарантують, що після перетворення в GPT з розділу на цьому диску з нього вийде завантажитися .Примітка. 0 в кінці physicaldrive показує, що потрібно конвертувати disk 0.gptgen.exe: Partition table converter v1.1
    Boot: 1, Type: 0x7, Start: sector 2048, Length: 204800 sectors
    Boot: 0, Type: 0x7, Start: sector 206848, Length: 83675136 sectors
    WARNING: Boot partition (s) found. This tool can not guarantee that
    such partitions will remain bootable after conversion.
    Do you want to continue? [Y / N] y
    Writing primary GPT and protective MBR to LBA address 0 ...
    Writing secondary GPT to LBA address 83886047 ...
    Success!

Отже, перетворення таблиці розділів в GPT пройшло успішно!

Перенесення завантажувача Windows на USB флешку

Перезавантажуємо комп'ютер і переконуємося, що BIOS система не може завантажиться з жорсткого диска з GPT таблицею. Так і має бути! Підключаємо до системи невелику USB флешку або SD карту. Завантажуємося з установочного CD / USB диска з Windows (підійде як інсталяційний диск з Windows 10, так і Win 7, як в нашому випадку) і на екрані установки натискаємо Shift + F10, відкриваючи консоль командного рядка:

  1. Виконайте команду: diskpart
  2. Виведемо список дисків в системі: list disk . В даному випадку в системі є два диски: Disk 0 - жорсткий диск з системою розміром 40 Гб (* в стовпці Gpt вказує, що даний диск містить таблицю розділів GPT) і Disk 1 - USB флешка розміром 1 Гб.
  3. Розберемося з розділами на дисках і буквами, які їм призначені. Виберемо жорсткий диск: select disk 0 і виведемо список розділів на ньому: list volume Виходячи з розмірів розділів можна зрозуміти, що система встановлена ​​на 2 розділі (Volume 2), якій призначена буква D: (дана буква може не відповідати букві системного диска, який відображається в самій Windows)
  4. Створимо необхідні розділи на флешці:
    select disk 1 (Вибираємо флешку)
    clean (Очищення вмісту диска)
    create partition primary size = 1000 (Створюємо на USB флешці основний розділ, в даному випадку розміром 1 Гб)
    format (Форматіруем його в файлової системі FAT32. Не використовуйте для USB флешки файлову систему NTFS, тому що завантажиться з такого розділу не вийде)
    select partition 1 (Вибираємо перший розділ на флешці)
    active (Помічаємо розділ як активний)
    list volume (Виведемо список розділів ще раз. У цьому прикладі видно, що створений нами розділ має індекс 3)
    select volume 3 (Виберемо його)
    assign letter = G (Призначимо йому вільну букву диска, наприклад G)

    list volume (Переконався, що розділу на флешці присвоєна буква G)
    exit (Вихід з утиліти diskpart)
  5. Скопіюємо операційне середовище завантаження з системного диска на флешку: bcdboot d: \ Windows / l en-us / s g:
  6. Запишемо на флешку завантажувальний код для забезпечення завантаження bootmgr (диспетчера завантаження Windows): bootsect / nt60 G: / mbr / force
  7. Перезавантажуємося

Зайдіть в BIOS і задайте максимальний пріоритет завантаження вашому USB (SD) накопичувача. Збережіть зміни. Якщо ви все зробили правильно, система повинна завантажитися коректно. Упевнитися, що ваша Windows знаходиться на GPT диску можна в диспетчері дисків (diskmgmt.msc), Відкривши властивості системного диска. На вкладці Volumes зазначено, що тип таблиці розділів - GPT (Partition style - GUID Partition Table)

Подібна методика перенесення завантажувача на окрему USB флешку дозволить скористатися усіма перевагами таблиці розділів GPT і використовувати всю місткість жорсткого диска (розміром більше 2.2 Тб) на системах з BIOS (без середовища UEFI). Подібний трюк можна проробити з наступними (навіть 32 бітових версіях) Windows:

  • Windows 10 / Windows Server 2016
  • Windows 8, Windows 8.1
  • Windows Server 2012/2012 R2
  • Windows 7
  • Windows Server 2008/2008 R2
  • Windows Vista
  • Windows Server 2003 SP1 / 2003 (64-bit)
  • Windows XP x64
Дісклаймер. Стаття пропонується як є. Всі зазначені операції були протестовані на віртуальній машині - на реальних машинах тестування не проводилося. Якщо хтось протестує подібну конфігурацію і роботу системи на фізичному залозі і відпише про результати - буду дуже радий. За наявне інформації деякі старі комп'ютери з BIOS в принципі не дозволяють працювати з GPT дисками, такі диски просто не визначаються.

Також потрібно розуміти, що кожен раз при включенні / перезавантаження системи ваша USB флешка з MBR таблицею і загрузчиком на ній повинна бути підключена до комп'ютера, інакше Windows просто не буде завантажуватися.