Конфигурация системного раздела EFI (ESP)

Последнее изменение: Wednesday November 22nd, 2023

Из этой статьи вы узнаете о разделе системы EFI

Введение

Раздел системы EFI (или ESP) – это независимый от ОС раздел, отформатированный в FAT12, FAT16 или FAT32, который служит местом хранения загрузчиков и драйверов EFI, запускаемых фирмварью UEFI, и является обязательным для загрузки по протоколу UEFI.

Настройка раздела системы EFI

Linux (с использованием GRUB)

Сначала вам нужно изменить таблицу разделов. Убедитесь, что на каждом диске есть как минимум 200 МБ неразмеченного пространства. Чтобы создать ESP, вам нужно определить раздел в таблице разделов. Вы можете сделать это с помощью gdisk.

$ gdisk /dev/nvme0n1
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help):

Выбранный диск имеет таблицу разделов GPT. Введите p, чтобы вывести текущую таблицу разделов.

Command (? for help): p
Disk /dev/nvme0n1: 1000215216 sectors, 476.9 GiB
Model: SAMSUNG MZVLB512HAJQ-00000
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 81C8DFEB-06A0-4164-84BC-B5F5D696B519
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1000215182
Partitions will be aligned on 2048-sector boundaries
Total free space is 411614 sectors (201.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048       999805582   476.7 GiB   8300  Linux filesystem

Command (? for help):

В этом случае есть только один раздел размером 476.7 GiB, где установлена ОС. Кроме того, есть общее свободное пространство 201.0 MiB, которое не размечено. Вы будете использовать эти 200 MiB для ESP. Чтобы создать новый раздел, введите n.

Command (? for help): n
Partition number (2-128, default 2):
First sector (34-1000215182, default = 999806976) or {+-}size{KMGTP}:
Last sector (999806976-1000215182, default = 1000215182) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): EF00
Changed type of partition to 'EFI System'

Примечание: ESP не обязательно должен находиться в начале таблицы разделов. Вам нужно только установить Hex-код в EF00 и использовать минимальный размер 200MiB.

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

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/nvme0n1.
The operation has completed successfully.

Чтобы убедиться, что таблица разделов перезагружается, выполните partprobe.

Вывод lsblk должен выглядеть примерно так:

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0         7:0    0     4G  1 loop
nvme0n1     259:0    0   477G  0 disk
├─nvme0n1p1 259:4    0   512M  0 part
├─nvme0n1p2 259:5    0 476.2G  0 part
└─nvme0n1p3 259:6    0   256M  0 part

ПРИМЕЧАНИЕ

Если сервер имеет более одного диска в системе, то рекомендуется создать ESP в RAID 1. Важно в этом случае установить --metadata=1.0 на MD. Это записывает метаданные MD в конец раздела, а не в начало раздела. Это необходимо в данном случае, чтобы фирмварь UEFI имела возможность обнаруживать ESP.

Сначала проверьте состояние MD с помощью cat /proc/mdstat. Вывод должен выглядеть примерно так:

Personalities : [raid1] [raid10] [linear] [multipath] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 nvme0n1p1[1] nvme1n1p1[0]
      523712 blocks super 1.2 [2/2] [UU]

md1 : active raid1 nvme0n1p2[1] nvme1n1p2[0]
      1874716672 blocks super 1.2 [2/2] [UU]
      bitmap: 1/14 pages [4KB], 65536KB chunk

В этом случае следующим доступным “md-устройством” будет md2. Вы будете использовать его для ESP. Создайте раздел на каждом устройстве, как уже описано выше.

Создайте устройство MD следующим образом. (Вам нужно адаптировать количество raid-devices и логических устройств):

mdadm --create --verbose --level=1 --raid-devices=2 --metadata=1.0 /dev/md/2 /dev/nvme0n1p3 /dev/nvme1n1p3

После создания устройства MD сгенерируйте mdadm.conf.

mdadm --detail --scan /dev/md/2 >> /etc/mdadm/mdadm.conf

Форматируйте новосозданный раздел в FAT32:

$ mkfs.vfat -F 32 /dev/nvme0n1p3 # или устройство md
mkfs.fat 4.1 (2017-01-24)

Создайте каталог /boot/efi с помощью mkdir /boot/efi.

Примонтируйте раздел ESP в /boot/efi с помощью mount.

Получите UUID раздела с помощью blkid -o value -s UUID /dev/your_esp_partition_or_md_device и создайте новую запись в fstab:

UUID=the_uuid_of_the_esp /boot/efi vfat umask=0077 0 1

Чтобы установить загрузчики EFI, вам сначала нужно установить загрузчик EFI-GRUB.

На Debian/Ubuntu это grub-efi-amd64-bin; на CentOS – grub2-efi-x64.

Теперь вы можете установить загрузчик EFI-GRUB:

$ # Ubuntu/Debian
$ grub-install --target=x86_64-efi --efi-directory=/boot/efi --no-floppy --no-nvram --removable

$ # CentOS
$ grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

Windows

С 2012 года Microsoft предоставляет инструмент под названием mbr2gpt, который автоматически преобразует таблицу разделов в GPT и также создает ESP.

Рекомендуется выполнять это в среде WinPE, но вы также можете сделать это в работающей системе.

Откройте командную строку с повышенными привилегиями (cmd) и выполните команду mbr2gpt /validate /allowFullOS. Примечание: /allowFullOS требуется только при выполнении преобразования в работающей системе (без WinPE). Вывод должен выглядеть примерно так:

C:\Windows\System32> mbr2gpt /validate /allowFullOS
MBR2GPT: Attempting to validate disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Validation completed successfully

Важно: Если проверка завершится неудачно, тогда прервите процесс и выясните, почему она не удалась. Если диск динамический, то этот метод не подходит.

Если проверка прошла успешно, продолжайте с преобразованием. Вы можете сделать это с помощью команды mbr2gpt /convert /allowFullOS. Вывод должен выглядеть примерно так:

C:\Windows\System32> mbr2gpt /convert /allowFullOS
MBR2GPT will now attempt to convert the default book disk.
If conversion is successful the disk can only be booted in GPT mode.
These changes cannot be undone!

MBR2GPT: Attempting to convert disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Trying to shrink the OS partition
MBR2GPT: Creating the EFI system partition
MBR2GPT: Installing the new boot files
MBR2GPT: Performing the layout conversion
MBR2GPT: Migrating default boot entry
MBR2GPT: Adding recovery boot entry
MBR2GPT: Fixing drive letter mapping
MBR2GPT: Conversion completed successfully
MBR2GPT: Before the new system can boot properly you need to switch the firmware to boot to UEFI mode!

Теперь вы можете изменить загрузочное программное обеспечение на UEFI.

Was this article helpful?
Просмотры: 3053

10 лет с BeeHosting!
Отмечаем скидками до 70% на все услуги
+ бесплатная миграция сайта.

Facebook Instagram linkedin

Beehosting.pro website uses cookies

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services.

Меню