특정 부트로더(예: /dev/sdX#)를 다른 EFI 시스템 파티션(예: /dev/sdY) 및 NVRAM에 설치하는 방법은 무엇입니까?

특정 부트로더(예: /dev/sdX#)를 다른 EFI 시스템 파티션(예: /dev/sdY) 및 NVRAM에 설치하는 방법은 무엇입니까?

를 실행하면 grub-install /dev/sdY활성 시스템의 부트로더(/dev/sdX#를 루트로 마운트했다고 가정)를 sdY에 필요한 EFI 및 마더보드의 NVRAM으로 전송하는 것으로 보입니다.

  • { /dev/sdX#install to /; and grub-install /dev/sdY} --> 이제 sdX#에 정의된 부트로더가 EFI 시스템 파티션(ESP) /dev/sdY및 NVRAM 부팅 순서(mobo NVRAM에)를 설치합니다.

/dev/sdY디스크에 오류가 발생할 경우 대체 파티션으로 다른 파티션(예: /dev/sdZ#)에서 부트로더를 설치하려면 어떻게 해야 합니까?

구체적으로, 내가 실행하면 정확히 무슨 일이 일어나는가 grub-install? 내 생각에는 다양한 파일(어떤 파일이 현재 grub을 구성하고 있는지, grub.cfg아니면 지금 컴파일되어 있는지)에서 구성 정보를 컴파일하고, 출력을 디렉터리에 쓰고 /boot/grub(및/또는 다른 파일을 내보내나요? 디렉터리도 /boot/efi?) 자체적으로 추가할 수 있다는 것 같습니다. ESP에 업로드하고(특히 sdX기본적으로 어떻게 보이는지 알고 있습니까?) 결국 NVRAM 부팅 우선 순위 목록에 연결되는 단계입니까?

가능한 옵션에는 다음이 install-grub포함되는 것 같습니다 --bootloader-id(아마도 사용하지 않는 옵션을 지정한 다음 재배포 순서 사용 efiupdatemgr). 옵션도 있지만 -d사용할 구성 파일을 어떻게 알 수 있습니까? 그러면 chroot를 해야 하거나 부팅해야 한다는 뜻인가요? -22 현재는 부팅되지 않기 때문입니다. grub이 모든 유효한 구성을 인식하도록 할 수 없다면 /boot/?

감사해요.

기타 연구 노트:

https://help.ubuntu.com/community/Grub2/설치 중

답변1

(사용 사례: nvme 드라이브를 부팅할 수 없습니다)

자신의 질문에 대답하십시오:

마침내 알아 냈습니다. grub-installer.EFI 시스템 파티션(ESP)에 직접 작성하여 작성합니다 /boot/efi. 따라서 실제 ESP 위에 대체 ESP를 설치하거나 다른 곳에 설치하고 명령줄 인수를 사용하여 재정의합니다.

mkdir -p /mnt/boot/efi
mount /dev/FALLBACK /mnt/boot/efi

이런 일이 발생하기 전에 우리는 를 성공적으로 실행해야 하며 grub-install, 이는 선택된 일부(임의로 가정됨) EFI에 기록됩니다. 우리는 이 디스크를 "마스터 디스크"라고 부릅니다. 마더보드의 NVRAM 항목이 첫 번째 주요 EFI 설치를 올바르게 가리키는지 다시 확인하십시오.

efibootmgr -v
ls -l /dev/disk/by-partuuid  # confirm that your first grub-install made an entry pointing to the UUID of /dev/PRIMARY

(이것은 장치입니다. 예를 들어 nvme 장치의 경우 장치 수준 접두어 nvme0n1(가 아님 nvme0) 가 필요합니다 sda.)

이제 준비가 되었습니다.

grub-install --efi-directory=/mnt/boot/efi --bootloader-id=my-fallback-grub

이제 두 개의 서로 다른 EFI 파티션에 대해 두 개의 항목이 있는지 확인하십시오.

efibootmgr -v

순서를 적절하게 조정하세요efibootmgr --bootorder 3,1,2,etc

관련 정보