Перенос UEFI и загрузки Debian на новый SSD: инструкция для начинающих

Перенос системы на новый SSD кажется простым, пока не доходишь до загрузчика. Особенно с UEFI, где каждая мелочь влияет на результат. Давайте разберемся, как сделать это без лишних нервов – даже если вы впервые сталкиваетесь с подобной задачей.

Подготовка нового SSD: что нужно проверить перед стартом

Вы уже разметили диск на три раздела (UEFI, система, домашний), создали файловые системы и скопировали данные. Но UEFI – не обычный раздел. Он хранит загрузочные файлы в своей структуре (обычно /boot/efi), а также записывает данные в NVRAM материнской платы. Ключевая ошибка здесь – просто скопировать файлы без переустановки загрузчика.

Убедитесь, что:

  • Новый UEFI-раздел отформатирован в FAT32 (vfat) и имеет флаг esp в разметке (проверьте через gdisk или parted).
  • Старый и новый SSD подключены одновременно – это упростит копирование и восстановление загрузки в случае ошибок.
  • Вы создали резервную копию /etc/fstab и /boot/grub/grub.cfg (на всякий случай).

Шаги переноса UEFI и настройки Grub

Скопировать файлы недостаточно. Даже если вы обновили fstab, система не загрузится, пока загрузчик не “пропишется” в новом UEFI-разделе. Вот как это исправить:

1. Монтируем новые разделы:

mkdir /mnt/new  
mount /dev/nvme0n1p2 /mnt/new # system partition
mount /dev/nvme0n1p3 /mnt/new/home # home partition
mount /dev/nvme0n1p1 /mnt/new/boot/efi # UEFI partition

2. Копируем UEFI-данные:

Перенесите содержимое старого UEFI-раздела в новый. Если папка /boot/efi/EFI пуста, создайте структуру вручную:

mkdir -p /mnt/new/boot/efi/EFI/debian

3. Переустанавливаем Grub:

Переключитесь в окружение новой системы через chroot:

chroot /mnt/new /bin/bash

Затем выполните:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian  update-grub

Кстати, если видите ошибку «EFI variables are not supported», убедитесь, что смонтировали efivarfs (mount -t efivarfs efivarfs /sys/firmware/efi/efivars).

После этого в UEFI материнской платы должен появиться новый пункт загрузки. Но иногда система «цепляется» за старый UUID раздела. Чтобы избежать этого, синхронизируйте метки:

– Узнайте UUID старого UEFI-раздела через blkid.
– Присвойте новому разделу тот же UUID через tune2fs -U (для ext4) или dosfslabel (для vfat):

dosfslabel --volume-id ABCD-1234 /dev/nvme0n1p1

Частые ошибки и как их избежать

Даже при точном следовании инструкции могут возникнуть проблемы. Например:

«Система загружается в Grub rescue>»

Это случается, если grub-install не нашёл нужные модули. Перепроверьте:

  • Правильно ли указан путь к --efi-directory (должен вести к точке монтирования UEFI, а не к /boot!).
  • Не перепутали ли вы диск при установке (например, /dev/sda вместо /dev/nvme0n1).

Ещё одна коварная ошибка – забыть обновить fstab с новыми UUID разделов. Используйте blkid чтобы получить актуальные данные, и замените старые значения в /etc/fstab новой системы.

«После перезагрузки загрузчик не видит новую систему»

Зайдите в настройки UEFI (обычно клавиша Del/F2 при старте) и вручную выберите новый загрузочный пункт с меткой «debian». Если его нет, попробуйте повторно выполнить grub-install с параметром --removable – это создаст запасной путь /EFI/BOOT/bootx64.efi, который UEFI распознаёт автоматически.

И последний совет: не спешите форматировать старый диск. Оставьте его подключенным на первые 2-3 перезагрузки, чтобы убедиться, что всё работает как надо. А если что-то пошло не так – у вас всегда есть «путь отступления».

Добавить комментарий

Все поля обязательны к заполнению. Ваш адрес email не будет виден никому.

Новое
Интересное