grub2의 feature_platform_search_hint가 "No"일 수 있는 경우

grub2의 feature_platform_search_hint가 "No"일 수 있는 경우

자체 생성에는 grub.cfg여러 가지가 있습니다.

if [ x$feature_platform_search_hint = xy ] ...

if [ x$feature_default_font_path = xy]...

if [ x$feature_all_video_module = xy ]...

과거에 해당 기능이 존재했는지 확인하는 작업이고, grub2를 개발할 당시와 마찬가지로 답변이 틀렸을 수도 있다고 생각합니다. 하지만 그렇게 오랜 세월이 흐른 뒤에, 그것들이 가짜일 수도 있을까요?

나는 에 더 관심이 있고 $feature_platform_search_hint, 이를 바탕으로여기,

이와 같은 미리 정의된 변수는 feature_platform_search_hint빌드 시 일반 모듈에 하드 코딩되어 있으며 소스 코드를 연구하는 것 외에는 대부분 문서화되지 않습니다. 현재 버전의 grub에서는 이러한 변수가 항상 y로 정의되므로 이러한 변수는 특정 grub 버전의 특정 기능에 대한 지원을 나타내는 것으로 보이며 여러 버전에서 작동하는 grub.cfg 파일을 작성하기 위해 테스트될 수 있습니다.

내가 이해하지 못하는 것은 자체 생성된 항목이 왜 grub.cfg그렇게 복잡해야 하는가입니다. 예를 들어,

$feature_platform_search_hint현재와 ​​미래 에 대해 걱정할 필요가 있습니까 ? 수동으로 쓴다면유지 관리가 필요 없는 Grub2 메뉴, 다음과 같이 자체 생성된 grub.cfg를 반복해야 합니까?

        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt8 --hint-efi=hd0,gpt8 --hint-baremetal=ahci0,gpt8  23cbdbaf-9bc8-49d0-a483-1ce445cf6fb4
        else
          search --no-floppy --fs-uuid --set=root 23cbdbaf-9bc8-49d0-a483-1ce445cf6fb4
        fi

글쎄요, 저는 항상 --hint매개변수를 사용하나요?

답변1

다음에서 전달됨여기:

함수 목록은 features전역 변수로 유지됩니다.normal/main.c. feature_platform_search_hintGRUB 2.00부터 사용 가능(2012년 출시)(10년 전). 따라서 이 기능에 대한 조건부 코드 검사는 모든 최신 Linux 배포판에서 의미가 없습니다.

글을 쓰는 시점에(2019년 9월 27일), 최신 추가 기능은 feature_timeout_style2.02-beta1부터 사용할 수 있습니다.

다시 한번 말한다,"이 기능에 대한 조건부 코드 검사는 모든 최신 Linux 배포판에서 의미가 없습니다.".

관련 정보