Как мне установить Debian Linux на SSD из живой системы с загрузкой UEFI

У меня есть USB-диск с оверклоксом (на основе Debian), с которого я загрузил свою систему. Я пытаюсь найти способ установить его на подключенный диск SATA SSD. Я попытался сделать следующее:

Я создал следующие разделы на SSD с помощью fdisk:

/dev/sda1 /boot ext2 (bootable) 
/dev/sda2 / ext4
/dev/sda3 /var ext4
/dev/sda4 /home ext4
/dev/sda5 none swap
partprobe /dev/sda

Я бегал MKFS. на каждом разделе и mkswap на sda5.

Затем я смонтировал разделы:

mount /dev/sda2 /mnt
mkdir /mnt/boot /mnt/var /mnt/home
mount /dev/sda1 /mnt/boot
mount /dev/sda3 /mnt/var
mount /dev/sda4 /mnt/home

Затем я скопировал файлы с USB:

rsync -avp --exclude /proc --exclude /boot --exclude /home --exclude /var --exclude /sys --exclude /dev --exclude /run / /mnt
rsync -avp /var /mnt/var
rsync -avp /boot /mnt/boot 
rsync -avp /home /mnt/home

Затем я связываю смонтированный proc, sys, run и dev:

mkdir /mnt/proc /mnt/run /mnt/sys /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /dev /mnt/dev
mount --bind /run /mnt/run

Затем я сделал chroot для /mnt:

chroot /mnt /bin/bash

Я создал новый fstab:

blkid >> /etc/fstab
vi /etc/fstab
UUID=<UUID> <mpoint> <type> defaults(or sw)  0 2

Затем я запустил grub-install /boot /dev/sda, который не дал никаких ошибок.

Я вышел из chroot, размонтировал разделы, вынул USB и перезагрузился.

Я думал, что это создаст почти такую ​​же файловую систему, как на USB-устройстве, которое будет загружаться с grub. Тем не менее, я не смог загрузиться с диска. Я думаю, что это как-то связано с UEFI, но я не могу понять, что еще нужно сделать.

Любая помощь приветствуется, спасибо.

2 ответа

Отформатируйте загрузочный раздел sda2 Fat32, он будет использоваться как раздел ESP

Смонтировать перегородки и заменить mount /dev/sda1 /mnt/boot от:

mount /dev/sda1 /mnt/boot/efi

Бежать:

for i in /sys /proc /dev; do mount --bind $i /mnt$i; done

Получите интернет, затем измените root:

cp /etc/resolv.conf /mnt/etc/
chroot /mnt /bin/bash

устанавливать grub :

apt-get install --reinstall grub-efi
update-grub
exit
for i in /sys /proc /dev; do umount /mnt$i; done

Размонтирование разделов и перезагрузка

с загрузкой UEFI

Позвольте мне немного подробнее остановиться на этом, чтобы остальная часть ответа имела смысл:

На старых компьютерах, совместимых с IBM, микропрограмма загружается при запуске. Обычно это прошивка BIOS, которая ищет запись MBR на жестком диске, читает ее, извиняет загрузочный сектор, загрузчик первого этапа и т. Д. И т. Д. Это то же самое при загрузке Windows или Linux. Вы просто получаете разные загрузчики. Или даже несколько загрузчиков, например, когда вы цепляете окна из grub.

BIOS является базовой системой примерно с 1985 года, и ее не хватает на современных ПК. Мы просто использовали его для обратной совместимости.

С тех пор его заменили на EFI. EFI хорошо определена и гораздо более способна. Он не использует загрузочный сектор. Вместо этого он смотрит на разделенный диск GPT , находит системный раздел EFI и считывает файлы с него. Обычно это включает в себя что-то вроде boot.efi , * 1

Системный раздел EFI должен присутствовать для загрузки. Он должен быть в формате, понятном вашей реализации EFI. Есть одна файловая система, которая требуется для понимания EFI, и она на 100% совместима с FAT32. * 2

В вашей настройке показано создание нескольких разделов, ни один из которых не является системным разделом EFI. Я думаю, что вы следуете старому руководству по загрузке BIOS, coreboot или CSM.

Так много для предыстории и почему это не сработало, поэтому главный вопрос остается без ответа.

Как установить Debian Linux на SSD из реальной системы с загрузкой UEFI

С wiki.debian.org/UEFI :
Msgstr "Debian устанавливает grub-efi для своего загрузчика EFI".

Это файл .efi, и он должен быть установлен в системном разделе EFI. Которого у вас нет. Начните заново, разбейте диск на дополнительный раздел с правильным типом (идентификатор C12A7328-F81F-11D2-BA4B-00A0C93EC93B ). отформатируйте его в FAT32. Читайте на grub-efi и убедитесь, что ваш кернал, если UEFI включен. Тогда в нужное время выдают apt-get install --reinstall grub-efi-amd64 или поиграть с efibootmgr ,



* 1 : Примечание: Grub2 совместим с EFI.

* 2 : Одно известное исключение: Apple EFI также использует HFS. Как требует, он также понимает нормальный формат.

Другие вопросы по тегам