저는 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는 내가 부팅 한 최신 커널을 기억하고있는 것 같습니다. 하위 메뉴에서 자동으로 선택합니다. 하위 메뉴에 액세스하고 싶지 않다는 것입니다.
댓글
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를 사용하고 있습니다.
-o /boot/grub2/grub.cfg
를 출력 파일로 사용합니다./boot/grub/
디렉토리가 여전히 존재합니까?