grub의 os-prober가 `linuxefi` 대신 `linux`로 항목을 추가하는 이유는 무엇입니까?

grub의 os-prober가 `linuxefi` 대신 `linux`로 항목을 추가하는 이유는 무엇입니까?

내 시스템에는 CentOS 7 사본 2개와 Windows 10 Pro 사본 1개가 설치되어 있습니다. 모든 시스템은 부팅 가능하고 올바르게 작동하며 완전히 최신 상태입니다(커널, 패키지, 작동).

grub2-mkconfigCentOS 복사본 중 하나( 이유로 인해 하나의 호스트는 pingu, 다른 하나는 이라고 함)에서 실행하면 새로운 grub 구성이 생성됩니다. pinga그 중 일부는 os-prober 템플릿을 통해 생성됩니다.

grub2-mkconfig내가 부팅하고 시작한 CentOS 복사본에 대해 에서 생성된 항목이 grub2-mkconfig from정확합니다. 즉, 다음과 같은 줄이 포함된 메뉴 항목이 있습니다.

linuxefi /vmlinuz-5.4.147-1.el7.elrepo.x86_64 root=/dev/mapper/pinga-root ro crashkernel=auto spectre_v2=retpoline
initrdefi /initramfs-5.4.147-1.el7.elrepo.x86_64.img

그러나 CentOS 7의 다른 복사본에 대해 생성된 항목은 다음과 같습니다.

linux /vmlinuz-5.4.147-1.el7.elrepo.x86_64 root=/dev/mapper/pingu-root ro crashkernel=auto spectre_v2=retpoline
initrd /initramfs-5.4.147-1.el7.elrepo.x86_64.img

( 및 대신 linux및 에 유의하세요 )initrdlinuxefiinitrdefi

/etc/grub.d/30_os-prober나는 이것이 같은 것 (등) 의 네 줄 때문이라고 생각합니다 linux ${LKERNEL} ${LPARAMS}. 그런데 왜 그럴까요? os-prober는 왜 Linux의 다른 복사본이 항상 linux대신 에 시작되어야 한다고 가정합니까 linuxefi?

이 문제를 해결할 수 있는 일부 설정이나 재정의가 누락되었나요?

30_os-prober지금은 이 줄을 have linuxefiand 로 변경했지만 initrdefi이는 약간의 해킹처럼 느껴집니다.

관련 정보