GRUB_DEFAULT = _이 제대로 작동하지 않습니다.

GRUB_DEFAULT = _이 제대로 작동하지 않습니다.

커널 업그레이드 버그로 인해 이 설정을 수행했습니다.

GRUB_DEFAULT = 4

~에/etc/default/grub

내가 처형한 것보다

sudo setup-grub

그러나 그것은 효과가 없었습니다. 내가 원하는 버전은 4.2.0-16-generic입니다. 왜냐하면 4.2.0-18 및 4.2.0-17(실제로는 나열되지 않음)이 작동하지 않기 때문입니다. 목록에서는 4.2.0-16이 4위입니다.

작동하지 않을 때 다음을 시도했습니다.

GRUB_DEFAULT = "Advanced options for Ubuntu>Ubuntu, with Linux 4.2.0-16-generic"

그리고

sudo setup-grub

그러나 여전히 작동하지 않았고 작동하지 않는 커널 버전을 열었습니다. 현재는 Ubuntu의 고급 옵션을 통해서만 수동으로 4.2.0-16에 액세스할 수 있지만 자동으로 로드되기를 원합니다. 어떤 솔루션을 추천하시겠습니까?

출력 dpkg --list | grep linux-image:

ii  linux-image-extra-4.2.0-16-generic                          4.2.0-16.19                                amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-extra-4.2.0-17-generic                          4.2.0-17.21                                amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-extra-4.2.0-18-generic                          4.2.0-18.22                                amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-generic                                         4.2.0.18.20                                amd64        Generic Linux kernel image

마지막 4개 출력(커널 4.2.0이 포함된 Ubuntu 15.10의 경우에만 해당).

답변1

submenu해당 및 라인 의 ID를 사용해야 합니다 menuentry.

메모 "Ubuntu의 고급 옵션"은(는 submenu) 해당 ID를 사용해야 합니다.

달리다grep -E "^\\s*(menuentry|submenu) " /boot/grub/grub.cfg

예를 들어 출력이 다음과 같은 경우:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-140-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-140-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-init-upstart-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-140-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-recovery-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-101-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-101-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-init-upstart-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-101-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-recovery-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {

올바른 설정은 다음과 같습니다.

GRUB_DEFAULT="gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76>gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76"

0부터 시작하는 번호 매기기를 사용할 수도 있지만 하위 메뉴 항목을 고려해야 합니다.

GRUB_DEFAULT="1>3"

update-grub마지막에는 달리는 것을 잊지 마십시오 .

답변2

  1. 현재 grub을 백업하십시오.

    sudo cp /etc/default/grub /etc/default/grub.bak

  2. 이제 파일을 열어보세요.

    sudo gedit /etc/default/grub

  3. 다른 터미널을 열고 다음을 입력하세요.

    cat /boot/grub/grub.cfg | grep 4.2.0-16

    다음과 같은 줄이 표시됩니다.

    menuentry 'Ubuntu, Linux 4.2.0-16-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.2.0-18-generic-advanced-esx5367c-b4ug -19sd-v6j8-ty2hj01ui3kj' {..........

  4. 다음 줄을 복사하여 붙여넣으세요.

다음에서 편집됨:

GRUB_DEFAULT ="gnulinux-4.2.0-16-generic-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98"

편집 대상:

GRUB_DEFAULT ="gnulinux-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98>gnulinux-4.2.0-16-generic-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98"

  1. 파일을 저장합니다.

  2. 이제 다음 명령을 입력하십시오.

    sudo update-grub

답변3

좋아요! 해결책을 찾았습니다. PPA를 grub-customizer에 연결해야 했습니다.

sudo add-apt-repository ppa:danielrichter2007/grub-customizer

내가 그랬던 것보다 :

sudo apt-get update

다음 단계는

sudo apt-get install grub-customizer

그런 다음 Unity Dash를 통해 grub-customizer를 열고 거기에서 원하는 커널을 선택합니다! :)

답변4

GRUB_DEFAULT삽입 에 적합한 모든 Ubuntu 커널을 나열하는 작은 bash 기능 /etc/default/grub

 MENUID=$( grep -E "^\\s*(submenu) " /boot/grub/grub.cfg  | grep -oP "gnuli.*(?=')"    )
grep '(?<=menuentry_id_option ).gnuli\S+' /boot/grub/grub.cfg  -Po | \
    sed "s@'@@g" |grep -vE 'recovery|simple|gnulinux-advanced' | sed "s@^@GRUB_DEFAULT=\"${MENUID}>@; s@\$@\"@"

산출:

GRUB_DEFAULT="gnulinux-advanced-20dfee37-ad84-49b2-8c69-a54699da855d>gnulinux-6.6.10-usb2-advanced-20dfee37-ad84-49b2-8c69-a54699da855d"
GRUB_DEFAULT="gnulinux-advanced-20dfee37-ad84-49b2-8c69-a54699da855d>gnulinux-5.15.0-35-generic-advanced-20dfee37-ad84-49b2-8c69-a54699da855d"

그런 다음 하나를 선택하고 붙여넣고 /etc/default/grub실행 update-grub하고 재부팅하십시오.

관련 정보