
리눅스 초보자입니다. 최근에 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/efi
Ubuntu에 마운트됩니다. 다음 명령을 시도해 보십시오:
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을 활성화하기 위한 지침을 따른 것을 기억한다면 더욱 그렇습니다. 이 조치로 문제가 저절로 해결되지 않더라도 원인을 더 잘 이해하면 해결이 쉬워질 수 있습니다.