Перенос системы на новый 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 перезагрузки, чтобы убедиться, что всё работает как надо. А если что-то пошло не так – у вас всегда есть «путь отступления».