Меню Рубрики

Установка загрузчика на efi раздел

Разбираемся с UEFI и GPT: установка Windows и Kubuntu на один диск

Помните те времена, когда BIOS был 16-битным с адресным пространством в 1 Мб, а вся информация о загрузчиках писалась в MBR? На смену уже давно пришли более гибкие технологии: UEFI (замена BIOS), и GPT (замена MBR).

Предыстория: Понадобилось мне недавно на свой домашний десктоп поставить 2 системы, чтобы разграничить окружение. Kubuntu для разработки на Ruby on Rails (ибо работаю удаленно), и Windows для всяких игрушек в свободное время. Хочу заметить, что несколько лет назад это было достаточно просто: один раздел для винды и один раздел для линукса, загрузчик записывался в MBR. Однако, технологии не стоят на месте, и оказалось, что настройка dual boot’а теперь несколько изменилась.

Итак, начнем.

Терминология

GPT (GUID Partition Table, Таблица разделов GUID) — часть спецификации UEFI. UEFI использует GPT так же как BIOS использует MBR.
Главным отличием GPT от MBR, на мой взгляд, являются:

  • Количество разделов: MBR поддерживает только 4 раздела. Можно и больше, но только через extended partition, что является просто хаком ограничений. GPT поддерживает до 128 разделов.
  • Размер диска: MBR поддерживает диски до 2Тб, в то время как GPT — до 9.4 Зеттабайт (=9.4 × 10^21 байт, или условно 1000 Тб)
  • Порядок загрузки: раньше BIOS загружал MBR, и в нем содержались адреса загрузчиков для каждого раздела диска. Теперь UEFI считывает GPT, находит в таблице все разделы типа efi (на них содержатся загрузчики), и подгружает их в память. Разберем это на примере немного позже.

Что делаем:

Устанавливаем следующие ОС на пустой HDD размером в 1 Тб.

  • Windows 8.1 x64. Windows поддерживает загрузку с GPT начиная с Windows 8 для 32 битной архитектуры и с Windows Server 2003 и Windows Vista для 64 бит (Источник).
  • Kubuntu 15.04. По идее подойдет любой дистрибутив, который поддерживает Grub2, лично я предпочитаю Kubuntu.

NB: Материнская плата поддерживает UEFI

Разбивка диска

Сначала устанавливаем Windows 8, т.к. она автоматически будет использовать GPT.
Разбивка будет выглядеть так (пардон за кривой снимок):

Винда по умолчанию создает 4 раздела:

  1. Recovery (300Мб). Очевидно, что он используется для восстановления системы. Оставим как есть.
  2. EFI partition (100Мб). Помечается как system type (не любят в Майкрософте называть вещи своими техническими именами). Собственно сюда и пишутся загрузчики.
  3. MSR (128Мб, Microsoft Reserved Partition). Для меня остается загадкой, зачем он нужен. Данных там никаких нет, просто пустое место, зарезервированное для каких-то непонятных целей в будущем.
  4. Основной раздел. Мы его поделим на 3: 200 гигов под винду, 500 гигов для раздела под данные и остальное пространство пока оставим неразмеченным (отформатируем потом при установке Kubuntu).

Пропустим саму установку Windows, т.к. в ней все стандартно и понятно.

Теперь загрузимся с USB в Kubuntu Live.

Boot0000 — виндовый загрузчик
Boot0001 — дефолтный загрузчик
Boot0003 — флешка с Kubuntu Live
Обратите внимание, что список загрузчиков не привязан к одному физическому диску как в MBR. Он хранится в NVRAM.

Можем также сразу посмотреть, что же в этом разделе, подмонтировав его:

Там окажутся следующие файлы:

Убедились, что все хорошо. Теперь продолжаем разбивку диска (через KDE Partition Manager).

Первые пять разделов остались прежними. Обратите внимание, как Kubuntu определила разделы:

  • sda2 определился как FAT32. Это практически верно, т.к. файловая система типа EFI основана на FAT, только с жесткими спецификациями.
  • sda3 (MSR) не определился, т.к. файловой системы там так таковой нет.

Нам осталось только отформатировать раздел для Kubuntu в ext4, и выделить раздел под swap.

Несколько слов про swap. Рекомендуют на swap выделять от SQRT(RAM) до 2xRAM. Т.к. у меня 16 Гб RAM, то по минимуму мне надо 4 Гб свопа. Хотя я с трудом могу представить ситуации, при которых он будет использоваться: десктоп в hibernate я не перевожу, и сильно тяжелых программ, которые жрут больше 16 гигов, не использую.

Читайте также:  Установка внешней гранаты на 2109

P.S. При форматировании раздела в swap Partition Manager может выдать ошибки, которые связаны с тем, что Kubuntu автоматически монтирует в себя любой swap раздел, однако на результат эти ошибки не влияют.

Теперь самое главное для правильного dual boot’а. При установке Kubuntu важно выбрать, куда установить загрузчик:

Указываем, конечно же на раздел EFI.

После завершения установки Kubuntu, заходим в систему и проверяем, какие файлы появились на efi разделе (монтировать уже не нужно):

Смотрим, как теперь выглядит список загрузчиков:

Вот как это выглядит при загрузке:

А еще эти загрузчики доступны сразу из UEFI (в старом BIOS’е такое было бы невозможно — там был выбор только диска, он просто не знал, что такое загрузчики):

Ну и напоследок: чтобы dual boot правильно работал, в Windows надо обязательно отключить fast boot. Это такая нехорошая фича, которая может привести к потере данных.

При выключении компьютера Windows сохраняет файловую структуру NTFS разделов в файл (видимо, потому что один файл прочитать быстрее, чем сканировать много разных файлов). Если записать файл на NTFS раздел через линукс, и потом загрузиться в Windows, то Windows просто не увидит файл. Источник

Если выключить комп через Windows, и потом попытаться загрузить Linux, то он просто не запустится из-за «ошибки» NTFS. Источник

источник

Восстановление удаленного загрузочного EFI раздела в Windows 10/8/7

В этой статье мы покажем, как вручную восстановить случайно удаленный загрузочный раздел Windows на UEFI системе. Изначально в статье был описан мой опыт по восстановлению загрузочного EFI раздела на Windows 7, однако статья актуальна и для современных операционных систем Microsoft (от Windows 7 и до Windows 10). Она не раз выручала меня, после случайного форматирования или удаления EFI раздела в Windows 10. В этой статье мы покажем простой способ ручного пересоздания загрузочного EFI и MSR разделов в Windows.

Итак, предположим, что каким-то образом случайно (или не очень случайно, например при попытке удалить с диска OEM разделы производителя) был удален или отформатирован загрузочный EFI раздел на UEFI системе (не BIOS), в результате чего Windows 10 / 8.1 / 7 перестала загружаться, циклически предлагая выбрать загрузочное устройство (Reboot and select proper boot device or insert boot media in selected). Разберемся можно ли восстановить работоспособность Windows при удалении раздела с Boot Manager без переустановки системы.

Структура разделов на GPT диске

Рассмотрим, как должна выглядеть таблица разделов загрузочного жесткого диска с GPT разметкой на UEFI системе. Как минимум должны присутствовать следующие разделы:

  • Системный раздел EFI (EFI System Partition или ESP — Extensible Firmware Interface) – 100 Мб (тип раздела — EFI).
  • Резервный раздел Майкрософт – 128 Мб (тип раздела — MSR).
  • Основной раздел Windows – раздел с Windows.

Это именно минимальная конфигурация. Эти разделы создает установщик Windows при установке системы на неразмеченный диск. Производители ПК или сами пользователи могут дополнительно создавать собственные разделы, содержащие, к примеру среду восстановления Windows в файле winre.wim (Windows RE), раздел с резервным образом системы от производителя (позволяет откатится к исходному состоянию компьютера), пользовательские разделы и т.д.

Раздел EFI c файловой системой Fat32 является обязательным на дисках с GPT разметкой на UEFI системах. Данный раздел, по аналогии с разделом System Reserved на дисках с MSR разметкой, хранит хранилище конфигурации загрузки (BCD) и ряд файлов, необходимых для загрузки Windows. При загрузке компьютера среда UEFI загружает с раздела EFI (ESP) загрузчик (EFI\Microsoft\Boot\bootmgfw.efi) и передает управление ему. Если этот раздел удален, загрузить ОС нельзя.

Читайте также:  Установка компонентной акустики с кроссовером

MSR раздел на GPT диске используется для упрощения управления разделами и используется для служебных операций (например, при конвертирования диска из простого в динамический). Это резервный раздел, которому не назначается код раздела. На этом разделе нельзя хранить данные пользователя. В Windows 10 размер MSR раздела – всего 16 Мб (в Windows 8.1 размер MSR раздела – 128 Мб), файловая система – NTFS.

Вручную создаем EFI и MSR разделы на GPT диске

Т.к. система корректно не загружается, нам понадобится установочный диск с Windows 10 (Win 8 или 7) или любой другой загрузочный диск. Итак, загружаемся с установочного диска и на экране начала установки нажимаем комбинацию клавиш Shift+F10. Должно открыться окно командной строки:

Запустим утилиту управления дисками и разделами:

Выведем список жестких дисков в системе (в этом примере он один, disk . Звездочка (*) в столбце Gpt означает, что диск использует GPT таблицу разделов).

Выведем список разделов на диске:

В нашем примере в системе осталось всего 2 раздела:

  • Раздел MSR — 128 Мб
  • Системный раздел Windows – 9 Гб

Как мы видим, раздел EFI отсутствует (удален).

Наша задача удалить оставшийся MSR раздел, так чтобы на диске осталось неразмечено как минимум 228 Мб свободного места (для разделов MSR и EFI). Удалить оставшийся раздел можно с помощью графической GParted или непосредственно из командной строки (именно так и поступим).

Выбираем раздел для удаления:

Select partition 1
И удаляем его:
Delete partition override

Убедимся, что остался только раздел с Windows:

Теперь мы можем вручную пересоздать разделы EFI и MSR. Для этого в контексте утилиты diskpart последовательно выполните команды:

create partition efi size=100

Убеждаемся, что выбран раздел 100 Мб (звездочка напротив строки Partition 1):

list partition
select partition 1
format quick fs=fat32 label=»System»
assign letter=G
create partition msr size=128
list partition
list vol

В нашем случае разделу с Windows уже назначена буква диска C:, если это не так, назначим ему букву следующим образом:

select vol 1
assign letter=C
exit

Восстановление EFI загрузчика и BCD в Windows

После того, как вы создали минимальную структуру дисковых разделов для UEFI системы, можно переходить к копированию загрузочных файлов EFI на диск и созданию конфигурационного файла загрузчика (BCD).

Скопируем файлы среды EFI из каталога вашего диска, в который установлена ваша Windows:

xcopy /s C:\Windows\Boot\EFI\*.* G:\EFI\Microsoft\Boot

Пересоздадим конфигурацию загрузчика Windows 10 / 7:

g:
cd EFI\Microsoft\Boot
bcdedit /createstore BCD
bcdedit /store BCD /create /d “Windows Boot Manager”
bcdedit /store BCD /create /d “Windows 7” /application osloader

Вы можете заменить надпись “My Windows 10”, на любую другую.

Команда возвращает GUID созданной записи, в следующей команде этот GUID нужно подставить вместо .


bcdedit /store BCD /set default
bcdedit /store BCD /set path \EFI\Microsoft\Boot\bootmgfw.efi
bcdedit /store BCD /set displayorder

Дальнейшие команды выполняются в контексте :

bcdedit /store BCD /set device partition=c:
bcdedit /store BCD /set osdevice partition=c:
bcdedit /store BCD /set path \Windows\System32\winload.efi
bcdedit /store BCD /set systemroot \Windows
exit

Перезагружаем компьютер … В нашем случае с первого раза он не загрузился, пришлось дополнительно поплясать с бубном:

  1. Отключаем питание ПК.
  2. Отключаем (физически) жесткий диск.
  3. Включаем ПК, дожидаемся появления окна с ошибкой загрузки и снова его выключаем.
  4. Подключаем диск обратно.

Затем в нашем случае (тестирование проводилось на виртуальной машине VMWare с UEFI средой) пришлось добавить новый загрузочный пункт меню, выбрав файл EFI\Microsoft\Boot\bootmgrfw.efi на EFI разделе.

В некоторых UEFI меню по аналогии нужно изменить приоритет загрузочных разделов.

После всех рассмотренных манипуляций Windows должна загрузиться корректно.

источник

Как создать загрузочный EFI-раздел Windows на GPT-диске вручную

Когда мы устанавливаем Windows на пустой (неразмеченный) жёсткий диск или отформатированный раздел обычным образом – с использованием установочного носителя, нам не нужно заморачиваться по поводу создания EFI -разметки операционной системы. Все необходимые разделы, в частности, загрузочный EFI , создаются автоматически, если компьютер работает в режиме BIOS UEFI . Но если Windows нужно установить не обычным образом.

Читайте также:  Установка поддона для душа и ширмы

А на другой жёсткий диск со своим независимым загрузчиком, если стоит вопрос в восстановлении работоспособности системы после удаления жёсткого диска с загрузочным разделом, в таких нестандартных ситуациях потребуется ручная работа.

Как вручную создать загрузочный EFI-раздел Windows?

Windows на подключённый к компьютеру второй GPT -диск не устанавливается со своей EFI -структурой. При обычной установке с установочного носителя загрузчик второй системы прописывается на уже существующий EFI -раздел – тот, что находится на первом диске.

Что делает вторую Windows уязвимой – она не сможет самостоятельно существовать, если загрузчик первой системы будет повреждён. Или если выйдет из строя или просто будет отсоединён первый жёсткий диск. Чтобы у второй Windows была своя независимая EFI -разметка, на время её установки нужно сделать невидимой первую систему – отключить её носитель в настройках BIOS , если такое возможно, или аппаратно. Это не всегда удобно, а иногда и невозможно в случае с ноутбуками.

Вторую Windows со своим независимым загрузчиком могут установить запускаемые в среде текущей системы программы типа WinNTSetup или WinToHDD. Но они потребуют указать им загрузочный EFI -раздел.

Создать такой на пустом жёстком диске очень просто.

1. Создание EFI-раздела на пустом жёстком диске в командной строке

Итак, имеем проинициализированный как GPT носитель без разметки и данных.

Запускаем командную строку.

Обязательно делаем это от имени администратора.

В утилите управления дисками видим, что на втором жёстком появился EFI -раздел на 100 Мб. Теперь можем формировать обычный раздел для указания его программам типа WinNTSetup или WinToHDD в качестве системного раздела С.

2. Создание EFI-раздела на пустом жёстком диске утилитой Bootice

Кто не любит командную строку, для создания EFI -разметки пустого носителя может воспользоваться утилитой Bootice с графическим интерфейсом. Она бесплатная, её можно скачать на любом софт-портале Интернета. В главном окне выбираем второй жёсткий. Кликаем «Parts Manage».

Затем – «Re-Partitioning».

Первым делом ставим галочку GPT в графе «Partition table type». Затем галочку ставим «Create ESP partition». И вверху в графе «Settings» убираем все значения «Size» кроме последнего. Жмём «Ок».

В итоге получим разметку диска с EFI -разделом на 128 Мб и разделом, вместившим в себя остальное дисковое пространство.

А как быть, если жёсткий диск не пустой? Если на нём есть структура и хранящиеся пользовательские данные. Или мы хотим восстановить Windows, лишившуюся загрузочного EFI -раздела после выхода из строя или отключения жёсткого диска, на котором ранее существовал её загрузчик. И на этот случай есть решения. Для восстановления системы без загрузчика нам, естественно, понадобится среда для выполнения определённых операций. В одном из случаев сгодится и обычный установочный носитель Windows. В другом случае будем работать с менеджером дискового пространства, потому нам понадобится функциональный и надёжный LiveDisk WinPE. Одним из таких является LiveDisk Стрельца. Сайт загрузки образа — Sergeistrelec.Ru.

3. Создание EFI-раздела в конце Windows

Итак, имеем, к примеру, вторую Windows, лишившуюся EFI -загрузчика после поломки диска с первой системой.

Как её запустить? Самый простой и быстрый способ – создать EFI -раздел в конце системного раздела и пересоздать загрузчик. Для этого не понадобится ничего более командной строки. Загружаемся с установочного носителя Windows, сразу же нажимаем Shift + F10 . Эта комбинация запустит командную строку. Если используем LiveDisk Стрельца, запускаемся, соответственно, с него.

И уже на его борту задействуем командную строку.

источник

Добавить комментарий