데비안에서 기본 커널을 설정하는 방법은 무엇입니까?

데비안에서 기본 커널을 설정하는 방법은 무엇입니까?

나는 5.10.0-11-cloud-amd64커널을 가지고 있고 5.10.0-12-amd64그것을 Debian에 설치 했습니다 11.2. 5.10.0-12-amd64일시적으로 기본 커널로 설정하고 싶습니다 . 저는 Grub을 처음 사용합니다. 기본 커널을 어떻게 설정합니까 5.10.0-12-amd64? 내 거 /lib/modules:

5.10.0-10-cloud-amd64  5.10.0-11-cloud-amd64  5.10.0-12-cloud-amd64
5.10.0-11-amd64        5.10.0-12-amd64

내 /boot/에는 grub2 폴더가 아닌 grub 폴더만 있습니다. 명령 grep -e "menuentry " -e submenu -e linux /boot/grub/grub.cfg출력:

### BEGIN /etc/grub.d/10_linux ###
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ccb4ba21-fd62-42c9-b8eb-75a437b1747d' {
    linux   /boot/vmlinuz-5.10.0-12-cloud-amd64 root=UUID=ccb4ba21-fd62-42c9-b8eb-75a437b1747d ro console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0 
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-ccb4ba21-fd62-42c9-b8eb-75a437b1747d' {
    menuentry 'Debian GNU/Linux, with Linux 5.10.0-12-cloud-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-12-cloud-amd64-advanced-ccb4ba21-fd62-42c9-b8eb-75a437b1747d' {
        linux   /boot/vmlinuz-5.10.0-12-cloud-amd64 root=UUID=ccb4ba21-fd62-42c9-b8eb-75a437b1747d ro console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0 
    menuentry 'Debian GNU/Linux, with Linux 5.10.0-12-cloud-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-12-cloud-amd64-recovery-ccb4ba21-fd62-42c9-b8eb-75a437b1747d' {
        linux   /boot/vmlinuz-5.10.0-12-cloud-amd64 root=UUID=ccb4ba21-fd62-42c9-b8eb-75a437b1747d ro single console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0
    menuentry 'Debian GNU/Linux, with Linux 5.10.0-12-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-12-amd64-advanced-ccb4ba21-fd62-42c9-b8eb-75a437b1747d' {
        linux   /boot/vmlinuz-5.10.0-12-amd64 root=UUID=ccb4ba21-fd62-42c9-b8eb-75a437b1747d ro console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0 
    menuentry 'Debian GNU/Linux, with Linux 5.10.0-12-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-12-amd64-recovery-ccb4ba21-fd62-42c9-b8eb-75a437b1747d' {
        linux   /boot/vmlinuz-5.10.0-12-amd64 root=UUID=ccb4ba21-fd62-42c9-b8eb-75a437b1747d ro single console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0
    menuentry 'Debian GNU/Linux, with Linux 5.10.0-11-cloud-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-11-cloud-amd64-advanced-ccb4ba21-fd62-42c9-b8eb-75a437b1747d' {
        linux   /boot/vmlinuz-5.10.0-11-cloud-amd64 root=UUID=ccb4ba21-fd62-42c9-b8eb-75a437b1747d ro console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0 
    menuentry 'Debian GNU/Linux, with Linux 5.10.0-11-cloud-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-11-cloud-amd64-recovery-ccb4ba21-fd62-42c9-b8eb-75a437b1747d' {
        linux   /boot/vmlinuz-5.10.0-11-cloud-amd64 root=UUID=ccb4ba21-fd62-42c9-b8eb-75a437b1747d ro single console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0
    menuentry 'Debian GNU/Linux, with Linux 5.10.0-11-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-11-amd64-advanced-ccb4ba21-fd62-42c9-b8eb-75a437b1747d' {
        linux   /boot/vmlinuz-5.10.0-11-amd64 root=UUID=ccb4ba21-fd62-42c9-b8eb-75a437b1747d ro console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0 
    menuentry 'Debian GNU/Linux, with Linux 5.10.0-11-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-11-amd64-recovery-ccb4ba21-fd62-42c9-b8eb-75a437b1747d' {
        linux   /boot/vmlinuz-5.10.0-11-amd64 root=UUID=ccb4ba21-fd62-42c9-b8eb-75a437b1747d ro single console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

위의 명령을 제공해 주신 TelcoM에게 감사드립니다.

답변1

먼저, 내부에 변수가 있는지 /etc/default/grub확인 하세요. GRUB_DEFAULT=설정하거나 GRUB_DEFAULT=0설정하지 않으면 부팅 메뉴의 첫 번째 항목(항목 #0)이 기본적으로 실행됩니다. 로 설정한 경우와는 별개로 GRUB_DEFAULT=saved, 기본값을 안정적으로 변경하는 유일한 방법은 편집한 GRUB_DEFAULT=다음 루트 (또는 ) /etc/default/grub로 실행하는 것 입니다 .update-grubgrub-mkconfig > /boot/grub/grub.cfg

설정된 경우 GRUB_DEFAULT=saved, 그러면 두 명령을 사용할 grub-rebootgrub-set-default있습니다. 전자는 커널 부팅을 설정합니다한 번의 실행에서만 작동합니다.그러면 이전 기본값으로 돌아갑니다. 후자는 grub-set-defaultGRUB 부팅 메뉴에서 다른 항목을 사용하거나 선택하여 다시 변경할 때까지 GRUB 기본 항목을 토글합니다 .

기본 설정의 가장 간단한 형태는 단순히 메뉴 항목 번호(맨 위의 항목 #0부터 시작)를 지정하는 것입니다. 그러나 최신 GRUB 메뉴는 일반적으로 최신 커널을 먼저 배치한 다음 다음으로 구성됩니다.다른 모든 코어에 대한 하위 메뉴두 번째 위치에는 해당 하위 메뉴 뒤의 다른 운영 체제 및 기타 사용자 정의 항목이 있습니다.

유용한 방법으로 GRUB 메뉴를 보려면 를 실행하십시오 grep -e "menuentry " -e submenu -e linux /boot/grub/grub.cfg. (다음 공백은 menuentry일부 잘못된 적중을 필터링하는 데 사용됩니다.) 다소 긴 menuentry합계 submenu선이 표시됩니다.실제 메뉴와 순서가 똑같네요. 또한 하위 메뉴 항목은 들여쓰기되지만 주 메뉴 항목은 들여쓰기되지 않습니다. 이렇게 하면 시스템을 다시 시작하지 않고도 현재 활성화된 GRUB 메뉴의 구조를 볼 수 있습니다.

최상위 메뉴 항목의 제목은 일반적으로 커널 버전 번호 없이 "Debian GNU/Linux"이지만, 위에서 제공한 명령은 linux /boot/vmlinuz-<kernel version number> ...첫 번째 메뉴 항목 블록의 일부인 명령도 나열합니다. 최상위 항목으로 부팅된 커널 버전이 됩니다.

하위 메뉴 내에서 메뉴 항목(예: 줄 들여쓰기)을 선택해야 하는 경우 기본 항목 사양은 해당 줄의 식별자, 한 문자, 그리고 원하는 실제 메뉴 항목의 식별자여야 menuentry합니다 . 메뉴 항목 식별자는 메뉴 항목 번호(각 메뉴에서 0부터 시작), 식별자 문자열( 각 또는 줄 뒤에 따옴표 붙은 문자열 ) 또는 각 메뉴 항목과 하위 메뉴의 표시 제목이 될 수 있습니다.submenu>$menuentry_id_optionmenuentrysubmenu

Linux 커널의 식별자 문자열은 gnulinux-simple-<Linux root filesystem UUID>첫 번째 항목과 gnulinux-<kernel version>-advanced-<Linux root filesystem UUID>"고급 옵션..." 하위 메뉴의 항목 형식을 취하는 것으로 보입니다.

Debian 11의 미국 영어 구성에 표시되는 메뉴 항목의 제목은 첫 번째 항목으로 "Debian GNU/Linux"이고, 하위 메뉴에는 "Debian GNU/Linux, with Linux"가 있으며, 하위 메뉴에는 "Debian GNU/Linux, with Linux"가 있습니다. 비 하위 메뉴. - 하위 메뉴에 복구 모드 항목이 있습니다.

따라서 GRUB 메뉴에 문제를 복잡하게 만드는 다른 운영 체제가 없다고 가정하면 다음 줄을 편집하여 다시 변경할 5.10.0-12-amd64때까지 커널을 기본값으로 설정할 수 있습니다 .GRUB_DEFAULT=/etc/default/grub

GRUB_DEFAULT="1>Debian GNU/Linux, with Linux 5.10.0-12-amd64"

update-grub루트로 실행하십시오 .

더 많은 유연성을 원할 경우 을 설정하고 GRUB_DEFAULT=saved실행한 update-grub다음 grub-set-default "1>Debian GNU/Linux, with Linux 5.10.0-12-amd64"기본값을 다시 변경할 때까지 실행하여 기본값을 변경하거나 grub-reboot "1>Debian GNU/Linux, with Linux 5.10.0-12-amd64"한 번의 실행에 대한 기본값을 변경하기 위해 실행하면 됩니다.

1>접두사는 하위 메뉴 항목을 먼저 선택해야 한다는 요구 사항에서 비롯되며 항상 기본 GRUB 메뉴(예: 메뉴 항목 #1)의 두 번째 항목입니다.

를 사용하는 경우 를 grub-set-default사용하여 간단한 영숫자 정렬을 기반으로 현재 "최신" 커널을 반환할 수 있습니다 grub-set-default 0.

각 메뉴 수준의 첫 번째 항목 번호는 #0입니다. 메뉴 항목의 경우 menuentry 'Debian GNU/Linux, with Linux 5.10.0-12-amd64'메뉴 항목 번호가 포함된 행을 다음과 같이 지정할 수 있습니다.

GRUB_DEFAULT="1>2"

즉, 두 번째 항목(항목 #1)이 하위 메뉴를 열고 하위 메뉴의 세 번째 항목(항목 #2)이 선택됩니다.

또는 메뉴 제목은 다음과 같습니다.

GRUB_DEFAULT="Advanced options for Debian GNU/Linux>Debian GNU/Linux, with Linux 5.10.0-12-amd64"

또는 메뉴 ID 문자열을 사용하십시오.

GRUB_DEFAULT="gnulinux-advanced-ccb4ba21-fd62-42c9-b8eb-75a437b1747d>gnulinux-5.10.0-12-amd64-advanced-ccb4ba21-fd62-42c9-b8eb-75a437b1747d"

또는 위 방법을 조합하여 사용하세요.

메뉴 제목이나 ID 문자열을 사용하면 커널 패키지를 설치하고 제거하더라도 선택한 커널을 계속 사용할 수 있는 한 동일한 커널을 계속 참조한다는 장점이 있습니다. 메뉴 항목 번호를 사용하려면 커널을 업데이트할 때마다 설정을 확인(필요한 경우 조정)해야 하므로 자동 업데이트와 함께 사용하면 불쾌한 결과를 초래할 수 있습니다.

답변2

클라우드 이미지는 클라우드 환경에서 불필요한 기능을 지원하기 위해 구축되지 않았습니다.

대부분의 하드웨어 드라이버가 비활성화되고 x32 ABI 지원이 비활성화되며 마이크로코드 업데이트 및 컴퓨터 검사 예외도 마찬가지입니다.

선택하는 커널은 인스턴스에 제공하는 유틸리티에 따라 달라집니다.

관련 정보