저는 Gentoo Linux 시스템에서 GRUB 2.00을 실행하고 있습니다.

내 커널을 수동으로 컴파일 한 다음 설치합니다. /boot (make install 포함). 현재 /boot에 다음 커널이 있습니다.

# ls -1 /boot/vmlinuz* /boot/vmlinuz-3.7.4-gentoo-5 /boot/vmlinuz-3.7.4-gentoo-first /boot/vmlinuz-3.7.4-gentoo-fourth /boot/vmlinuz-3.7.4-gentoo-third 

grub2-mkconfig를 실행하면 다음과 같은 출력이 나타납니다.

# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.7.4-gentoo-third Found linux image: /boot/vmlinuz-3.7.4-gentoo-fourth Found linux image: /boot/vmlinuz-3.7.4-gentoo-first Found linux image: /boot/vmlinuz-3.7.4-gentoo-5 done 

이제 결과 /boot/grub2/grub.cfg 파일을 읽으면 다음 항목이 생성되었음을 알 수 있습니다.

  • 시작 vmlinuz-3.7.4-gentoo-third
  • grub2-mkconfig 명령

문제는 부팅 할 때 기본적으로 커널의 다섯 번째 개정판 (vmlinuz-3.7.4-gentoo-5)을로드하려고한다는 것입니다. 세 번째가 아닙니다 (vmlinuz-3.7.4-gentoo-third). 또한로드 할 올바른 커널을 선택하기 위해 하위 메뉴에 액세스하는 것을 선호하지 않습니다.

이 동작을 어떻게 변경할 수 있습니까? 이전 세 번째 개정이 아닌 기본적으로 커널의 다섯 번째 개정을 실행하겠다고 GRUB에 알리려면 어떻게해야합니까? 일반적으로 GRUB에서 선택한 커널이 아닌 내가 원하는 커널과 일치하도록 기본 입력 줄을 변경하려면 어떻게해야합니까?

또한 다음 줄을 /etc/default/grub :

GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true 

내가 원하는 방식으로 문제를 해결하지는 못합니다.하지만 적어도 GRUB는 내가 부팅 한 최신 커널을 기억하고있는 것 같습니다. 하위 메뉴에서 자동으로 선택합니다. 하위 메뉴에 액세스하고 싶지 않다는 것입니다.

댓글

  • -o /boot/grub2/grub.cfg를 출력 파일로 사용합니다. /boot/grub/ 디렉토리가 여전히 존재합니까?

Answer

하위 메뉴 “고급 옵션”에서 메뉴 항목을 선택하려면 GRUB_DEFAULT = “1> 3″을 설정합니다. 이제 grub2-mkconfig를 실행하여 grub 구성 파일을 생성 할 수 있습니다. . 다음 재부팅시 vmlinuz-3.7.4-gentoo-5가 부팅됩니다.

참고 : 이것은 기본 항목을 변경하지 않습니다. grub 메뉴, 즉, 기본 항목은 여전히 현재와 동일한 항목을 나타냅니다. 그러나 기본적으로 부팅되는 이미지는 “고급 옵션”에서 네 번째 이미지가됩니다. vmlinuz-3.7.4-gentoo-5를 grub 메뉴의 기본 항목으로 만들려면 grub2-mkconfig를 실행할 때 vmlinuz-3.7.4-gentoo-5가 첫 번째 이미지가되어야하는 이미지 순서 여야합니다. .

댓글

  • 따옴표는 중요합니다. 즉 GRUB_DEFAULT = 1 > 3 승 ‘ 실패했습니다.

답변

grub.cfg에 하위 메뉴 가있는 경우 사용해야합니다. 두 자리 숫자 :

grub-reboot "1>3" 

첫 번째 는 메뉴 색인이고 두 번째 는 하위 메뉴 색인입니다. .

예를 들어 다음과 같이 구성에서 마지막 항목을 부팅하려면 다음을 사용해야합니다.

grep menu /boot/grub/grub.cfg menuentry "Debian GNU/Linux" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-simple-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { submenu "Advanced options for Debian GNU/Linux" $menuentry_id_option "gnulinux-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (sysvinit)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (recovery mode)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64 (sysvinit)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64 (recovery mode)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { 

다음을 사용해야합니다.

grub-reboot "1>5" 

그리고 재부팅합니다.

댓글

  • 이상합니다. 하위 메뉴 색인은 0으로 시작하고 기본 메뉴는 1부터 시작합니다.

답변

. 이 경우 ”

$ grub2-set-default -h Usage: grub2-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. -h, --help print this message and exit -v, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub2 instead of the /boot/grub2 directory MENU_ENTRY is a number, a menu item title or a menu item identifier. 

또는 다음 부팅에만 사용하는 경우 :

$ grub2-reboot -h Usage: grub2-reboot [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB, for the next boot only. -h, --help print this message and exit -v, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub2 instead of the /boot/grub2 directory MENU_ENTRY is a number, a menu item title or a menu item identifier. 

Answer

centos7 (또는 RHEL7) 및 grub2 사용 :

grub은 grubenv의 “saved_entry”항목을 사용합니다. 기본적으로 부팅, /boot/grub2/grub.cfg에서 sniplet :

if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi 

“saved_entry”가 무엇인지 확인하려면 이제 내 빌드입니다.

grub2-editenv list 

saved_entry=CentOS Linux (3.10.0-693.2.2.el7.ari.x86_64) 7 (Core)

예 : 내 디버그 빌드로 변경 :

grub2-editenv - set saved_entry="CentOS Linux 3.10.0-693.2.2.el7.ari.x86_64.debug) 7 (Core)" 

답변

시도

mkdir -p /boot/grub/backup mv -v /boot/grub/vmlinuz-3.7.4-gentoo-{first,third,fourth} /boot/grub/backup 

사용하지 않는 모든 커널을 이제 백업 디렉토리로 이동합니다.

grub2-mkconfig -o /boot/grub/grub.cfg 

이렇게하면 메뉴에 r5 선택 항목 만 추가됩니다. 그런 다음이 링크를 읽고 백업 디렉토리에있는 모든 커널을 유지하려는 경우 vmlinuz가 아닌 다른 커널과 동일하게하십시오

답변

원하는 결과를 얻기 위해 내가 한 일은 다음과 같습니다.

  • GRUB_DEFAULT=saved (grub-set-default 도움말

    grub-set-default Menu entry not specified. Usage: grub-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. This requires setting GRUB_DEFAULT=saved in /etc/default/grub. -h, --help print this message and exit -V, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub instead of the /boot/grub directory MENU_ENTRY is a number, a menu item title or a menu item identifier.

  • 기본값 설정

    grub-set-default "1>2"

    / boot / grub에 다음과 같은 새 파일을 만듭니다. 필요한 정보가있는 grubenv.

  • 구성 파일을 다시 생성합니다.

    grub-mkconfig > /boot/grub/grub.cfg

저장된 상태를 사용하도록 구성이 변경된 것을 확인했습니다.

if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi

Answer

숫자 값으로 기본 선택을 설정할 수 있습니다. 다음을 설정하면

`GRUB_DEFAULT=3` 

/etc/default/grub
기본값을 gentoo-5 항목으로 설정합니다.
GRUB_DEFAULT는 제로 오프셋이므로 3은 선택합니다. 네 번째 항목입니다.

댓글

  • 나는 ‘ 이유를 모르지만 ‘ 작동하지 않는 것 같습니다. 말씀하신대로 GRUB_DEFAULT=3를 설정 한 다음 grub2-mkconfig.하지만 부팅시 기본 항목은 여전히 vmlinuz-3.7.4-gentoo-third입니다.
  • GRUB_SAVEDEFAULT=true 주석 처리를 시도합니다. ‘ 중요하지만 ‘ nume에는 필요하지 않습니다.
  • /etc/default/grub 파일에 해당 옵션이 없습니다.

답변

grub2-mkconfig는 커널을 역순으로 정렬합니다. 단조롭게 증가하는 버전 번호를 포함합니다. 따라서 해당 규칙에 맞게 태그를 선택하세요.

답변

우분투 :

sudo grub-pc 

grub-pc를 사용하면 메뉴를 선택할 수 있습니다.

sudo update-grub 

참조 : https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-menu

답변

mv /boot의 새로운 / 사용되지 않은 버전 파일을 백업 디렉토리 (예 : /boot/back

)에 복사합니다. div id = “a9c07563b6”>

시스템을 복구 모드로 재부팅 한 다음 복구 대화 상자에서 GRUB을 선택하면 모든 것이 정상입니다.

제 생각에 가장 적합한 방법입니다. 우분투 14.04를 사용하고 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다