Правильное место для EFI при установке Debian 9.9

Предполагая, что размер сектора вашего диска составляет 512 байт, я думаю, это может помочь (вам понадобится sfdisk)

#!/bin/bash
DISK=/dev/sdb
OFFSET=2048
SIZE=$(( ($(sfdisk -s $DISK) * 2 - $OFFSET) / 2 ))
POS_MAX_P1=$(( $SIZE + $OFFSET - 1 ))
POS_MIN_P2=$(( $POS_MAX_P1 + 1 ))
PART_TYPE=83     // Here you can change the type of the partitions

LAYOUT="2048,$POS_MAX_P1,$PART_TYPE\n$POS_MIN_P2,,$PART_TYPE"

echo -e $LAYOUT | sfdisk $DISK
partprobe $DISK
echo -e "/dev/sdb1\t/data01\tauto\t0 1\n/dev/sdb2\t/data02\tauto\t0 1\n" >> /etc/fstab
3
28.05.2019, 14:29
1 ответ

Стандартное место (по крайней мере для Debian )для вашего раздела EFI — /boot/efi. Это может быть и должно быть разделом FAT32.

В стандартной компоновке Debian Grub EFI grub состоит из трех частей:

  1. /boot/efi
    Установленный раздел EFI
    Содержит загрузчик и конфигурацию stub grub
  2. .
  3. /boot/grub
    Тот же раздел /boot или /
    Содержит модули grub и фактическую конфигурацию grub
  4. .
  5. /etc/grub.d
    Тот же раздел, что и /
    Содержит сценарии автоматической настройки
  6. .

Grub не устанавливается полностью на EFI, значительная его часть находится в другом месте. Таким образом, для загрузки вам все еще нужен /boot/grub. Он устанавливает только заглушку и конфигурацию заглушки, чтобы указать на остальные. Типичная конфигурация заглушки EFI выглядит следующим образом(/boot/efi/EFI/debian/grub.cfg):

search.fs_uuid 2c675303-d207-4573-98f5-59a33c9890ab root hd0,gpt3
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

Обратите внимание, что эта конфигурация только сообщает grub, где найти настоящую конфигурацию (/boot/grub/grub.cfg, расположенную на жестком диске 0, раздел 3 ).

Также обратите внимание, что хотя конфигурация в основном хранится в /boot/grub, вы никогда не редактируете ее вручную, вы просите скрипт grub отредактировать ее за вас. Так вот чтобы перенастроить grub (даже просто добавить новое ядро ​​)тоже нужно /etc/grub.d. Обратите внимание, что сценарии в этом каталоге могут зависеть от других библиотек, установленных Debian.


Поэтому вы должны сохранить /boot/grub по двум причинам:

  1. Он содержит ваши фактические модули конфигурации и grub.
  2. Чтобы скрипты автоматической настройки знали, куда писать новый конфиг.

Если вы действительно хотите перейти /boot/grubна EFI... (не -стандарт)

На самом деле вас ничего не останавливает. Просто убедитесь, что скрипты в /etc/grub.dзнают, где его найти (, например, :оставить символическую ссылку)

Я делал это раньше по эзотерическим причинам. Я запускаю систему с разделом EFI, содержащим два каталога EFIи grub. Я установил это с помощью:

# Move /boot/grub onto my EFI partition
mv /boot/grub /boot/efi

# Leave a symbolic link from the old location to the new location
ln -s /boot/efi/grub /boot/grub

# Update the stub config /boot/efi/EFI/debian/grub.cfg to point to the new location
grub-install

# For safety update the contents of /boot/efi/grub aka /boot/grub
update-grub

Мне на самом деле нравится эта установка, потому что она защищает от ошибки, которую я видел здесь несколько раз, когда люди удаляют ОС и уничтожают grub и предотвращают загрузку любой другой ОС.


Причины разделения

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

  • Ваш BIOS может читать только файловые системы на основе FAT
  • Grub довольно хорошо поддерживает файловые системы, но LVM и зашифрованные тома могут быть проблемой
  • Linux может читать все
  • Старый Grub legacy не мог читать очень большие диски или разделы

Ваш BIOS должен иметь возможность загружать и запускать grub, поэтому EFI должна находиться в файловой системе на основе FAT.

Ваш главный раздел может находиться на чем-то, что grub не может прочитать, но grub требуется доступ к вашему ядру, Initramfs и его собственной конфигурации, поэтому /boot и /boot/grub должны находиться на разделе, доступном для чтения grub. В старые времена grub legacy вам также нужно было убедиться, что этот раздел был достаточно маленьким и находился рядом с началом диска на очень маленьких дисках.

Linux может читать все, но вы можете захотеть, чтобы Linux работал на LVM или зашифрованном томе.

5
27.01.2020, 21:17

Теги

Похожие вопросы