Das Mounten von UUID=xxx auf /sysroot ist fehlgeschlagen: Kein solches Gerät - Tritt nach der Installation des Linux-Kernels auf

Das Mounten von UUID=xxx auf /sysroot ist fehlgeschlagen: Kein solches Gerät - Tritt nach der Installation des Linux-Kernels auf

Nach dem Versuch, einen erstellten Kernel zu installieren und einen Neustart durchzuführen, erhalte ich die folgende Fehlermeldung:

mount: Mounten von UUID=59c56381-e5ec-4a8b-8c2e-f9c6a66d524c auf /sysroot ist fehlgeschlagen: Kein solches Gerät

Warum passiert das? Wie kann ich das Problem beheben, damit der Bootvorgang ordnungsgemäß funktioniert?

Über das System

  • Alpine Linux 3.12_alpha20200319 (Edge) – Alpine Linux Virtual
  • Kernel 5.4.31-0-virt
  • Ausführung in VirtualBox

Schritte zum Erstellen des Kernels

wget https://mirrors.edge.kernel/pub/linux/kernel/v5.x/linux-5.4.30.tar.xz
tar -xf linux-5.4.30.tar.xz
cp /boot/config-virt /home/name/build/.config
make -C /home/name/linux-5.4.30 O=/home/name/build listnewconfig
make -j4 -C /home/name/linux-5.4.30 O=/home/name/build
cd /home/name/build
make modules_install

Bei den folgenden Schritten bin ich mir unsicher:

cp System.map /boot/System.map-virt
cp arch/x86_64/boot/bzImage /boot/vmlinuz-virt
cp .config /boot/config-virt

Ich führe es nicht aus, make installweil es arch/x86/boot/bzImage übergibt. Aus diesem Grund VERMUTE ich, dass 32-Bit und 64-Bit installiert werden. Also versuche ich stattdessen, es manuell zu installieren.

Meine extlinux.conf-Datei:

DEFAULT menu.c32
PROMPT 0
MENU TITLE Alpine/Linux Boot Menu
MENU HIDDEN
MENU AUTOBOOT Alpine will be booted automatically in # seconds
TIMEOUT 30
LABEL virt
  MENU LABEL linux virt
  LINUX vmlinuz-virt
  INITRD initramfs-virt
  APPEND root=UUID=59c56381-e5ec-4a8b-8c2e-f9c6a66d524c moudles=sd-mod,usb-storage,ext4 quiet rootfstype=ext4

MENU SEPARATOR

Reparaturversuche

(Alle der folgenden Punkte führen immer noch zum selben Fehler)

  • mkinitfsWird vor dem Neustart im /Verzeichnis ausgeführt
  • Läuftextlinux --install /boot
  • make installStattdessen im Build-Verzeichnis ausführen und die Zeile extlinux.conf ändern LINUX vmlinuz-virtinLINUX vmlinuz
  • Habe versucht, die VirtualBox-Speichercontroller auf AHCI, Virtio-SCSI und PIIX4 umzustellen.

Kann hilfreich sein:

Ich habe die im Fehler und in extlinux.conf angegebene UUID geprüft. Sie identifiziert /dev/sda3. Wenn ich jedoch nach dem fehlgeschlagenen Bootvorgang die Notfallwiederherstellungsshell betrete und das Verzeichnis /dev überprüfe, ist es nicht vorhanden. Keine Ahnung, warum.

lsmod zeigt an, dass keine Module geladen sind. Ich gehe davon aus, dass das nicht passieren sollte.

Wenn ich den Bootvorgang fortsetze, indem ich Folgendes eingebe, exiterhalte ich die Meldung „Kernel Panic“Kernel Panic-Screenshot

Dateien

.config -https://github.com/alpinelinux/aports/blob/master/main/linux-lts/config-virt.x86_64

extlinux.conf –https://pastebin.com/QMkePsqS

mkinitfs.conf –https://pastebin.com/rksn7GcN

Antwort1

Wie im Beitrag erwähnt,

lsmod zeigt an, dass keine Module geladen sind. Ich nehme an, das sollte nicht passieren

Das Problem lag darin, dass Module nicht in den Kernel geladen wurden. Die aktuelle Version des Kernels war 5.4.31-0-virt und die erstellte Version war 5.4.30. Die zu installierenden Module wurden in das /lib/modules/5.4.30Verzeichnis gelegt. Dies führte dazu, dass die Initial-Ram-Disk (initramfs) ohne die richtigen Module für den Kernel erstellt und daher beim Booten nicht geladen wurde.

Um dies zu beheben, sollte nach der Installation der Kernelmodule beim Erstellen des initramfs stattdessen der folgende Befehl verwendet werden:

mkinitfs -o /boot/initramfs-virt 5.4.30

Dieser Befehl schließt die installierten Module für den Kernel 5.4.30 in das initramfs ein, anstatt standardmäßig die uname -rVersion zu verwenden (in diesem Fall 5.4.31-0-virt). Der Kernel kann dann die Module laden -> die Datenträger lesen -> vom erforderlichen Datenträger booten.

verwandte Informationen