"grub-install /dev/sda failed" 오류와 함께 Ubuntu 설치가 계속 실패하는 이유는 무엇입니까?

"grub-install /dev/sda failed" 오류와 함께 Ubuntu 설치가 계속 실패하는 이유는 무엇입니까?

표적:Ubuntu를 설치하려고 합니다.델 XPS 8900.

질문Unable to install Grub in /dev/sda: 설치가 중단되지 않으면 Ubuntu 설치를 완료할 수 없습니다 Executing 'grub-install /dev/sda failed.' This is a fatal error.. 그리고 그것은 boot-repair문제를 해결하지 못합니다.

설치 프로그램: Ubuntu 22.04 LTS 설치 프로그램이 포함된 플래시 드라이브를 사용하고 있습니다. 이전 설치의 플래시 드라이브를 사용해 보았고 부팅 디스크 생성기 앱을 사용하여 생성된 다른 플래시 드라이브에 새로 설치를 시도했습니다.참고: Ubuntu 설치 프로그램 운영 체제를 부팅하기 위해 grub 명령에 nomodeset 및 acpi=off를 추가했습니다.

해결하려고 노력하다:

  • grub 설치를 완료하기 위해 몇 가지 방법을 직접 사용해 보았습니다.답변아쿠벤투에서. 나는 앞서 언급한 일을 했다.고정시키다실패 후 설치 프로그램 프롬프트를 종료하고 터미널에서 명령을 실행합니다. 여기서 grub 설치를 성공적으로 완료했습니다. 그러나 설치 과정에서 초기 오류가 발생했기 때문에 Ubuntu 운영 체제에서는 여러 가지 문제가 발생했습니다. 내 서비스가 실패하거나 시작되지 않고(networkd-dispatcher.service, NetworkManager.service, fwupd-refresh.service, apparmor.service, caspermd5.services(?)를 포함하되 이에 국한되지 않음) 나머지는 남습니다. 설치(예:Install RELEASE라는 애플리케이션아직 내 지원서에 있습니다).

    • 참고: 결과를 chroot살펴보고 /mnt실행하는 것은grub-install /dev/sdaunable to allocate pty: No such device
  • [여기서 가장 좋은 답변](https://askubuntu.com/questions/143678/i-receive-the-error-grub-install-dev-sda-failed-while-attempting-to-install-u)는 Try Ubuntu를 클릭한 다음 Install Ubuntu 24.04 LTS 앱을 사용하도록 제안했지만 제겐 효과가 없었습니다.

  • [여기서 가장 좋은 답변](https://askubuntu.com/questions/459620/unable-to-install-grub-in-dev-sda-when-installing-grub)는 grub-install이 잘못된 장치에 설치되었음을 나타냅니다. 이는 제 경우가 아닙니다.

  • 지금은 절박해서 BIOS를 최신 업데이트로 업데이트했습니다. 그것은 아무것도 하지 못했습니다.

  • 설치하려는 애플리케이션을 실행하기 전에 grub-install을 실행해 보았습니다.

    • 참고: 실행 sudo grub-install --root-directory /mnt /dev/sda결과는 다음과 같습니다.grub-instal: error: failed to register the EFI boot entry: Operation not permitted.
    • 또한 Ubuntu 설치 프로그램을 실행하기 전에 grub-install을 성공적으로 실행하더라도 Ubuntu 설치 프로그램이 옵션 없이 grub-install을 실행할 수 있기 때문에 Ubuntu 설치 프로그램이 계속 실패할까봐 걱정됩니다.
  • boot-repairNVram이 잠겨 있다고 나옵니다. 나는 보았다NVRAM 지우기에 대한 권장 사항통과CMOS 재설정. CMOS를 재설정한 후에도 설치 중에 여전히 동일한 오류 메시지가 나타납니다.

질문: Ubuntu 22.04 LTS 설치가 "grub-install /dev/sda failed" 오류와 함께 계속 실패하는 이유는 무엇입니까?

결과boot-info:

결과boot-repair:

답변1

20.04LTS 및 22.04LTS를 설치할 수 없는 동일한 문제가 발생했습니다.

마침내 문제를 해결했습니다. Ubuntu 설치 프로그램이 실패한 후 USB 라이브 Ubuntu로 재부팅하고 부팅 복구를 다시 실행했습니다. 효과는 매우 좋습니다.

더 구체적으로:

  • Nvidia 3090 그래픽 카드가 2개 있습니다.

  • GRUB 메뉴에서 "Install Ubuntu"를 선택하면 검은색 화면이 나타납니다. 따라서 설치를 위해 USB 라이브 Ubuntu에 들어가려면 eGRUB 메뉴 추가 acpi=off( nomodeset또는 도움이 되지 않은 "Secure Graphics"를 선택)를 눌러야 합니다 .

  • 그러다가 이걸 발견했어요"NVMe에 GRUB을 설치할 수 없습니다", 부팅 복구 실행 결과는 "NVRAM이 잠겼습니다.".

    내 SSD에 이전 설치 중에 어떻게든 잠금이 추가되어 부팅 복구가 어떤 변경도 할 수 없다고 가정합니다. 대신에 다음과 같은 메시지가 표시됩니다."NVRAM 잠김". 를 실행하면 cd /target바로 들어갑니다.

  • 다시 시작한 후 실행하면 오류 메시지가 cd /target나타납니다 not a directory. 그런 다음 시동 복구를 실행하십시오. 문제가 해결되었습니다.

또한 AskUbuntu 게시물에 따라 GRUB를 수동으로 설치해 보았습니다. 그런데 제 모국어가 영어가 아니어서 어떤 드라이브를 어떤 드라이브에 설치해야 할지 헷갈렸던 것 같아요. "장치/하드웨어/드라이브"라는 용어가 USB 스틱을 가리키는지 아니면 SSD를 가리키는지 실제로 알 수 없습니다.

답변2

NVram Locked/sys/firmware/efivars이 도구를 통해 Linux에서 efibootmgr액세스 할 수 있는 UEFI NVRAM 변수에 쓰는 데 몇 가지 문제가 있는 것 같습니다.

/mnt/chrootdir아래에 설치하고 연결하여 chroot실패한 설치에 액세스하려면 질문에 대한 답변의 조언을 따른 경우연결한 우분투 질문을 물어보세요, 둘 다 기능에 중요할 수 있는 별도의 하위 파일 시스템을 포함하므로 둘 다 mount --rbind대신 사용하는 것이 좋습니다 .mount --bind/dev/sysgrub-install

  • /dev/ptschroot 환경에서 사용할 수 없으면 오류가 발생 합니다 unable to allocate pty: No such device.
  • chroot 환경에서 이를 사용할 수 없는 경우 /sys/firmware/efi/efivarsUEFI NVRAM 변수에 대한 쓰기 시도가 실패하게 됩니다. 이것이 주요 문제입니다.

하지만 그래도 도움이 되지 않는다면 읽어 보세요.Roderick W. Smith가 작성한 훌륭한 웹페이지입니다.에서는 다른 운영 체제나 UEFI 펌웨어 구현 결함으로 인해 발생할 수 있는 몇 가지 문제를 설명하고 해결 방법을 제공합니다.

디스크 에 다음 내용이 포함된 파일이 sda1있는 것 같습니다 .efi/ubuntu/grub.cfg

search.fs_uuid 2D07-0F0A root hd0,gpt1 
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

이것은 올바르지 않은 것 같습니다. 파일 시스템 UUID로 ESP 파티션( )을 찾은 다음 sda1다음을 포함하는 Linux 루트 파일 시스템이어야 한다고 가정합니다 . 그러나 Linux 루트가 아닌 UEFI ESP와 마찬가지로 /boot/grub그렇지 않습니다. sda1파일 시스템.

파일에는 다음 내용이 포함되어야 합니다.

search.fs_uuid 25f0e88-f20a-4350-9df0-ee8c57ecc455 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

GRUB이 로 시작하더라도 유효한 구성을 찾을 수 있도록 이를 (또한 ) efi/ubuntu/grub.cfg에 복사할 수 있습니다 .efi/BOOT/grub.cfgsda1efi/BOOT/BOOTx64.efi

이 구성 파일은 ESP가 파일 시스템 UUID를 통해 grubx64.efi실제 Ubuntu 루트 파티션( )을 찾은 다음 거기에서 필요한 GRUB 모듈을 로드하고 ESP에서 실제 GRUB 구성을 로드하도록 합니다 .sda2/boot/grub/grub.cfgsda2

UEFI 폴백/이동식 미디어 부팅 경로에서도 전체 부팅 파일 세트를 사용할 수 있도록 복사 efi/ubuntu/grubx64.efi해야 할 수도 있습니다 .efi/BOOT/grubx64.efisda1

부팅 복구 출력의 이 부분은 실제로 다음에 의해 생성됩니다 efibootmgr -v.

BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0004
Boot0003* UEFI: TOSHIBA TransMemory 1.00    PciRoot(0x0)/Pci(0x14,0x0)/USB(1,0)/HD(2,GPT,9240a165-d190-4ab6-8a12-46dc207b42ee,0x71e8a0,0x2130)..BO
Boot0004* UEFI: ST2000DM001-1ER164  HD(1,GPT,22c1dbaf-a26e-4408-a6f9-d1fc06b0d615,0x800,0x100000)/File(EFI\boot\bootx64.efi)..BO

이는 현재 USB에서 부팅 중이지만 시스템 펌웨어가 ( sda1PARTUUID로 식별된 파일 폴백/이동식 미디어 부팅 경로 사용)에서 부팅할 준비가 되었음을 나타냅니다(ESP의 파일 시스템이므로2c1dbaf-a26e-4408-a6f9-d1fc06b0d615EFI/boot/bootx64.efivfat~해야 한다대소문자를 구분하지 않지만 일부 UEFI 펌웨어 구현은 대소문자를 구분하지 않습니다. 따라서 ESP에 대해 위의 변경 사항을 수행할 수 있으면 시스템이 sda1.

UEFI 모드에서 일반 Ubuntu 시스템을 실행할 수 있는 경우 sudo grub-install /dev/sda부트로더 다시 쓰기를 다시 시도하고 Ubuntu의 NVRAM 부팅 변수를 자동으로 다시 쓸 수 있습니다. 또는 efibootmgr다음 명령을 사용하여 부팅 변수 문제를 직접 찾아볼 수 있습니다.

sudo efibootmgr -c -d /dev/sda -p 1 -l \\EFI\\ubuntu\\grubx64.efi -L Ubuntu 

(이 명령을 사용하려면 파일 시스템을 /dev/sda1로 마운트 /boot/efi하고 efivarfs파일 시스템을 로 마운트해야 합니다 /sys/firmware/efi/efivars. 두 조건 모두 일반적인 Ubuntu 부팅 프로세스에 의해 자동으로 처리되어야 합니다.)

"NVram Locked" 또는 이와 유사한 오류가 계속 발생하면 UEFI 구현에 버그가 있을 수 있지만 적어도 대체/이동식 미디어 경로를 사용하여 Ubuntu로 부팅할 수 있습니다.

관련 정보