Я пытаюсь установить GRUB на USB в качестве загрузчика, чтобы я мог загрузиться в систему, которая обычно не может загрузиться в NVMe.
Предпочтительно использовать безопасный стиль загрузки UEFI.
Для парня, который плохо знаком с Linux и GRUB, я уже потратил более 10 часов на формирование концепции и начальные исследования.
В зеркальной системе, которая полностью поддерживает загрузку NVMe с установленным полным Linux, я создал флэш-диск GTP, отформатированный как раздел EFI, смонтировал раздел EFI в / efi
user@user-PC:/$ sudo -s
[sudo] password for user:
root@user-PC:/# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 55.5M 1 loop /snap/core18/1988
loop1 7:1 0 219M 1 loop /snap/gnome-3-34-1804/66
loop2 7:2 0 64.8M 1 loop /snap/gtk-common-themes/1514
loop3 7:3 0 51M 1 loop /snap/snap-store/518
loop4 7:4 0 31.1M 1 loop /snap/snapd/11036
sda 8:0 1 3.6G 0 disk
├─sda1 8:1 1 256M 0 part ### This is the EFI partition, so Linux wont mount it
└─sda2 8:2 1 3.4G 0 part /media/user/DATA
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 238.5G 0 disk
├─nvme0n1p1 259:1 0 100M 0 part /boot/efi
├─nvme0n1p2 259:2 0 16M 0 part
├─nvme0n1p3 259:3 0 137.9G 0 part
├─nvme0n1p4 259:4 0 499M 0 part
└─nvme0n1p5 259:5 0 100G 0 part /
root@user-PC:/# mkfs.msdos -F 32 -n GRUB2EFI /dev/sda1
mkfs.fat 4.1 (2017-01-24)
root@user-PC:/# mount /dev/sda1 /efi
root@user-PC:/# mkdir -p /efi/etc/default
root@user-PC:/# cp -a /etc/grub.d /efi/etc
root@user-PC:/# cp /etc/default/grub /efi/etc/default
root@user-PC:/home/user# grub-install --target=x86_64-efi --uefi-secure-boot --efi-directory=/efi/boot --bootloader-id=GRUB --removable --verbose
Installing for x86_64-efi platform.
grub-install: info: adding `hd0' -> `/dev/nvme0n1' from device.map.
grub-install: info: adding `hd1' -> `/dev/sda' from device.map.
grub-install: error: failed to get canonical path of `/efi/boot'.
root@user-PC:/home/user#
См. Последнюю строку. Любой эксперт может пролить свет на это? Большое спасибо, спасибо.
После сна на ночь, я подумал о том, чтобы прочитать больше ссылок и перепроверить свои команды.
Учебник YouTube основан на BIOS/MBR, но основные шаги те же
После удаления /boot
из команды grub-install
все заработало:
grub-install --target=x86_64-efi --uefi-secure-boot --efi-directory=/efi --bootloader-id=GRUB --removable –verbose
Это загрузка UEFI. Для проверки я подключил USB и в настройках загрузки BIOS отключил загрузку с NVMe. Зеленый индикатор на USB мигал, и он загрузился нормально. Перезагрузил компьютер без USB, компьютер (правильно) не смог найти загрузочное устройство.
Я ухожу и выложу полную историю команд, как только у меня появится шанс восстановить систему и повторить процесс (у меня была резервная копия системы для многократного тестирования)