- EFI system partition (Русский)
- Contents
- Создание раздела
- Разметка дисков GPT
- Разметка дисков MBR
- Форматирование раздела
- Монтирование раздела
- Известные вопросы
- ESP на RAID
- Советы и хитрости
- Использование bind монтирования
- Разбираемся с UEFI и GPT: установка Windows и Kubuntu на один диск
- Терминология
- Что делаем:
- Разбивка диска
- How to mount the EFI system partition using Ubuntu 16.04 Live CD
- 1 Answer 1
- Загрузка GNU/Linux без стороннего загрузчика
- Введение
- Настройка ядра
- Тестирование
- Перенастройка загрузки на рабочей системе
- Обновление ядра средствами genkernel
- Итоги
EFI system partition (Русский)
Системный раздел EFI (также называемый ESP или EFISYS) представляет собой физический раздел в формате FAT32 (в основной таблице разделов диска, а не под LVM или программным RAID и т.д.), откуда прошивка UEFI запускает загрузчик и приложение UEFI.
Это независимый от ОС раздел, который служит местом хранения загрузочных устройств EFI и приложений, которые будут запускаться с помощью прошивки EFI. Это необходимо для загрузки UEFI.
Contents
Создание раздела
В следующих двух разделах показано, как создать системный раздел EFI (ESP).
Рекомендуется сохранять размер ESP на 512 Мбайт, хотя меньшие/большие размеры тоже приветствуются. [1]
Согласно примечанию Microsoft[2], минимальный размер для системного раздела EFI (ESP) будет составлять 100 МБ, хотя это не указано в спецификации UEFI. Обратите внимание, что для дисков расширенный формат 4K Native drives (4 КБ на сектор) размер составляет не менее 256 Мбайт, поскольку это минимальный размер раздела дисков FAT32 (рассчитанный как размер сектора (4 КБ) x 65527 = 256 Мбайт), из-за ограничений файловой системы FAT32.
Разметка дисков GPT
Выберите один из следующих способов создания ESP для диска GPT с разделами:
- fdisk/gdisk: Создайте раздел с типом раздела EFI System ( EFI System в fdisk или EF00 в gdisk). Перейдите к разделу #Форматирование раздела ниже.
- GNU Parted: Создайте раздел FAT32 и в Parted установите/активируйте флаг boot (не флаг legacy_boot ) на этом разделе. Перейдите к разделу #Монтирование раздела ниже.
Разметка дисков MBR
Создайте раздел с типом раздела EFI System, используя fdisk. Перейдите к #Форматирование раздела.
Форматирование раздела
После создания ESP вы должны форматировать его как FAT32:
Если вы использовали GNU Parted выше, тогда раздел уже должен быть отформатирован.
Если вы получили сообщение WARNING: Not enough clusters for a 32 bit FAT! , уменьшите размер кластера с помощью команды mkfs.fat -s2 -F32 . или -s1 ; иначе раздел может быть нечитаемым UEFI.
Монтирование раздела
This article or section needs expansion.
В случае EFISTUB файлы ядра и initramfs должны храниться в системном разделе EFI. Для простоты вы также можете использовать ESP в качестве самого раздела /boot вместо отдельного раздела /boot для загрузки EFISTUB. Другими словами, после создания и форматирования системного раздела EFI, как указано выше, просто смонтируйте на /boot .
Известные вопросы
ESP на RAID
Можно сделать часть ESP массива RAID1, но при этом возникает риск повреждения данных, и при создании ESP необходимо учитывать дополнительные соображения. Для получения допольнительной информации смотрите [3] и [4].
Советы и хитрости
Использование bind монтирования
Вместо того, чтобы устанавливать ESP на /boot , вы можете подключить каталог ESP к /boot с помощью bind монтирования (смотрите mount(8) ). Это позволяет pacman обновлять ядро напрямую, сохраняя при этом организацию ESP по своему вкусу.
Как и в EFISTUB#Альтернативные точки монтирования для ESP [ссылка недействительна: раздел не найден] , скопируйте все загрузочные файлы в каталог вашего ESP, но смонтируйте ESP вне /boot (например, /esp ). Затем привяжите смонтированный раздел к каталогу:
После проверки успеха отредактируйте свой Fstab, чтобы изменения были постоянными:
Источник
Разбираемся с 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 раздела:
- Recovery (300Мб). Очевидно, что он используется для восстановления системы. Оставим как есть.
- EFI partition (100Мб). Помечается как system type (не любят в Майкрософте называть вещи своими техническими именами). Собственно сюда и пишутся загрузчики.
- MSR (128Мб, Microsoft Reserved Partition). Для меня остается загадкой, зачем он нужен. Данных там никаких нет, просто пустое место, зарезервированное для каких-то непонятных целей в будущем.
- Основной раздел. Мы его поделим на 3: 200 гигов под винду, 500 гигов для раздела под данные и остальное пространство пока оставим неразмеченным (отформатируем потом при установке Kubuntu).
Пропустим саму установку Windows, т.к. в ней все стандартно и понятно.
Теперь загрузимся с USB в Kubuntu Live.
Проверим EFI раздел:
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 гигов, не использую.
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. Источник
Источник
How to mount the EFI system partition using Ubuntu 16.04 Live CD
My Hard drive has the GRUB boot loader on there from a leftover Ubuntu installation and I want to delete it but I need to mount the EFI system partition first. So how can I mount it from the Live CD? Help appreciated, Bondy.
1 Answer 1
To begin, note that deleting the Ubuntu boot loader is not usually necessary. If you plan to re-install Ubuntu, the new installation will take over the old one’s location, so deleting the old boot loader won’t achieve anything. If you plan to boot some other OS that’s already installed, changing the boot order (with efibootmgr in Ubuntu or another Linux, EasyUEFI in Windows, or other similar tools) should be sufficient. The main reason to delete the old boot loader is if you’ve installed (or plan to install) some other OS or boot manager, and you want to keep Ubuntu’s GRUB out of its menu. Beyond that, deleting Ubuntu’s GRUB could qualify as «good housekeeping,» but it’s likely unnecessary.
That said, the most reliable way to mount the EFI System Partition (ESP) from the Ubuntu installer/emergency disk is as follows:
- Open a Terminal window. (To do this, click the Ubuntu icon in the top-left corner of the screen, type «terminal», and either hit Enter or select the Terminal option.)
- Type sudo fdisk -l . This should produce output that identifies the ESP (among other things), like this:
- Identify your ESP; it should specify EFI System in the Type column. In this example, it’s /dev/sda1 . (The ESP is usually /dev/sda1 or /dev/sda2 , but that’s just what’s most common.)
- With the ESP identified, mount it to /mnt , as in sudo mount /dev/sda1 /mnt . If you prefer, you can create a mount point other than /mnt and mount the ESP there. This might be necessary if you want to mount multiple partitions.
You can then use ls , cp , mv , rm , and other text-mode commands in the Terminal window. Note that, unless you add various mount options, you’ll need to use sudo to operate on files on the ESP.
Источник
Загрузка GNU/Linux без стороннего загрузчика
В данной статье я приведу пример, как можно отказаться от использования стороннего загрузчика, будь то Grub или Lilo, если ваш компьютер поддерживает современный стандарт UEFI, пришедший на замену BIOS. Интересной особенностью будет то, что все работы проводим на уже установленной и рабочей системе.
По уровню сложности данная статья ориентирована на опытных пользователей Linux, т.к. некоторых моментов я касаюсь поверхностно, полагаясь на очевидность, чтобы не уходить от основной освещаемой темы.
Введение
Расскажу немного истории — являюсь пользователем Gentoo Linux уже более 5 лет, причем как основной и единственной ОС на всех используемых мною ноутбуках: Lenovo (от X61s до X1) и Apple MacBook Pro. Всегда при новой инсталляции использовал классический метод установки Gentoo на чистый жесткий диск, с использованием chroot. Таблицу партиций и загрузку системы настраивал дедовским способом, как завещал Handbook, на основе традиционного MBR.
Настройка ядра
Необходимо обеспечить поддержку загрузки с использованием UEFI в нашем ядре:
- CONFIG_EFI=y — включение поддержки стандарта UEFI
- CONFIG_EFI_STUB=y — включение возможности загружать ядро прошивкой UEFI, то что нам и надо
- CONFIG_EFI_VARS=y — включение интерфейса управления UEFI через переменные /sys/firmware/efi/vars/*, понадобится чтобы указать где искать ядро для загрузки, используется утилитой efibootmgr
При переходе на UEFI необходимо учесть то, что он не принимает параметры загрузки ядра, поэтому добавим все наши параметры в само ядро:
В примере используемые мною параметры, если говорить о необходимом минимуме, то хватит и указания где находится корневая файловая система:
После внесения указанных изменений компилируем и устанавливаем ядро по обычной процедуре. В Gentoo для этого есть очень удобный инструмент под названием genkernel. После сборки нам потребуется перезагрузить компьютер, т.к. некоторые новые параметры нам нужны для работы с прошивкой UEFI.
Тестирование
Для проверки работоспособности нашего ядра нужно попробовать загрузить ОС через UEFI, но чтобы не рисковать загрузочным разделом нашей рабочей системы, мы будем использовать usb-флешку, предварительно удалив с нее все разделы.
Подготовка
Для загрузки средствами UEFI нам потребуется особый раздел, который называется EFI Secure Partition или сокращенно ESP, на котором будет лежать всего один файл — это подготовленное нами ранее ядро с поддержкой UEFI. По своей сути это обычный GPT раздел с определенным типом и файловой системой FAT32.
Создание ESP-партиции
Для создание ESP-раздела нам потребуется пакет gptfdisk, информация из пакетной базы Gentoo:
Установить его можно выполнив команду с правами root’а:
Работа с данным инструментом почти ничем не отличается от всем знакомого fdisk. Допустим что наша usb-флешка определилась в системе как /dev/sdb и мы, конечно же, имеем права root’а. Выполняем следующие шаги:
В результате мы создали новую партицию sdb1 с типом ‘EFI System’ и размером 100 Мб, для тестирования этого вполне хватит. Теперь, как и с любой новой партицией, нам надо создать на ней файловую систему, в нашем случае это FAT32. Сделать очень просто — достаточно выполнить всего одну команду с правами root’а:
После выполнения команды, файловая система будет создана.
Копирование ядра
Монтируем новую партицию sdb1 в любой каталог и копируем туда наше подготовленное ядро, с включенным CONFIG_EFI_STUB и другими параметрами описанными выше (все команды выполнять с правами root’а):
Настройка BIOS
После подготовки тестовой usb-флешки необходимо перезагрузить компьютер и зайти в настройки BIOS и в разделе отвечающем за процесс загрузки выбрать использование UEFI. После чего загрузка системы должна пройти без каких-либо проблем, если ядро и флешка были подготовлены без ошибок. Тестирование можно считать пройденным и оставить систему загруженную с флешки.
Перенастройка загрузки на рабочей системе
По результатам пройденного выше теста, мы проверили что наше ядро корректно работает с прошивкой UEFI в нашем компьютере, поэтому приступим к миграции нашей рабочей системы на использование нового типа загрузки. Основная проблема в том что, система расположена на разделе созданном традиционной схемой разбиением на основе MBR (Master Boot Record), а для UEFI необходим GPT-раздел. Решается это проблема знакомым нам уже инструментом — gdisk из пакета sys-apps/gptfdisk. При первом запуске gdisk для нашего жесткого диска, пусть это будет /dev/sda, он предложит нам конвертировать таблицы разделов в формат GTP, предупредив о возможной потери данных. После чего проделаем все то что делали при создании usb-флешки, но с небольшими изменениями.
С учетом вышесказанного, план работ будет выглядеть следующим образом:
- отключить загрузочный раздел
- сделать резервную копию раздела
- выполнить конвертацию MBR -> GPT
- создать новую файловую систему на загрузочном разделе
- подключить к точке монтирования и скопировать ядро
- настроить прошивку UEFI
- перезагрузить систему и проверить результат
Далее остановимся на каждом пункте более подробно.
Отключить загрузочный раздел
В большинстве случаев загрузочный раздел подключен в каталог /boot и имеет первый номер среди партиций блочного устройства, т.е. /dev/sda1, с учетом того, что sda это наш системный диск. В моей системе все именно так, поэтому выполняем следующую команду, с правами root’а:
Если данный каталог не используется какими либо приложениями, то он молча и без проблем отключиться от корня и мы сможем выполнить резервное копирование всей партиции /dev/sda1.
Резервное копирование загрузочного раздела
На данном этапе нам необходимо сделать резервную копию всего раздела, чтобы иметь возможность быстро откатить все изменения. В идеальном случае можно выполнить бекап всей системы, если у вас есть под рукой необходимые инструменты. Копирование партиции выполняется следующим образом, опять же под root’ом:
Проверим пригодность нашей резервной копии:
После выполнения команды ls мы должны увидеть содержимое каталога аналогичное тому, что было в рабочей системе до отключения точки монтирования /boot.
Выполнить конвертацию таблицы MBR -> GPT
Переходим к работе с утилитой gdisk. Весь процесс конвертации прост и требует минимум участия с нашей стороны. От нас необходимо запустить команду gdisk, сменить тип партиции sda1 на EF00 (EFI System) и сохранить изменения, т.е. процедура полностью аналогична той что мы делали с usb-флешкой, за исключением того что партиции уже созданы. После сохранения настроек, наша таблица будет переведена в новый формат, используемый GPT и пригодный для работы с UEFI.
Создать новую файловую систему на новом загрузочном GPT-разделе
По аналогии с процедурой создания usb-флешки, нам надо подготовить файловую систему FAT32 на нашем загрузочном разделе, теперь уже типа ‘EFI System’, выполнив команду:
После выполнения команды, файловая система будет создана.
Подключить sda1 и скопировать ядро
На данном этапе нам необходимо скопировать подготовленное ядро на новый раздел. Для этого выполните:
Подготовка загрузочного раздела на этом закончена.
Настроить прошивку UEFI
Для того чтобы UEFI мог передать управление нашему ядру, необходимо указать где оно находится. Настройкой параметров прошивки UEFi занимается инструмент под названием efibootmgr:
Его необходимо установить, выполнив команду:
После установки выполним настройку UEFI следующей командой:
Подробное описание всех параметров можно посмотреть в man-странице по efibootmgr. Мы используем следующие параметры:
- —create — создаем новую переменную в загрузчике
- —label ‘Gentoo-3.6.11’ — название которое будет отображаться в списке загрузочных устройств
- —loader ‘\bzImage.efi’ — путь к загрузчику, в нашем случае он встроен в ядро, путь абсолютный и с использованием «\»
- —part 1 — использовать первую партицию блочного устройства sda
После выполнения команды будет показан подробный вывод о том какие изменения в UEFI были внесены.
Перезагрузить систему и проверить результат
На этом вся настройка завершена и нам осталось перезагрузить систему, предварительно отключив usb-флешку, чтобы посмотреть как система загрузится без использования стороннего загрузчика.
После успешной загрузки системы, пакет загрузчика можно удалять:
На этом все и можно работать с системой.
Обновление ядра средствами genkernel
При обновлении ядра в будущем, с использованием инструмента genkernel, несколько изменится процедура, т.к. ядро больше не надо инсталлировать в /boot. Поэтому вместо ‘genkernel all’ необходимо выполнять ‘genkernel kernel’, предварительно поправив параметр в значение INSTALL=«no» в конфигурации /etc/genkernel.conf. После сборки ядра, его необходимо переименовать и вручную скопировать в каталог /boot.
Процесс обновления в итоге будет выглядеть следующим образом:
Итоги
Плюсы:
- отказались от одной прокладки в процессе загрузки ОС
- уменьшилось время загрузки системы
- изучили приемы работы с новым стандартом UEFI, пришедшему на смену BIOS
Источник