데비안이 설치된 디스크를 다른 컴퓨터로 옮겼는데 부팅이 되지 않습니다. systemrescuecd를 사용하여 uefi 파티션(512MB, vfat 파일 시스템, EFI 디렉터리 포함)을 마운트하고 작업을 실행했는데 cd /mnt/sda1 && mkdir BOOT && cp debian/grubx64.efi BOOT/bootx64.efi
정상적으로 부팅되었습니다. (제가 받은 조언은아쿠벤투) 이제 어떻게 등록하나요?데비안/grubx64.efi제거할 수 있도록 내 시스템에 파일을 등록하세요.부팅/bootx64.efi?
답변1
Linux에서는 EFI 부팅 항목을 나열하고 조작할 수 있습니다 efibootmgr
.
시스템을 수동으로 성공적으로 부팅한 후 다음을 efibootmgr
설치했는지 확인하십시오.
apt-get install efibootmgr
efivars
그런 다음 의사 파일 시스템이 RW로 마운트되었는지 확인하십시오 .
mount -o remount,rw -t efivarfs efivarfs /sys/firmware/efi/efivars
명령이 실패하거나 efibootmgr
유사한 메시지가 표시되면 EFI variables are not supported on this system.
EFI 모드로 부팅하지 않는 것입니다. 재부팅하고 다시 시도해 보세요.
마지막으로 debian/grubx64.efi
EFI 부팅 목록에 추가하고 이를 기본 부팅 목록으로 만듭니다.
efibootmgr -c -p 1 -d /dev/sda -L "GRUB" -l '\efi\debian\grubx64.efi'
-p 1
및 옵션은 -d /dev/sda
BOOT 하위 디렉터리를 생성한 EFI 시스템 파티션을 포함하는 파티션 및 블록 장치를 지정합니다. -L
은 생성되는 항목의 레이블이고 -l
부트로더의 경로입니다.
를 사용하여 원하지 않는 항목을 삭제할 수 있습니다 efibootmgr -b <boot-entry> -B
.
를 사용하여 현재 EFI 부팅 항목의 자세한 목록을 얻을 수 있습니다 efibootmgr -v
.
man efibootmgr
자세히보다. 주의 깊게 읽고 인터넷 검색을 하거나 여기에 설명을 요청하는 것이 좋습니다.앞으로위의 명령 중 하나를 실행하십시오.
답변2
읽고 나서https://wiki.archlinux.org/index.php/GRUB#UEFI_systemsman grub-install
이렇게 했더니 sudo grub-install --efi-directory $MY_ESP_MOUNTPOINT --target=x86_64-efi
이제 "debian" 부팅 대상이 나열되어 실행되고 있습니다.
답변3
나는 명령을 사용하는 것이 좋습니다
sudo grub-install --efi-directory $MY_ESP_MOUNTPOINT --force-extra-removable --recheck
Debian 의 경우 --force-extra-removable
Redhat과 마찬가지로 EFI 디렉터리와 Debian 디렉터리에 BOOT 디렉터리가 생성됩니다. 대부분의 BIOS(예: HP BIOS, 최신 Dell BIOS인 것 같습니다)는 이 BOOT 디렉터리를 사용하여 파일을 찾고 BOOTX64.EFI
자동으로 부팅 항목을 생성하므로 UEFI가 자동으로 부팅될 수 있습니다.
--target
부팅하는 시스템과 동일한 바이너리 유형에서 grub-install을 실행하는 경우 데비안이 자동으로 올바른 값을 설정하므로 이 옵션은 필수가 아닙니다.
--recheck
-B
여기서의 목적은 UEFI 테이블을 다시 생성하고 의 옵션을 사용하여 더 이상 관련이 없는 이전 부팅 항목을 지우는 것입니다 efibootmgr
.