grub에 새로 설치 부팅

grub에 새로 설치 부팅

리눅스 초보자입니다. 최근에 Ubuntu를 다시 설치했는데 부팅할 때마다 grub 쉘에 들어가게 됩니다. 나는 모든 곳을 살펴보았고 많은 시간을 낭비했으며 평생 동안 문제를 추적할 수 없었습니다.

파티션 테이블은 다음과 같이 구성됩니다: /dev/sda1 - 실제 OS /dev/sda2 - EFI /dev/sda3 - 스왑

다음을 실행하여:

set root=(hd0,gpt1)
linux /vmlinuz_something root=/dev/sda1 ro
initrd /initrd.img
boot

OS로 부팅한 다음 update-grub을 실행합니다. 커널이 항목을 업데이트했지만 여전히 grub으로 부팅되는 것을 성공적으로 찾은 것처럼 보입니다. 그래서 저는 이 문제를 더 자세히 조사한 결과 GRUB가 실패한 부팅 시도 후 부팅을 처리하는 방식과 관련이 있을 수 있음을 시사하는 몇 가지 사례를 발견했습니다.

그 중에서 내가 만들 수 있는 것에서 나는 /etc/default/grub에 추가하기로 결정했습니다:

GRUB_TIMEOUT=0
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT

update-grub을 다시 한 번 실행했는데 문제가 지속되었습니다. 또한 추측으로 다른 값을 시도했지만 당연히 작동하지 않았습니다. 이런 지친 주제를 꺼내서 사과드립니다. 하지만 제가 찾은 해결책은 제게는 효과가 없었습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

답변1

내 의심은 두 개의 GRUB 설치가 있다는 것입니다. 아마도 하나는 하나의 배포판이고 다른 하나는 다른 배포판일 것입니다. 또는 하나의 BIOS 모드와 하나의 EFI 모드. 두 경우 모두 하나의 GRUB에 대한 구성 파일을 업데이트하고 다른 GRUB이 실행되면 현재와 같은 증상이 나타납니다.

두 개의 EFI 모드 GRUB 설치가 있는 경우 출력 sudo efibootmgr -v및/또는 다음 파일에 해당 증거가 표시되어야 합니다.EFI 시스템 파티션(ESP), 일반적으로 /boot/efiUbuntu에 마운트됩니다. 다음 명령을 시도해 보십시오:

sudo efibootmgr -v
sudo find /boot/efi -iname "*.efi"

첫 번째는 해당 경로를 포함하여 펌웨어에 등록된 부트 로더를 보여줍니다. shim.efi, shimx64.efi, grub.efi또는 grubx64.efi(즉, 이 세트에서 둘 이상) 에 대한 참조가 여러 개 표시되는 경우 문제가 될 수 있습니다. 두 번째 명령은 ESP에서 모든 부팅 프로그램을 찾습니다(에 마운트되어 있다고 가정 /boot/efi). 다시 말하지만, 여러 부팅 프로그램이 문제가 될 수 있습니다. 하지만 이 경우 하나의 Shim이 하나의 GRUB와 공존할 수 있습니다. 문제가 될 수 있는 것은 단지 여러 개의 GRUB 바이너리일 뿐입니다.

하나의 BIOS 모드와 하나의 EFI 모드 GRUB가 있는 경우 감지하기가 더 어려울 수 있습니다. 가장 쉬운 방법은 다음을 실행하는 것입니다.부팅 정보 스크립트,BIOS 모드와 EFI 모드 부트 로더를 모두 식별하지만 해석하려면 약간의 경험이 필요합니다.

RESULTS.txt내가 언급한 두 명령의 출력과 함께 Boot Info Script가 생성하는 파일을 다음 위치에 게시할 수 있습니다 .페이스트빈 사이트,우리가 해석할 수 있도록 여기에 URL을 게시하세요.

한 가지 더: BIOS 모드와 EFI 모드 GRUB가 모두 있고 BIOS 모드 GRUB가 실패한 경우 펌웨어로 이동하여 CSM(호환성 지원 모듈)을 비활성화하여 이를 우회할 수 있습니다. , 일명 "레거시 부팅 지원" 또는 이와 유사한 단어입니다. 이 작업을 수행하면 문제가 해결될 가능성이 1/3이지만 시도해 볼 가치가 있습니다. 특히 CSM을 활성화하기 위한 지침을 따른 것을 기억한다면 더욱 그렇습니다. 이 조치로 문제가 저절로 해결되지 않더라도 원인을 더 잘 이해하면 해결이 쉬워질 수 있습니다.

관련 정보