“이전”커널을 기본 grub 항목으로 설정


93

테스트 목적으로 메인 라인 커널을 설치했습니다. 기본적으로 이전 커널에서 부팅하도록 grub을 설정하고 싶습니다.

GRUB_DEFAULT=0grub의 첫 페이지 설정을 설정할 수 있지만 두 번째 페이지 (고급 페이지)의 한 커널에서 기본적으로 부팅하도록 설정하는 방법을 알고 있습니까?

다른 소프트웨어 (예 : grub-customizer)를 설치하지 않고이 작업을 선호합니다.

관련 질문 :
부트 로더에서 Windows를 기본값으로 부팅하도록 설정하는 방법
GRUB 부팅 순서를 어떻게 변경합니까?


3
@belacqua : 중복되지 않습니다. 이 질문은 grub의 첫 번째 옵션 페이지에 존재하지 않는 이전 커널을 기본값으로 설정하는 것에 관한 것입니다.
— 수행하려면

이 경우 12.10, 이전 커널 등을 위해 메소드를 업데이트해야하더라도 이전 질문에서 다루어야 할 것 같습니다.
— belacqua

3
질문의 사용 사례는 다르며 답변은 주장 된 다른 사본에는 적용되지 않는 방식으로 매우 구체적입니다. 이 문제를 해결하기 위해 여기에 왔습니다. 부팅 순서를 변경하지 마십시오. Windows를 부팅 할 수도 없습니다. "중복이 아님"+1
— Robie Basak

답변:


128

먼저의 백업 사본을 만드십시오 /etc/default/grub. 문제가 발생하면 알려진 사본으로 쉽게 되돌릴 수 있습니다.

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

그런 다음 원하는 텍스트 편집기 (예 : gedit 등)를 사용하여 파일을 편집하십시오.

sudo -H gedit /etc/default/grub

포함 된 줄을 찾으십시오 GRUB_DEFAULT-이것이 기본값을 설정하기 위해 편집하려는 것입니다. 예를 들어 Ubuntu, with Linux 3.13.0-53-generic"고급 메뉴"의 전체 이름과 함께 원하는 커널의 전체 이름을 알고 있어야합니다 Advanced options for Ubuntu.

그런 다음이 두 문자열을 결합하여 다음 >과 같이 설정 GRUB_DEFAULT하십시오 GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic"(따옴표 포함).

저장 한 다음 업데이트 된 그럽 메뉴를 빌드하십시오.

sudo update-grub

참조 : GNU GRUB 수동 2.02 또는 더 구체적으로 섹션 15.1.0을 기본 설정에 .


참고 : 커널과 메뉴에 액세스하기 위해 숫자를 사용하는 방법이 있지만 커널 업데이트가 발생할 때는 신뢰할 수 없으므로 권장되지 않습니다.


24
업데이트 할 때 숫자 값을 사용하면 문제가 발생할 수 있습니다. 텍스트 기본값을 사용하는 것이 좋습니다. 예 : GRUB_DEFAULT = "리눅스 3.2.0-18-generic이있는 우분투"
— Bealer

27
하나는 사용 sudo grub-mkconfig | less가능한 모든 옵션을 볼 수
— NITZ

9
이것은 좋은 해결책이지만, 심지어 더 나은를 여는 것입니다 /boot/grub/grub.cfg거기 당신은 모든 볼 manuentry모든를 submenus. 편집하면 기본 설정을 쉽게 설정하고 컴퓨터를 다시 시작할 때 그룹 목록에서 옵션 제목을 변경할 수도 있습니다.
— Aleks

7
/boot/grub/grub.cfg사용할 정확한 이름을 결정 하기 위해 검사 하는 것이 확실히 유용 합니다. 그러나이 파일은 update-grub패키지 업데이트를 포함하여에 의해 자동으로 재생성되므로이 파일을 변경하지 마십시오 .
— Robie Basak

18
GRUB_DEFAULT의 형식은 약간 구식입니다 (최소한 Ubuntu 14.04.2부터). 실행 update-grub중 경고 Previous Linux versions>Ubuntu, with Linux 3.13.0-53-generic가 표시됨 : GRUB_DEFAULT에 이전 제목 을 사용하지 마십시오 Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic(2.00 이전 버전의 경우) 또는 gnulinux-advanced-b0ce60c3-184c-453b-af59-419b56a2584f>gnulinux-3.13.0-53-generic-advanced-b0ce60c3-184c-453b-af59-419b56a2584f(2.00 이상)
— Wumms

22

나에게 가장 좋은 해결책은 (in /etc/default/grub) 을 설정하는 것이 었습니다 .

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

이 설정을 사용하면 다음에 부팅 할 때 마지막으로 선택한 값이 유지됩니다. 새로운 커널이 있다면 설정을 편집 할 필요가 없습니다.

다시 실행하는 것을 잊지 마십시오 sudo update-grub

해결책은 다음과 같습니다. info grub-mkconfig


4
이것은 굉장하다
— Mephisto

;줄 끝에 세미콜론 ( ) 이 확실 합니까?!?
— DJCrashdummy

현재이 컴퓨터를 사용한 컴퓨터를 볼 수는 없지만 ";" 잘못되었거나 불필요한 것 같습니다!
— Martin T.

21

이제 것을 Advanced메뉴는 우분투의 기본이며, 당신은 당신이 사용하고자하는 커널 전에 선택해야합니다 >문자.

예를 들면 :

GRUB_DEFAULT="1>7"

에 /etc/default/grub다시 실행하십시오 sudo update-grub.

GRUB 메뉴 항목의 번호는로 시작한다는 점에 유의해야합니다 0. 따라서 1위의 Advanced메뉴를 가리 킵니다 . 예방책으로 처음에을 설정하는 것이 GRUB_TIMEOUT=5좋습니다. 부팅 할 때 키를 눌러 GRUB에 액세스하지 못할 수 있습니다. 실수로 Memory test대신 다른 것을 가리킬 경우를 대비 한 안전망 입니다. 위의 숫자를 따옴표로 묶어야합니다. 그렇지 않으면 작동하지 않습니다.

16.04 LTS에서 테스트했습니다.


데비안에서도 작동합니다.
— Lawrence D' Oliveiro

커널 업데이트 후에도 여전히 최신 커널을 가리 키므로이 답변은 매우 유용합니다. 예를 들어 내 설정에서 1> 0은 고급 우선 목록입니다 (항상 최신 커널 임). 내 시스템은 때때로 최신 커널로 grub의 0 항목을 자동으로 업데이트하지 않기 때문에이 방법을 사용합니다.
— Peter Fleix

9

기본값으로 사용할 부팅 옵션을 설정하려면 무엇이 있는지 알아야합니다.

실제로 부팅하지 않고 메뉴 항목을 표시하려면 다음과 같이 시도하십시오.

$ lsb_release -s -rdc
우분투 16.04.4 LTS
16.04
제니 얼

$ update-grub --version
grub-mkconfig (GRUB) 2.02 ~ beta2-36 우분투 3.17

$ grep -Ei '하위 메뉴 | 메뉴 항목'/boot/grub/grub.cfg | sed -re "s / (.?) '([^'] +) '. * / \ 1 \ 2 /"
메뉴 항목 우분투
하위 메뉴 Ubuntu의 고급 옵션
    Linux 4.4.0-34-generic이있는 menuentry Ubuntu
    menuentry Ubuntu, Linux 4.4.0-34-generic (시작)
    menuentry Ubuntu, Linux 4.4.0-34-generic (복구 모드)
menuentry 시스템 설정

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.