1

У меня есть 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 ответа2

1

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

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .