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의 경우 다음과 같이 작동해야 하는 것 같습니다.
- 내장된 기본값은 ESP에 존재해야 하는 디렉터리라는 것입니다
$prefix
./EFI/debian
- 내장된 구성은 GRUB에게 메모리 디스크 기반 구성을 먼저 따르도록 지시합니다. GRUB의 기본 루트 파일 시스템은 ESP입니다.
- 설정되어 있고
$prefix
ESP에 디렉터리가 존재하므로 첫 번째if
...then
조건은 유지되지 않으며search
명령을 건너뛰어야 합니다. /EFI/debian/x86_64-efi/grub.cfg
ESP에는 존재하지 않으므로(데비안 설치 미디어에 존재합니다) 두 번째if
...then
조건도 유지되지 않습니다./EFI/debian/grub.cfg
ESP에는 (/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
그러면 /boot
UUID를 통해 파일 시스템을 GRUB의 루트 파일 시스템(= GRUB에서 액세스하는 모든 후속 경로에서 참조하는 파일 시스템)으로 선택한 다음 이를 사용하여 /boot/grub/grub.cfg
.
/boot
암호화된 볼륨이나 루트 파일 시스템의 일반 디렉터리 등 다른 위치에 있는 경우 콘텐츠는 /boot/efi/EFI/debian/grub.cfg
상황에 따라 달라집니다.
귀하의 경우 if
memdisk 구성의 첫 번째 조건에 문제가 있습니다. 아마도 귀하의 활동이 ESP 디렉터리에 있지 않습니까(부팅된 OS에서 액세스할 때)? 아니면 펌웨어가 경로 이름을 대소문자를 구분하여 해석하지만 디렉토리 이름의 실제 문자 대소문자는 다를 수도 있습니다.then
grubx64.efi
/EFI/debian
/boot/efi/EFI/debian/
그럼에도 불구하고 결국에는 검색이 이루어지며 /.disk/info
설치 /.disk/mini-info
미디어에만 있어야 하며, 실패하면 오류 메시지가 표시됩니다.
GRUB는 다른 방식으로 작동하기 때문에 이러한 메시지는 무해할 가능성이 높으며 단지 사소한 외관상 성가심일 뿐입니다. 그러나 이를 제거하려면 efibootmgr -v
UEFI 부팅 변수의 부팅 경로와 실제 GRUB 구성 파일로 가는 도중 GRUB에서 참조하는 모든 경로 이름을 확인하고(위에서 언급한 대로) 차이점을 다음과 같이 수정해야 합니다. 그들을.
답변2
분명히 이 문제는 배포판 이름을 "진행 중인 작업"으로 변경한 결과입니다.더반도착하다데비안여러 시스템 파일을 수동으로 편집합니다. 그리고 위의 답변 덕분에 다음 항목만 포함하는 파일이 포함된 하위 디렉터리 에 추가로 debian
하위 디렉터리를 생성하여 문제를 해결할 수 있었습니다 .EFI
kdebian
grub.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