[РЕШЕНО] Восстановление загрузочной записи после обновления BIOS

Доброго времени суток. Возникла не штатная ситуация - пропала электроэнергия. Вроде было все норм, но после этого температурные датчики процессора и VRM начали показывать что-то не то, мягко говоря. единственное. что пришло в голову - перепрошивка BIOS. Все прошло штатно, НО пропала строка загрузчика Arch Linux. Т.е. сам по себе загрузчик не пострадал, Система видит все диски, но не видит загрузчика. Т.к. до Arch сидел на Mint загрузился с него. Он у меня не просто вторая система, а система на другом диске и со своим загрузчиком. Теоретически, можно накатить в Mint rEFInd Boot Manager и по идее получить возможность загрузиться с Arch, но как-то это плохо выглядит и не факт, что сработает. Вопрос - как заставить отображаться загрузчик Arch в BIOS? Я совсем не силен пока в Arch и столкнулся с таким впервые. Буду ОЧЕНЬ признателен за помощь. Спасибо.

Разметка NVMe
AMD Ryzen 7 5800X 8-Core Processor × 8
Radeon RX 6600/6600 XT/6600M
Шаги восстановления
1. Грузимся с любого Live USB (например, Arch Live ISO или любой другой Linux с поддержкой UEFI), в моем случае я загрузился в Linux Mint и выполним:

~$ lsblk -f

NAME FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
...
nvme0n1
│
├─nvme0n1p1
│    ext4   1.0         81b82288-c4f4-40ac-b8c2-265cad514b7f   57,7G    23% /media/medusa/81b82288-c4f4-40ac-b8c2-265cad514b7f
├─nvme0n1p2
│    ext4   1.0         b25b06a4-d77e-402d-a262-eabaa1d7d649
├─nvme0n1p3
│    vfat   FAT32       8D08-DBC4
├─nvme0n1p4
│    swap   1           62616598-8f52-43b9-857f-4fda14ad1748
└─nvme0n1p5
     ext4   1.0         b6af151a-086d-43a6-a584-ba1d9875b723
Мой загрузочный раздел Arch — nvme0n1p3, тип vfat, UUID 8D08-DBC4.

2. Проверим содержимое загрузчика

sudo mount /dev/nvme0n1p3 /mnt
ls /mnt/EFI
Вывод: grub_uefi refind tools

3. Посмотри, что внутри grub_uefi

find /mnt/EFI/grub_uefi -type f
Если вывод: /mnt/EFI/grub_uefi/grubx64.efi значит сам загрузчик не пострадал и нам можно восстановить загрузочную запись, если нет, то вам придется переустановить сам загрузчик.

4. Восстанавливаем загрузочную запись Arch Linux

sudo efibootmgr --create --disk /dev/nvme0n1 --part 3 --label "Arch Linux" --loader /EFI/grub_uefi/grubx64.efi
Если вы видите нечто подобное:

BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0000,0001,0002,0004,0005,0006
Boot0001* ubuntu
Boot0002* Windows Boot Manager
Boot0004* KINGSTON SA400S37240G
Boot0005* ST2000DM008-2UB102
Boot0006* Apacer AS2280P4U 512GB
Boot0000* Arch Linux
значит восстановить запись получилось

5. Перезагруждаемя, и выбираем в BIOS с какого диска (загрузчика) грузимся.

Бонус на будущее
Ниже представлен скрипт, который можно использовать для создания бэкапа текущих EFI-записей (NVRAM boot entries)
Назовём его backup-efi.sh. Надеюсь вы понимаете, что EFI_PART="/dev/nvme0n1p3" нужно указать свой:

#!/bin/bash

# Настройки
EFI_PART="/dev/nvme0n1p3"
MOUNT_POINT="/mnt"
BACKUP_DIR="$HOME/efi-backup-$(date +%F)"
ARCHIVE="$BACKUP_DIR.tar.gz"

# Шаг 1: Создаём каталог
mkdir -p "$BACKUP_DIR"

# Шаг 2: Монтируем EFI-раздел
sudo mount "$EFI_PART" "$MOUNT_POINT"

# Шаг 3: Копируем содержимое EFI
sudo cp -r "$MOUNT_POINT/EFI" "$BACKUP_DIR/"

# Шаг 4: Сохраняем список EFI-записей
efibootmgr -v > "$BACKUP_DIR/efibootmgr.txt"

# Шаг 5: Размонтируем
sudo umount "$MOUNT_POINT"

# Шаг 6: Упаковываем
tar -czf "$ARCHIVE" -C "$HOME" "$(basename "$BACKUP_DIR")"

# Шаг 7: Сообщение об успехе
echo "✅ Резервная копия создана: $ARCHIVE"
Делаете скрипт исполняемым:

chmod +x <ПУТЬ К ВАШЕМУ СКРИПТУ>

Пример работы скрипта:

[medusa_l@medusa-pc ~]$ chmod +x ~/backup-efi.sh
[medusa_l@medusa-pc ~]$ ./backup-efi.sh
[sudo] пароль для medusa_l:
✅ Резервная копия создана: /home/medusa_l/efi-backup-2025-04-12.tar.gz
[medusa_l@medusa-pc ~]$

Надеюсь кому-то было полезно. Удачи.
AMD Ryzen 7 5800X 8-Core Processor × 8
Radeon RX 6600/6600 XT/6600M
medusaLL
Надеюсь кому-то было полезно.
Очень увлекательная история, ну очень захватывающий сюжет, но есть одно но, всё это возня, на пустом месте.
Можно было сразу загрузиться с лайва арча, примонтировать разделы, сделать arch-chroot и сделать просто grub-install, но для этого надо было сделать дефолтную точку монтирования ESP раздела, для груб, /boot/efi.

Надеюсь было интересно и местами полезно, удачи.
https://t.me/arch_linuxru
RusWolf
medusaLL
Надеюсь кому-то было полезно.
…но для этого надо было сделать дефолтную точку монтирования ESP раздела, для груб, /boot/efi.

Надеюсь было интересно и местами полезно, удачи.
Просто я подумал, чтог если сам загрузчик не пострадал, так зачем его переустанавливать? А вообще моя логика - логика новичка, т.е. не очень правильная. Я вообще не адеп перепрошивок BIOS, особенно когда все работает. Так что не судите слишком строго. Спасибо за комментарий.)))
AMD Ryzen 7 5800X 8-Core Processor × 8
Radeon RX 6600/6600 XT/6600M
medusaLL
с любого Live USB
зачем?
заходим в efi shell, запускаем /EFI/arch/grubx64.efi или что-там в качестве загрузчика
после загрузки в систему создать запись с помощью efibootmgr
всё
grayich
зачем?
Восстановление загрузки через EFI Shell

📌 Условия:
--- Установлен GRUB (или другой загрузчик)
--- Его .efi файл лежит, например, в EFI/grub_uefi/grubx64.efi
--- Ты знаешь, где этот файл находится (на каком разделе)

📌 Проверьте есть ли EFI Shell в вашей прошивке
В меню прошивки ищи раздел вроде:
--- Boot -> Advanced -> Tools -> Startup -> Launch EFI Shell

Если есть пункт Launch EFI Shell from filesystem device — выберите его.

Если EFI Shell в BIOS отсутствует, что, должно быть, редкость (у меня отсутствует), выполним подготовительные работы:

1. Форматируем флешку в FAT32
2. Качаем файл Shell_Full.efi, нажав на ссылку View raw
3. Создаем структуру директорий на флешке - /EFI/BOOT/
4. Переименовываем скачанный файл - Shell_Full.efi → BOOTX64.EFI
5. Копируем файл на флешку - /EFI/BOOT/BOOTX64.EFI

Перезагрузите компьютер, выбери загрузку с этой флешки через UEFI Boot Menu и снова перезагрузитесь. Загрузившись в EFI Shell выполните в консоле:

Если EFI Shell в BIOS присутствует
Тогда подготовительные работы вам точно не нужны.
1. Найдите нужный раздел
map -r
Это покажет список файловых систем, например:
FS0:\  → ESP (EFI-раздел)
FS1:\  → Root, Home и т.д.
2. Перейдите на ESP (EFI System Partition)
fs0:
ls
Проверь, есть ли там каталог EFI\grub_uefi (или ваш вариант).
3. Запусти GRUB вручную
cd EFI\grub_uefi
grubx64.efi
Если всё в порядке — попадаем в обычное меню GRUB, или сразу загрузится система.
4. Делается уже из системы после загрузки — можно вручную прописать загрузчик обратно:
Например у меня диск nvme0n1, а номер раздела EFI 3 потому, что EFI располагается на nvme0n1p3 . Команда в Терминале будет выглядеть так:
efibootmgr --create \
  --disk /dev/nvme0n1 \
  --part 3 \
  --label "Arch Linux" \
  --loader /EFI/grub_uefi/grubx64.efi
5. Перезагружаемся и выбираем откуда грузиться.
AMD Ryzen 7 5800X 8-Core Processor × 8
Radeon RX 6600/6600 XT/6600M
medusaLL
В меню прошивки ищи раздел вроде:
— Boot -> Advanced -> Tools -> Startup -> Launch EFI Shell
место может быть любым, обычно в bios есть поиск, проще через него искать где оно.
 
Зарегистрироваться или войдите чтобы оставить сообщение.