Das Ändern Ihres Kernels in AWS scheint die Startreihenfolge zu unterbrechen (Grub-Konfigurationsproblem?)

Das Ändern Ihres Kernels in AWS scheint die Startreihenfolge zu unterbrechen (Grub-Konfigurationsproblem?)

Ich verwende Ubuntu 20.04 auf AWS (ec2) und wollte meinen AWS-Kernel auf einen generischen ändern. Wenn ich es auf die vorgeschlagene Weise versuche und dabei die Grub-Konfiguration ändere, stoppt die Maschine.

Dies liegt daran, dass Jibri (Jitsi Video Recorder) die Verwendung von ALSA und modprobe snd-aloop erfordert, aber alles, was eine niedrige Latenz oder einen anderen Kernel benötigt, hat denselben Bedarf.

Was ich versucht habe:

Schnappen Sie sich das Bild:

sudo apt install linux-image-extra-virtual

Sie werden in den Installationspaketen einen Verweis auf etwas wie Linux 5.4.0-84-generic sehen, das hilft später. Listen Sie nun Ihre Boot-Einträge auf, die Sie für diesen neuen generischen Kernel haben

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

Ich verstehe:

Menüeintrag 'Ubuntu, mit 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' { Menüeintrag 'Ubuntu, mit Linux 5.4.0-84-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-recovery-e8070c31-bfee-4314-a151-d1332dc23486' {

Kopieren Sie in der wahrscheinlich obersten Zeile (und nicht in der, in der der Wiederherstellungsmodus erwähnt wird) den Menüeintrag am Anfang der Zeile. Bei mir sieht es aus wie Ubuntu mit Linux 5.4.0-84-generic, aber es wird bei jedem anders sein.

Nun werde ich bearbeiten/etc/default/grub,

Kommentieren Sie GRUB_DEFAULT=0 aus (lädt den ersten Eintrag in Ihrer Grub-Bootliste) und ändern Sie es in die Zeichenfolge, die wir zuvor gefunden haben. Für mich sieht dieser Abschnitt der Datei jetzt so aus:

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

Dies ist noch kein richtiges Setup. Wir verwenden es, damit Grub dies prüft und uns sagt, wie es am besten geht.

An diesem Punkt können wir sudo update-grub ausführen, was mir eine freundliche Warnung wie diese gibt (das ist gut!)

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)

Auch das ist gut! Wir wissen, dass wir etwas angegeben haben, das es erkennt. Jeder verwendet heutzutage Grub, das neuer als 2.00 ist, also bearbeiten wir /etc/default/grub erneut und ändern es auf den endgültigen Wert:

(meine Werte werden sich von Ihren unterscheiden)

#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, und ich sehe, dass die Warnung jetzt weg ist.

Jetzt mache ich einesudo reboot now

An diesem Punkt hat Grub mir eine Konfiguration gegeben, die versuchen sollte, den generischen Kernel zu booten und auf den normalen Kernel zurückzugreifen.

Stattdessen bleibt es in einer Boot-Schleife hängen.

In der seriellen Konsole sehe ich dies während der Boot-Schleife wiederholt.

[    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)

Es sagt mir, dass es das Startgerät oder die entsprechende Partuuid nicht finden kann. An diesem Punkt muss ich die Instanz beenden und es erneut versuchen, da ich sie nicht einfach wiederherstellen kann.

Gibt es eine bessere Möglichkeit, meinen Kernel auf den generischen zu ändern? Ich wäre schon zufrieden, wenn ich das generische Image an dieser Stelle auf jede mögliche Weise verwenden könnte, wenn es bootet.

verwandte Informationen