Grub 오류 "No such device: /.disk/info"는 무엇을 의미하며 어떻게 해결합니까?

Grub 오류 "No such device: /.disk/info"는 무엇을 의미하며 어떻게 해결합니까?

KDE Plasma DE를 사용하여 데비안 테스트 설치를 했는데 얼마 후 라이브 USB, chroot를 사용하고 grub을 다시 설치하여 해결한 Grub 문제가 발생한 것 같습니다.

grub 메뉴 바로 앞에 검은색 화면에 나타나는 두 가지 오류 메시지를 제외하고는 부팅 문제가 없습니다.

error: no such device: /.disk/info
error: no such device: /.disk/mini-info

이것이 해결해야 할 문제가 있고 이를 해결하는 방법을 나타내는지 궁금합니다.

답변1

Debian 12(분명히 최신 버전)에서 보안 부팅이 활성화된 UEFI 시스템에 설치할 때 /boot/grub/grubx64.efi다음을 포함합니다 .메모리 디스크 이미지(크기는 약 2.4M) 유니코드 글꼴과 grub.cfg다음 내용의 미니 파일이 포함되어 있습니다.

if [ -z "$prefix" -o ! -e "$prefix" ]; then
        if ! search --file --set=root /.disk/info; then
                search --file --set=root /.disk/mini-info
        set prefix=($root)/boot/grub
if [ -e $prefix/x86_64-efi/grub.cfg ]; then
        source $prefix/x86_64-efi/grub.cfg
elif [ -e $prefix/grub.cfg ]; then
        source $prefix/grub.cfg
else
        source $cmdpath/grub.cfg

또한구성 파일 포함일반적인 말하기:

normal (memdisk)/grub.cfg

내장된 기본값은 $prefix으로 설정되어 있습니다 /EFI/debian.

따라서 grubx64.efi실행이 시작되면 먼저 memdisk 이미지의 구성 파일을 사용합니다.

$prefix먼저 프로필은 ESP 파티션에 정의되지 않았거나 존재하지 않는 일치하는 파일이나 디렉터리가 없는지 확인합니다 . 그렇다면 GRUB의 초기 값을 해당 파일 시스템을 $root포함 하거나 가리키는 /.disk/info파티션/파일 시스템 으로 설정합니다 ./.disk/mini-info$prefix/boot/grub

내 생각엔 이 파일들이 데비안 설치 미디어에 있을 것인데, 이것이 데비안이 단일 서명된 재현 가능한 바이너리 빌드를 사용하여 Secure Boot 호환 부트로더에 대한 모든 요구 사항을 충족할 수 있는 방법입니다.

영구적으로 설치된 OS의 경우 다음과 같이 작동해야 하는 것 같습니다.

  1. 내장된 기본값은 ESP에 존재해야 하는 디렉터리라는 것입니다 $prefix./EFI/debian
  2. 내장된 구성은 GRUB에게 메모리 디스크 기반 구성을 먼저 따르도록 지시합니다. GRUB의 기본 루트 파일 시스템은 ESP입니다.
  3. 설정되어 있고 $prefixESP에 디렉터리가 존재하므로 첫 번째 if... then조건은 유지되지 않으며 search명령을 건너뛰어야 합니다.
  4. /EFI/debian/x86_64-efi/grub.cfgESP에는 존재하지 않으므로(데비안 설치 미디어에 존재합니다) 두 번째 if... then조건도 유지되지 않습니다.
  5. /EFI/debian/grub.cfgESP에는 ( /boot/efi/EFI/debian/grub.cfg운영 체제가 정상적으로 실행될 때) 실제 GRUB 구성이 어디에 있는지 알려주는 것이 있어야 합니다. 따라서 elif조건은 true이고 GRUB은 파일을 읽습니다. 전용 파티션이 있는 경우 /boot다음과 같은 내용이 포함될 수 있습니다.
search.fs_uuid 12345678-90ab-cdef-0123-456789abcdef root 
set prefix=($root)'/grub'
configfile $prefix/grub.cfg

그러면 /bootUUID를 통해 파일 시스템을 GRUB의 루트 파일 시스템(= GRUB에서 액세스하는 모든 후속 경로에서 참조하는 파일 시스템)으로 선택한 다음 이를 사용하여 /boot/grub/grub.cfg.

/boot암호화된 볼륨이나 루트 파일 시스템의 일반 디렉터리 등 다른 위치에 있는 경우 콘텐츠는 /boot/efi/EFI/debian/grub.cfg상황에 따라 달라집니다.

귀하의 경우 ifmemdisk 구성의 첫 번째 조건에 문제가 있습니다. 아마도 귀하의 활동이 ESP 디렉터리에 있지 않습니까(부팅된 OS에서 액세스할 때)? 아니면 펌웨어가 경로 이름을 대소문자를 구분하여 해석하지만 디렉토리 이름의 실제 문자 대소문자는 다를 수도 있습니다.thengrubx64.efi/EFI/debian/boot/efi/EFI/debian/

그럼에도 불구하고 결국에는 검색이 이루어지며 /.disk/info설치 /.disk/mini-info미디어에만 있어야 하며, 실패하면 오류 메시지가 표시됩니다.

GRUB는 다른 방식으로 작동하기 때문에 이러한 메시지는 무해할 가능성이 높으며 단지 사소한 외관상 성가심일 뿐입니다. 그러나 이를 제거하려면 efibootmgr -vUEFI 부팅 변수의 부팅 경로와 실제 GRUB 구성 파일로 가는 도중 GRUB에서 참조하는 모든 경로 이름을 확인하고(위에서 언급한 대로) 차이점을 다음과 같이 수정해야 합니다. 그들을.

답변2

분명히 이 문제는 배포판 이름을 "진행 중인 작업"으로 변경한 결과입니다.더반도착하다데비안여러 시스템 파일을 수동으로 편집합니다. 그리고 위의 답변 덕분에 다음 항목만 포함하는 파일이 포함된 하위 디렉터리 에 추가로 debian하위 디렉터리를 생성하여 문제를 해결할 수 있었습니다 .EFIkdebiangrub.cfg

search.fs_uuid 6d4c4d33-240f-4577-9282-c3862db81a30 root hd0,gpt3 
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

( 6d4c4d33-240f-4577-9282-c3862db81a30각 시스템에 따라 값이 다를 수 있음)hd0,gpt3

관련 정보