grub: 메뉴 항목 식별자가 무엇인가요?

grub: 메뉴 항목 식별자가 무엇인가요?

기본 grub 항목을 설정할 때 사용할 수 있는 도구는 grub-set-default.

grub-set-default기본값을 지정하는 세 가지 방법을 지정합니다. - 다음에서 가져옵니다.맨페이지:

MENU_ENTRY is a number, a menu item title or a menu item identifier.

처음 두 가지에 대해 알고 있지만 특정 상황에서 이를 사용하는 데 몇 가지 제한 사항이 있음을 발견했습니다.

숫자:

내가 이해하는 바로는 number그것이 가지고 있는 인덱스이므로 menuentry새 커널을 설치하는 경우 설치된 커널과 개수에 따라 달라지기 때문에 위치가 시스템 간에 항상 일관되지는 않습니다.

메뉴 항목 제목

전체 제목은 menuentry구성을 생성할 때 설정된 시스템 언어에 따라 달라집니다. 예를 들어, 다음은 언어가 덴마크어로 설정된 컴퓨터에 있는 것입니다.

Ubuntu, med Linux 5.4.0-99-generic.

언어 설정에 의존하기 때문에 언어가 다를 수 있는 여러 컴퓨터에는 이상적이지 않습니다.


그래서 내 두 가지 질문은 다음과 같습니다.

  1. 무엇인가요 menu item identifier?
  2. 새로 설치된 커널이 어떤 식별자를 갖게 될지 설치 전에 예측할 수 있습니까? 언어 설정 및 설치된 다른 커널에 관계없이 일관성이 있습니까?

답변1

메뉴 항목 식별자란 무엇입니까?

위의 질문에 대한 정답을 우연히 찾은 것 같습니다. /boot/grub/grub.cfg에 설명된 대로 아래 표시된 Grub 메뉴에서 하위 메뉴의 마지막 항목에 대한 메뉴 항목 식별자는 다음과 같습니다.'gnulinux-advanced-79ff4213-58cc-4410-9b21-b6db63e1da04>gnulinux-5.4.0-109-lowlatency-advanced-79ff4213-58cc-4410-9b21-b6db63e1da04'

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-79ff4213-58cc-4410-9b21-b6db63e1da04' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  79ff4213-58cc-4410-9b21-b6db63e1da04
        else
          search --no-floppy --fs-uuid --set=root 79ff4213-58cc-4410-9b21-b6db63e1da04
        fi
        linux   /boot/vmlinuz-5.13.0-40-generic root=UUID=79ff4213-58cc-4410-9b21-b6db63e1da04 ro  quiet splash $vt_handoff
        initrd  /boot/initrd.img-5.13.0-40-generic
}
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-79ff4213-58cc-4410-9b21-b6db63e1da04' {
        menuentry 'Ubuntu, with Linux 5.13.0-40-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.13.0-40-generic-advanced-79ff4213-58cc-4410-9b21-b6db63e1da04' {
                recordfail
                load_video
                gfxmode $linux_gfx_mode
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  79ff4213-58cc-4410-9b21-b6db63e1da04
                else
                  search --no-floppy --fs-uuid --set=root 79ff4213-58cc-4410-9b21-b6db63e1da04
                fi
                echo    'Loading Linux 5.13.0-40-generic ...'
                linux   /boot/vmlinuz-5.13.0-40-generic root=UUID=79ff4213-58cc-4410-9b21-b6db63e1da04 ro  quiet splash $vt_handoff
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-5.13.0-40-generic
        }
        menuentry 'Ubuntu, with Linux 5.13.0-40-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.13.0-40-generic-recovery-79ff4213-58cc-4410-9b21-b6db63e1da04' {
                recordfail
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  79ff4213-58cc-4410-9b21-b6db63e1da04
                else
                  search --no-floppy --fs-uuid --set=root 79ff4213-58cc-4410-9b21-b6db63e1da04
                fi
                echo    'Loading Linux 5.13.0-40-generic ...'
                linux   /boot/vmlinuz-5.13.0-40-generic root=UUID=79ff4213-58cc-4410-9b21-b6db63e1da04 ro recovery nomodeset dis_ucode_ldr
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-5.13.0-40-generic
        }
        menuentry 'Ubuntu, with Linux 5.4.0-109-lowlatency' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-109-lowlatency-advanced-79ff4213-58cc-4410-9b21-b6db63e1da04' {
                recordfail
                load_video
                gfxmode $linux_gfx_mode
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  79ff4213-58cc-4410-9b21-b6db63e1da04
                else
                  search --no-floppy --fs-uuid --set=root 79ff4213-58cc-4410-9b21-b6db63e1da04
                fi
                echo    'Loading Linux 5.4.0-109-lowlatency ...'
                linux   /boot/vmlinuz-5.4.0-109-lowlatency root=UUID=79ff4213-58cc-4410-9b21-b6db63e1da04 ro  quiet splash $vt_handoff
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-5.4.0-109-lowlatency
        }
     
        [...]
}   

관련 정보