GRUB는 모든 운영 체제를 표시하지 않습니다

GRUB는 모든 운영 체제를 표시하지 않습니다

저는 현재 Arch를 사용하고 있으며 Gentoo는 별도의 파티션에 있습니다. grub-mkconfig -o /boot/grub/grub.cfg(Arch에서)는 다음을 반환합니다.

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux-zen
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-zen.img
Found fallback initrd image(s) in /boot: initramfs-linux-zen-fallback.img
Found Windows Boot Manager on /dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi
Found Gentoo/Linux on /dev/nvme0n1p9
done

그러나 부팅 메뉴에는 젠투에 대한 항목이 없지만 Windows에는 항목이 있습니다. Gentoo 항목도 없습니다 /boot/grub/grub.cfg. 여기서 뭔가 빠졌나요?

감사해요! !

답변1

를 실행할 때 젠투 파티션이 실제로 마운트되었는지 확인해야 합니다 grub-mkconfig. 다음 도구의 결과는 이를 결정하는 데 도움이 됩니다.

  • lsblk
  • mount
  • df

더 자세히 살펴봐야 하는 경우 다른 터미널 창에서 루트로 os-prober를 실행하는 동안 한 터미널 창에서 로그를 추적하세요.

창 1:sudo journalctl -fn0

창 2:sudo os-prober

grub-mkconfig명령은 os-prober 유틸리티를 사용하여 다른 운영 체제를 찾고 os-prober를 Arch의 로그에 기록하여 파티션이 실제로 마운트되어 있기 때문에 gentoo를 찾을 수 없는 이유를 정확히 알아내는 데 필요한 모든 정보를 제공합니다.

답변2

젠투 파티션이 설치된 드라이브가 아닌 다른 드라이브에 아치를 설치하면 grub-install /dev/sdX(X는 드라이브 문자)만 젠투를 찾을 수 없습니다.

읽다이것;기본적으로 여러 드라이브를 그럽 마운트해야 합니다.

답변3

기반으로http://codepad.org/zFCNfwoK댓글에 언급된 결과는...

os-prober젠투는 열려 있는 것으로 확인되었지만 /dev/nvme0n1p9다음 단계는 입니다 linux-boot-prober. 에 있는 테스트 스크립트를 실행합니다 /usr/lib/linux-boot-probes.

파일 시스템 유형이 GRUB에서 읽을 수 있다고 가정하면 젠투 커널과 initramfs가 파일 시스템 의 루트나 하위 디렉터리에 /usr/lib/linux-boot-probes/mounted/90fallback있으면 이를 감지할 수 있어야 하는 것 같습니다 . 하지만 젠투는 여러 가지 가능한 방법으로 UEFI에 설치할 수 있으며, 그 중 일부는 커널+initramfs를 EFI 시스템 파티션에 배치합니다 .boot/dev/nvme0n1p9/dev/nvme0n1p1

적어도 내 Debian 10에서는 os-prober더 많은 UEFI 설치 사례를 다루기 위해 업데이트가 필요할 것 같습니다.

실행해 주세요 efibootmgr -v. 젠투는 자체적으로 NVRAM 부팅 항목을 생성합니까? 젠투 커널(또는 커널의 EFI 스텁에 의존하지 않고 커널을 사용하는 경우 부트로더)의 위치를 ​​찾는 데 사용할 수 있습니다.

os-prober(한 가지 아이디어: 누군가는 등록된 모든 NVRAM 부트 로더를 단계별로 실행하고 이를 사용하여 가리키는 부팅 파일이 Linux 커널과 유사한지 확인하는 UEFI 시스템에서 실행되는 스크립트를 작성할 수 있습니다 file. 여기에는 꽤 많은 내용이 포함되어야 합니다. 별도의 부트로더 대신 커널의 EFI 스텁을 사용합니다.

관련 정보