AWS에서 커널을 변경하면 부팅 순서가 중단되는 것 같습니다(grub 구성 문제?)

AWS에서 커널을 변경하면 부팅 순서가 중단되는 것 같습니다(grub 구성 문제?)

AWS(ec2)에서 Ubuntu 20.04를 사용하여 커널을 AWS에서 일반 커널로 변경하고 싶었습니다. Grub Config를 변경하여 제안된 방법을 시도하면 컴퓨터가 중지됩니다.

이는 Jibri(Jitsi Video Recorder)가 ALSA를 사용하고 snd-aloop를 modprobe해야 하기 때문입니다. 그러나 낮은 대기 시간이나 다른 커널을 원하는 모든 것에는 동일한 요구 사항이 있습니다.

내가 시도한 것:

이미지를 가져옵니다:

sudo apt install linux-image-extra-virtual

설치 패키지에서 Linux 5.4.0-84-generic과 같은 내용을 참조하는 것을 볼 수 있으며 나중에 도움이 됩니다. 이제 새로운 일반 커널에 대해 가지고 있는 부팅 항목을 나열하십시오.

grep -A200 submenu /boot/grub/grub.cfg |grep -P '^(?=.*menuentry)(?=.*generic)'

알겠어요:

menuentry 'Ubuntu, Linux 5.4.0-84-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-advanced-e8070c31-bfee -4314-a151-d1332dc23486' { 메뉴 항목 'Ubuntu, Linux 5.4.0-84-generic(복구 모드)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4 .0-84-일반-복구-e8070c31-bfee-4314-a151-d1332dc23486' {

복구 모드를 언급하지 않고 맨 윗줄에 있는 줄의 시작 부분에 해당 메뉴 항목을 복사합니다. 내 경우에는 Linux 5.4.0-84-generic 을 사용하는 Ubuntu처럼 보이지만 모든 사람에게 다릅니다.

이제 편집하겠습니다./etc/default/grub,

GRUB_DEFAULT=0(grub 부트 목록의 첫 번째 항목 로드)을 주석 처리하고 앞서 찾은 문자열로 변경합니다. 나에게 있어 파일의 이 섹션은 이제 다음과 같습니다.

#GRUB_DEFAULT=0
GRUB_DEFAULT="Ubuntu, with Linux 5.4.0-84-generic"

이것은 아직 적절한 설정이 아닙니다. 우리는 이를 사용하여 Grub이 이를 수행하는 가장 좋은 방법을 확인하고 알려주도록 합니다.

이 시점에서 sudo update-grub을 실행하면 다음과 같은 친근한 경고가 표시됩니다(좋습니다!).

Warning: Please don't use old title `Ubuntu, with Linux 5.4.0-84-generic' for GRUB_DEFAULT, use `Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-84-generic' (for versions before 2.00) or `gnulinux-advanced-e8070c31-bfee-4314-a151-d1332dc23486>gnulinux-5.4.0-84-generic-advanced-e8070c31-bfee-4314-a151-d1332dc23486' (for 2.00 or later)

이번에도 좋다! 우리는 그것이 인식하는 것을 지정했다는 것을 알고 있습니다. 요즘은 모두가 2.00보다 최신 버전의 grub을 실행하고 있으므로 이제 /etc/default/grub을 다시 편집하여 최종 값으로 변경합니다.

(나의 가치관은 당신과 다를 것이다)

#GRUB_DEFAULT=0
#GRUB_DEFAULT="Ubuntu, with Linux 5.4.0-84-generic"
GRUB_DEFAULT="gnulinux-advanced-e8070c31-bfee-4314-a151-d1332dc23486>gnulinux-5.4.0-84-generic-advanced-e8070c31-bfee-4314-a151-d1332dc23486"

sudo update-grub , 이제 경고가 사라진 것을 확인했습니다.

이제 나는sudo reboot now

이 시점에서 grub은 일반 커널로 부팅을 시도하고 일반 커널로 돌아가는 구성을 제공했습니다.

대신 부팅 루프에 갇히게 됩니다.

직렬 콘솔에서는 부팅 루프 중에 이 현상이 반복적으로 표시됩니다.

[    0.000000] Linux version 5.4.0-84-generic (buildd@lgw01-amd64-050) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 
(Ubuntu 5.4.0-84.94-generic 5.4.133)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-84-generic root=PARTUUID=5198cbc0-01 ro console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295 panic=-
1
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Hygon HygonGenuine
[    0.000000]   Centaur CentaurHauls
[    0.000000]   zhaoxin   Shanghai  
... lots of cpu init that's hard to copy ..
[   10.366218] rtc_cmos 00:00: setting system clock to 2021-09-21T11:25:30 UTC (1632223530)
[   10.373185] md: Waiting for all devices to be available before autodetect
[   10.460173] md: If you don't use raid, use raid=noautodetect
[   10.464642] md: Autodetecting RAID arrays.
[   10.468024] md: autorun ...
[   10.470867] md: ... autorun DONE.
[   10.473906] VFS: Cannot open root device "PARTUUID=5198cbc0-01" or unknown-block(0,0): error -6
[   10.562806] Please append a correct "root=" boot option; here are the available partitions:
[   10.569825] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[   10.674637] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.4.0-84-generic #94-Ubuntu
[   10.682527] Hardware name: Amazon EC2 t3.small/, BIOS 1.0 10/16/2017
[   10.686735] Call Trace:
[   10.691100]  dump_stack+0x6d/0x8b
[   10.759061]  panic+0x101/0x2e3
[   10.761974]  mount_block_root+0x23f/0x2e8
[   10.765568]  mount_root+0x38/0x3a
[   10.768584]  prepare_namespace+0x13f/0x194
[   10.771873]  kernel_init_freeable+0x23f/0x263
[   10.775368]  ? rest_init+0xb0/0xb0
[   10.859141]  kernel_init+0xe/0x110
[   10.862101]  ret_from_fork+0x35/0x40
[   10.865843] Kernel Offset: 0x36a00000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)

이에 따라 부팅 장치나 partuuid를 찾을 수 없다는 메시지가 나타납니다. 이 시점에서는 쉽게 복구할 수 없으므로 인스턴스를 종료하고 다시 시도해야 합니다.

내 커널을 일반 커널로 변경하는 더 좋은 방법이 있습니까? 부팅할 경우 이 시점에서 가능하다면 일반 이미지를 사용하게 되어 기쁠 것입니다.

관련 정보