Системный раздел EFI (EFI System Partition, ESP) — небольшой раздел с файловой системой FAT32, на котором UEFI-прошивка ищет загрузчики операционных систем. Если сервер загружается в режиме UEFI (как это проверить), без рабочего ESP система не стартует. Ниже — как выглядит раздел, как он монтируется, как защитить его при RAID1 на двух дисках и как восстановить загрузчик.
Как выглядит ESP
lsblk -o NAME,SIZE,FSTYPE,PARTTYPENAME,MOUNTPOINT
findmnt /boot/efi
ls /boot/efi/EFI
efibootmgr -v
- Тип раздела: EFI System (GUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B).
- Файловая система: FAT32.
- Размер: обычно 256–512 МиБ; installimage предлагает значение по умолчанию.
- Точка монтирования:
/boot/efi. - Содержимое: каталоги
EFI/debian,EFI/ubuntu,EFI/BOOTс файлами загрузчика.
Монтирование через fstab
# узнать UUID
blkid /dev/nvme0n1p1
# /etc/fstab
UUID=XXXX-XXXX /boot/efi vfat umask=0077 0 1
Используйте UUID, а не имена устройств, так как нумерация дисков может меняться (NVMe).
ESP при программном RAID1
Прошивка не понимает mdadm, поэтому ESP обычно не включают в обычный RAID1 «как есть». Есть два подхода:
- Два независимых ESP. На каждом диске создаётся свой раздел ESP, загрузчик устанавливается в оба, а содержимое синхронизируется после обновлений:
Добавьте этот шаг в хук обновления GRUB или в cron и проверяйте результат.mkdir -p /mnt/esp2 && mount /dev/nvme1n1p1 /mnt/esp2 rsync -a --delete /boot/efi/ /mnt/esp2/ umount /mnt/esp2 - RAID1 с метаданными 1.0. Метаданные размещаются в конце раздела, и прошивка видит каждый диск как обычный FAT32:
Способ рабочий, но прошивка может записывать в раздел напрямую, что способно нарушить синхронизацию; используйте его осознанно.mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=1.0 /dev/nvme0n1p1 /dev/nvme1n1p1 mkfs.vfat -F32 /dev/md0
Запишите в UEFI запись загрузки для каждого диска: efibootmgr --create --disk /dev/nvme1n1 --part 1 --label "debian2" --loader '\EFI\debian\shimx64.efi' (путь к загрузчику проверьте в каталоге EFI).
Восстановление загрузчика из Rescue
- Активируйте Rescue System и загрузитесь в неё (инструкция).
- Смонтируйте корень, затем ESP, привяжите системные каталоги и войдите в chroot:
mount /dev/md2 /mnt mount /dev/nvme0n1p1 /mnt/boot/efi for d in dev proc sys sys/firmware/efi/efivars; do mount --rbind /$d /mnt/$d; done chroot /mnt - Установите загрузчик заново:
grub-install --target=x86_64-efi --efi-directory=/boot/efi update-grub efibootmgr -v - Повторите для второго диска, если используете два ESP.
Если раздел ESP повреждён, пересоздайте файловую систему: mkfs.vfat -F32 /dev/nvme0n1p1 и выполните установку загрузчика. Формат раздела сотрёт его содержимое, сохраните каталог EFI заранее.
Типичные ошибки
- ESP размером меньше 100 МиБ: не помещаются несколько загрузчиков и обновления прошивок.
- Запись в
fstabпо имени устройства. - Забытая синхронизация второго ESP после обновления GRUB.
- Удалена запись
efibootmgr— прошивка не знает, откуда грузиться (создайте её заново).
Частые вопросы
Можно ли сделать ESP на LVM?
Нет, прошивка не умеет читать LVM; ESP должен быть обычным разделом GPT с FAT32.
Сколько нужно места под ESP?
256–512 МиБ достаточно для нескольких загрузчиков; больший размер нужен редко.
Что будет, если ESP на одном из дисков RAID1 пропадёт?
При схеме с двумя ESP сервер загрузится со второго диска. Для этого загрузчик должен стоять на обоих, а запись об этом — в UEFI. Порядок установки в целом описан в Rescue System и installimage.