Главная
» LINUX
»
Как сделать резервную копию загрузчика Linux на USB-накопитель
Как сделать резервную копию загрузчика Linux на USB-накопитель
Сохраните настройки GRUB и загрузочные файлы на USB-накопитель; в системах с UEFI также сохраните файлы EFI и список записей прошивки. Это ссылки для восстановления, а не полный образ диска. Если отсутствует код запуска, используйте носитель для восстановления Linux, чтобы переустановить GRUB для фактической структуры загрузки.
Что включает в себя резервное копирование GRUB
Обычно дистрибутивы генерируют меню из файлов /etc/default/grubи /etc/grub.d/, а вспомогательные файлы находятся в папках /boot/grubили /boot/grub2. Debian документирует меню grub.cfgв том виде, в котором оно было сгенерировано, поэтому восстановите настройки и сгенерируйте его заново. BIOS GRUB может использовать MBR плюс встроенные сектора; UEFI использует файлы на системном разделе FAT EFI (ESP) и записи загрузки в переменных прошивки.
Создайте резервную копию GRUB на USB-накопитель.
1. Смонтируйте USB-накопитель и определите режим загрузки.
Подключите USB-накопитель, откройте его в файловом менеджере и запишите место монтирования. Затем выведите список дисков и проверьте, как была загружена текущая система:
lsblk -o NAME,SIZE,FSTYPE,LABEL,UUID,MOUNTPOINTS
findmnt /
if [ -d /sys/firmware/efi ]; then echo UEFI; else echo BIOS; fi
Смонтированный USB-том служит местом назначения для файлов резервной копии.
Используйте размер, файловую систему, метку и точку монтирования, чтобы отличать USB-накопители от внутренних дисков. Имена /dev/sdaмогут меняться, и корневой раздел не всегда является целевым диском загрузчика BIOS.
Используйте сведения об устройстве, чтобы найти ESP и съемный накопитель.
В системах UEFI определите системный раздел EFI (ESP) в выходных данных. Часто это FAT32 с точкой монтирования, например /boot/efi, , /efi, или /boot. Обычно он содержит EFIкаталог.
2. Архивируйте настройки GRUB и вспомогательные файлы.
Замените пример пути к USB-накопителю найденной вами точкой монтирования. Не заключайте пути, содержащие пробелы, в кавычки.
USB="/media/$USER/USB_LABEL"
BACKUP="$USB/grub-backup"
sudo mkdir -p "$BACKUP"
paths=(etc/default/grub etc/grub.d)
for p in etc/default/grub.d boot/grub boot/grub2; do
[ ! -e "/$p" ] || paths+=("$p")
done
sudo tar -C / -czf "$BACKUP/grub-files.tar.gz" "${paths[@]}"
Сохраняйте настройки GRUB, скрипты меню и существующие загрузочные файлы вместе.
Архив сохраняет права доступа Linux даже на файловых системах USB, которые этого не делают. Он включает в себя необязательные каталоги GRUB, присутствующие в этой установке.
3. В UEFI сохраните файлы EFI и записи прошивки.
Установите ESPточку монтирования, которую вы определили; в этом примере используется /boot/efi. Архив включает файлы других поставщиков, если они используют тот же EFIкаталог.
ESP="/boot/efi"
sudo tar -C "$ESP" -czf "$BACKUP/esp-files.tar.gz" EFI
sudo efibootmgr -v | sudo tee "$BACKUP/uefi-boot-entries.txt" >/dev/null
Общий ESP-пакет может содержать загрузочные файлы для нескольких операционных систем.Разместите список записей прошивки рядом с сохраненными загрузочными файлами.
efibootmgr -vВыводит сведения о загрузочных элементах, а не все настройки прошивки. Пропускайте эти команды в системах, использующих только BIOS.
4. Проверьте резервную копию и извлеките накопитель.
tar -tzf "$BACKUP/grub-files.tar.gz" | head
[ ! -f "$BACKUP/esp-files.tar.gz" ] || tar -tzf "$BACKUP/esp-files.tar.gz" | head
ls -lh "$BACKUP"
sync
Убедитесь, что имена и размеры архивов выглядят правдоподобно, затем извлеките USB-накопитель, прежде чем отключать его. Храните резервную копию отдельно от загрузочного USB-накопителя, который может быть стерт при создании загрузочного носителя.
Используйте резервную копию после сбоя загрузки.
5. Запустите сеанс Live в режиме загрузки установленной системы.
Загрузите загрузочный USB-накопитель с Linux в режиме Live или восстановления, если это возможно, в том же режиме UEFI или Legacy BIOS. Снова определите корневой раздел, любой отдельный /bootраздел и ESP; названия устройств могут отличаться.
В режиме реального времени предоставляются инструменты для осмотра и ремонта оборудования.
Смонтируйте установленную систему во временном месте, например /mnt/target, в папке `/etc/system ...
Перед выполнением команд восстановления в среде chroot необходимо смонтировать установленные разделы.
6. Выберите и восстановите настройки, затем выполните восстановление GRUB.
После монтирования корневого каталога установленной системы и любых отдельных /bootразделов восстанавливайте архив только в том случае, если он был получен из этой установки и релиза:
sudo tar -xzf "/path/to/grub-backup/grub-files.tar.gz" -C /mnt/target
Замените указанный в примере путь фактическим местоположением USB-накопителя. Не распаковывайте EFI-архив через общий ESP-сервер; используйте инструкции по переустановке дистрибутива для восстановления загрузочных файлов и записи прошивки. Для безопасной загрузки могут потребоваться подписанные пакеты shim и GRUB.
В chroot-окружении перегенерируйте меню, используя команду и путь вывода вашего дистрибутива. Debian и Ubuntu обычно используют update-grub; другие используют документацию grub-mkconfigили grub2-mkconfig. Если отсутствует код запуска, переустановите GRUB для правильного диска BIOS или раздела UEFI. Проверьте целевую систему перед grub-install.
Восстановите меню из восстановленной установки после восстановления настроек.
Почему бы не восстановить только первые 512 байт?
При использовании односекторной копии отсутствует встроенный образ BIOS GRUB или загрузочный раздел BIOS. Первый сектор также содержит данные таблицы разделов, поэтому восстановление старой копии может повредить измененный диск. Файлы UEFI и записи прошивки находятся отдельно. Используйте этот архив в качестве информации для восстановления; сохраните проверенный образ всего диска для полного отката.