Системный раздел 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 не обязательно должен быть в начале таблицы разделов. Единственное, что нужно, — это установить для шестнадцатеричного кода 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.

Сначала сверьтесь с cat /proc/mdstatсостоянием MD. Результат может быть таким:

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-device» будет md2. Это будет использоваться для ESP. Создайте раздел на каждом устройстве, как уже было описано выше.

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

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

После создания mdadm.confдолжен быть сгенерирован.

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

Отформатируйте только что созданный раздел с помощью FAT32:

$ mkfs.vfat -F 32 /dev/nvme0n1p3 # or the md device
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

Microsoft предлагает с Windows Server 2012 инструмент, 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.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *