Используйте следующее docker-compose.yml
, чтобы запустить ваши контейнеры в предопределенной сети со статическими адресами IPv4:
version: '3.5'
services:
service1:
image: service1:latest
networks:
service1_net:
ipv4_address: 172.22.0.100
networks:
service1_net:
ipam:
driver: default
config:
- subnet: 172.22.0.0/16
Запустите efibootmgr -v
от имени пользователя root. Первая строка будет BootCurrent: NNNN
, где NNNN — шестнадцатеричное четырехзначное число -.
Найдите соответствующую строку «BootNNNN». Это будет выглядеть примерно так:
BootNNNN* Manjaro HD(X,GPT,11111111-2222-3333-4444-555555555555,0x800,0x82000)/File(\...\something.efi)
NNNN
— число из первой строки, Manjaro
это строка описания элемента загрузки, которую может прочитать человек -(может быть что угодно ), X
— номер диска в порядке обнаружения прошивкой UEFI, 11111111-2222-3333-4444-555555555555
— это PARTUUID системного раздела EFI, в который установлен загрузчик, \...\something.efi
— это имя пути в стиле Windows -в системном разделе EFI, определяющее используемый файл загрузчика. С GRUB + Secure Boot это обычно shimx64.efi
, shim.efi
или что-то подобное, ссылаясь на загрузчик прокладки Secure Boot, который затем загружает файл с именем grubx64.efi
в тот же каталог. Системный раздел EFI может быть смонтирован как /boot/efi
или /boot
или вообще не смонтирован; разные дистрибутивы делают здесь по-разному. Если он установлен в /boot/efi
,запустите ls -l /boot/efi/EFI/BOOT/BOOTX64.efi
и сравните длину этого файла с файлом в пути загрузчика, указанном efibootmgr -v
:. Если они совпадают, вы узнаете, что вам, вероятно, также следует обновить резервный загрузчик. (Помните об этом -, подробнее об этом позже.)
Зная PARTUUID, вы сможете использовать blkid
или lsblk -o +PARTUUID
для определения имени устройства Linux, соответствующего системному разделу EFI (ESP для краткости ). Теперь у вас есть все необходимое для восстановления команды grub-install
.
Однако при безопасной загрузке первым «загрузчиком», зарегистрированным в NVRAM системы, на самом деле будет оболочка безопасной загрузки, а не GRUB. Вы не хотите изменить этот факт.
Таким образом, вы, вероятно, захотите использовать опцию --no-nvram
, чтобы избежать изменения загрузочных переменных NVRAM. В результате команда для повторной установки GRUB -должна быть:
grub-install --no-nvram /dev/<the disk device corresponding to your ESP partition>
Если GRUB в настоящее время также установлен по пути резервного загрузчика \EFI\BOOT\BOOTX64.efi
в ESP, вам нужно добавить параметр --force-extra-removable
к команде grub-install
, чтобы он также обновил его.
Обратите внимание, что если вы используете загрузчик с оболочкой Secure Boot, важно также обновить оболочку на ESP. Перед перезагрузкой системы убедитесь, что и GRUB, и прокладка на ESP имеют достаточно свежие временные метки. Все, что после 2020 -07 -28 должно быть хорошим. Если пакет прокладки не будет автоматически обновлять файл прокладки в ESP, вы можете просто найти обновленную прокладку везде, где ее помещает процедура установки пакета, и скопировать ее поверх старой прокладки в ESP.
При использовании Secure Boot и GRUB типичная компоновка ESP будет выглядеть следующим образом:
<ESP mountpoint>/EFI/<name of distro>/grubx64.efi
= фактический GRUB <ESP mountpoint>/EFI/<name of distro>/shimx64.efi
= прокладка безопасной загрузки <ESP mountpoint>/EFI/BOOT/BOOTX64.efi
= резервная загрузочная копия прокладки <ESP mountpoint>/EFI/BOOT/grubx64.efi
= резервная загрузочная копия GRUB Пути с компонентом <name of distro>
обычно считаются основным загрузчиком,но резервная копия будет полезна, если система по какой-либо причине «забывает» настройки NVRAM, например, при обновлении прошивки UEFI, которое сбрасывает все настройки прошивки (, также известные как «настройки BIOS» ), до заводских значений по умолчанию.
Вам не нужно переустанавливать GRUB, чтобы устранить эту уязвимость. Простого обновления пакета должно быть достаточно. Если GRUB является единственным загрузчиком, который вы, возможно, захотите обновить, установка/boot/efi/EFI/Boot/BOOTX64.EFI
-grub -этого не сделает.
Также grub-install
предназначен для старых систем MBR в стиле -, он больше не нужен на устройствах с поддержкой UEFI.
Для большей уверенности проверьте даты ваших файлов grub в /boot/efi/EFI. Поскольку я не уверен, где установлены файлы, запустите эту команду и опубликуйте ее вывод
find /boot \( -iname grubx64.efi -o -iname 'shim*.efi' \) -exec ls -l '{}' \;