이중 부팅에서 GRUB 구성을 생성할 때 GRUB가 Linux 이미지를 찾을 수 없습니다.

이중 부팅에서 GRUB 구성을 생성할 때 GRUB가 Linux 이미지를 찾을 수 없습니다.

며칠 전 일부 게임을 위해 노트북에 Windows를 다시 설치해야 했습니다. 나는 이 전에 몇 달 동안 아치 리눅스를 사용해 왔고 아무런 문제가 없었습니다. 그러나 일단 Windows가 설치되면 부팅 가능한 것으로 간주되는 유일한 것은 Windows입니다.

몇 가지 튜토리얼(몇 달 전에 아치를 설치할 때 본 설치 튜토리얼도 포함)의 지침을 따랐지만 아무 것도 작동하지 않는 것 같습니다.

지금까지 나는 이 튜토리얼에 따라 새 grub을 다시 설치하고 설치해 보았습니다. https://youtu.be/C3D_qzw94v8

기본적으로 그는 Windows용 /mnt 및 /mnt2를 만들어 EFI 파티션에 설치했지만 grub makeconfig를 실행했을 때 "linux 이미지 발견, ..., Windows 이미지 발견"이라는 출력을 얻었지만 makeconfig를 실행하면 , "Windows 이미지를 찾았습니다. 완료되었습니다"라는 메시지가 표시됩니다.

오전 2시에 구성하려고 했기 때문에 프로세스 전반에 걸쳐 모든 것이 뒤섞였을 것입니다.

모든 것을 다시 구성하고 설치하고 싶지 않고 중요한 문서가 있으므로 Linux를 다시 설치하는 것은 실제로 선택 사항이 아닙니다.

어떤 정보가 다른 사람에게 도움이 될지 잘 모르기 때문에 도움이 될 것 같아서 몇 가지 정보를 첨부하겠습니다.

이것은 df, lsblk, fdisk의 출력입니다. https://ibb.co/1MYjyYd

/mnt와 /mnt/boot의 폴더 구조입니다. https://ibb.co/BZ7zSyh

안정적인 테이블: https://ibb.co/6s6vCg1

답변1

주석을 통해 시작점을 명확히 한 후:

1부: fstab에서 제안하는 설치는 UUID를 기반으로 합니다. 파티션을 다시 생성하면 변경됩니다. 쉘 명령 blkid 또는 lsblk -o PATH,UUID,LABEL을 사용하여 다시 확인하세요. 일부 파티션의 UUID가 변경되면 fstab에 씁니다. (이를 삭제하고 배포판 관련 항목을 다시 실행하거나 유틸리티를 다시 생성하면 이 답변의 범위를 벗어납니다.)

/boot 폴더가 FAT32 파티션이고 일반 EFI 리소스를 포함할 가능성은 거의 없습니다. 파티션 스키마에는 이와 같은 내용이 표시되지 않습니다.

따라서 두 번째이자 더 중요한 점은 Linux 파티션에 있는 Linux의 /boot 폴더를 확인하는 것입니다. 그러면 Grub이 필요한 로더를 복사할 수 있도록 EFI 파티션 중 하나를 이 /boot-folder에 /boot/efi로 마운트해야 합니다. (grub install 명령은 /boot/efi와 같은 기본값과 /boot 자체가 있는 EFI 파티션과 함께 --efi-directory를 인수로 사용합니다. 후자는 작동할 수 있지만 시스템 기능이 다른 형식에 노출되므로 권장되지 않습니다. , FAT32는 신뢰성이 떨어집니다.)

Grub은 일반적으로 vmlinuz/kernel-images 및 ramdisk를 기반으로 /boot의 내용을 감지합니다. 다른 모든 트릭(예: 다른 운영 체제 부팅)의 경우 외부 파티션의 내용을 찾습니다. (여기에는 grub 설치 중에 연결된 USB 디스크도 포함됩니다.)

저는 개인적으로 별도의 /boot 파티션을 선호합니다. 따라서 초기 사용자 공간 마운트 후에는 필요하지 않으므로 fstab에서 제거할 수 있습니다. 이는 또한 Grub 등에서 실수로 구성을 덮어쓰는 것을 방지합니다. 그러나 새 커널 이미지를 업그레이드/설치하는 경우 (수동으로) 설치해야 합니다.

관련 정보