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

1579
Gregory Wolf

У меня есть 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, но я не могу понять, что еще нужно сделать.

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

1
UEFI загружается из файла в системном разделе EFI. Вы не создали это (ни скопировали соответствующие файлы к этому). Hennes 7 лет назад 0
Является ли ext2 подходящим типом раздела для EFI? Gregory Wolf 7 лет назад 0
Нет. Начал отвечать на это в комментарии, но он не подошел. Опубликовано как ответ вместо. Hennes 7 лет назад 0

2 ответа на вопрос

1
Hennes

с загрузкой 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 :
«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. Как требует, он также понимает нормальный формат.

1
GAD3R

Отформатируйте загрузочный раздел 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 

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