Kein Reboot nach Upgrade - VFS: Unable to mount root fs

  • Guten Morgen zusammen,


    nach einem fehlgeschlagenen Update und Upgrade meines V-Servers bekomme ich folgende Meldung beim Boot Vorgang:
    Kernel panic - not syncing: VFS: Unable to mount root fs on unkown-block(0,0)

    Da ich noch Anfänger bin, wollte ich fragen, ob die erfahrenen User mir evtl. eine Herangehensweise zur Lösung und Analyse des Problems schildern könnten?

    Leider existiert zur Zeit kein Backup des Systems, was aber in Zukunft eingerichtet werden soll! Ich habe hier schon gelesen, dass einige User Borg für das Backup empfehlen...


    Mfg

    Marco

  • Schritt 1: Informationen bzgl. Distribution, Version, Ablauf (Kommandozeileneingaben) sind immer hilfreich. Wurde ein neuer Kernel installiert? In diesem Fall verbleibt der alte normalerweise zunächst auf der Platte, d.h. im Bootmenü besteht dann die Möglichkeit, zwischen mehreren Kerneln zu wählen.


    Schritt 2: Wenn gar nichts mehr geht, empfiehlt sich die Nutzung einer "Live-CD" der gewählten Distribution, deren Abbild man selbst hochladen kann (Siehe SCP >> Medien > DVD Laufwerk > Zugangsdaten zum FTP Server (und danach: Eigene DVDs)). Diese sollte immer booten und einen Zugriff auf die virtuelle Festplatte des Servers erlauben. (Netcup bietet zwar ein "Rettungssystem", aber ich selbst würde dieses für die Wiederbelebung nur eingeschränkt und nur als Notlösung empfehlen. Das Netcup-Wiki sollte diesbezüglich weiterhelfen.)

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE/edit?usp=sharing

  • Kann das initramfs aber auch das Dateisystem selbst sein. Ich tippe eher auf Initramfs.

    Hier hilft es eine LiveCD der Distribution zu booten.


    Dann mountest du alle Partitionen - wenn das klappt ist das kein Problem mit dem Dateisystem - das sind gute Nachrichten.

    Prinzipielles Vorgehen: angenommen /dev/sda1 ist deine Bootpartition, /dev/sda2 ist deine Root Partition, sofern der Bootloader extra liegt.

    Stellt sich nur noch die Frage, ob du LVM eingerichtet hast, oder nicht.


    Ohne LVM:


    Code
    mount /dev/sda2 /mnt/
    mount /dev/sda1 /mnt/boot #diese Zeile nur, wenn du eine Bootpartition hast.
    
    #Infos über deine Partitionen bekommst du mit dem Kommando lsblk oder blkid


    Mit LVM:

    Code
    vgscan
    vgchange -ay
    lvs #hier werden dir deine LVM Partitionen angezeigt. Name ist hier wichtig
    mount /dev/mapper/name-der-root-lvm-parition /mnt
    mount /dev/sda1 /mnt/boot

    Die Ausgabe von lvs kannst du auch posten, wenn du nicht weiter kommst.


    Alles ohne Fehler durchgelaufen? Dann geht es weiter:

    Code
    mount -t proc /proc /mnt/proc/
    mount --rbind /sys /mnt/sys/
    mount --rbind /dev /mnt/dev/
    chroot /mnt/ /bin/bash
    
    #Jetzt bist du in deinem Betriebssystem und kannst repariern. Die Kommandos unterscheiden sich von Distribution zu Distribution - hier hilft es, wenn du deine Distri googlest mit dem Term "initramfs erstellen"
    #Gängige Befehle sind hier: mkinitramfs oder mkinitcpio oder update-initramfs - gerne mit dem Parameter alle initramfs wiederherszustellen. Danach geht es mit update-grub weiter. Jetzt kannst du neu starten.


    Wenn dabei Fehler auftreten, kannst du sie gerne posten - inkl. bei welchen Schritt sie auftreten.

    Da du noch keine Backups eingerichtet hast, kannst du die Snapshots von Netcup nutzen, um zumindest einen "Ooops Button" zu haben.

  • @m_uberall

    Vielen Dank für die Hinweise!


    Zu 1:

    Es handelt sich hier um Ubuntu v20.04 und ich habe ein apt update und danach upgrade durchgeführt. Leider ist zwischenzeitlich die SSH Session

    abgelaufen und nach dem Reconnect war der Process blockiert.

    Ein Kernel wurde nicht installiert, dementsprechend erscheint auch keine Auswahl eines anderen Kernels.


    Zu 2:

    Ich bin gerade dabei das Ubuntu v20.04 Server Image herunter zu laden und werde dann dieses wie beschrieben einbinden.

    (Hab kein explizites Live-CD Image gefunden, aber gelesen, dass die "normalen" Images auch dazu verwendet werden können)


    H6G

    Dir auch danke für die Anleitung. Ich werde mich zurückmelden, wenn ich erste Ergebnisse habe.

  • Es handelt sich hier um Ubuntu v20.04 und ich habe ein apt update und danach upgrade durchgeführt. Leider ist zwischenzeitlich die SSH Session

    abgelaufen und nach dem Reconnect war der Process blockiert.

    Netcup dürfte das ISO Image für Ubuntu 20.04 bereits haben - das kannst du im SCP einfach unter DVD auswählen.

  • Aus dem Grund mache ich alle Root-Arbeiten in einem Screen (https://wiki.ubuntuusers.de/Screen) und nie direkt in der von SSH geöffneten Sitzung.

  • Es handelt sich hier um Ubuntu v20.04 und ich habe ein apt update und danach upgrade durchgeführt. Leider ist zwischenzeitlich die SSH Session

    abgelaufen und nach dem Reconnect war der Process blockiert.

    Ein Kernel wurde nicht installiert, dementsprechend erscheint auch keine Auswahl eines anderen Kernels.

    Aber eventuell ein Modul. Wie H6G schon angedeutet hat, klingt das nach einem korrumpierten initramfs. Man kann derart beschädigte Systeme mit einem Notfallsystem booten, das Filesystem und ein paar Special Devices gechrootet mounten und update-initramfs -k all ausführen. Anschließend ist ein update-grub sinnvoll. Dann sollte wieder alles passen. Zahlreiche Anleitungen dazu findest Du bestimmt über eine Suche.

  • @H6G

    Die von netcup zur Verfügung gestellten Images beinhalten leider keine Desktop Variante, deswegen habe ich diese heruntergeladen und als DVD eingebunden.

    Nach dem reboot konnte ich die Try Ubuntu Funktion auswählen und es wurde der Desktop geladen. Hier habe ich nun ein Terminal aufgemacht und den root User aktiviert. Danach habe ich deine mount Befehle ausgeführt (hierbei musste ich jedoch die jeweiligen mnt Unterverzeichnisse erst anlegen...)

    Nun komme ich jedoch bei dem chroot Befehl nicht weiter. Es wird folgende Fehlermeldung ausgegeben
    :

    chroot: failed to run command '/bin/bash': No such file or directory.

    Kannst du mir sagen, was ich hier noch nicht richtig gemacht habe?


    Danke.

  • Nanu, was hat er sich denn da für eine Partitionstabelle generiert?


    Du hast: kein LVM.

    Durch die interessante Paritionierung muss ich eingangs einmal korrigieren:


    Code
    mount /dev/sda3 /mnt/
    mount /dev/sda2 /mnt/boot


    Von da an geht es weiter mit dem untersten Code Block und dann einmal der update-initramfs -k all Befehl von eripek - da wir da jetzt wissen, dass du Ubuntu verwendest, und dann einmal update-grub

    Viel Erfolg.

  • H6G

    Vielen Dank für die Korrektur.
    Ich habe jetzt alles wie beschrieben durchgeführt und keine Fehlermeldung bekommen.

    Nach dem Reboot kommt jedoch noch dieselbe Fehlermeldung wie vorher.
    Ist es möglich die erforderlichen Dateien nochmal manuel einzusehen, um zu prüfen, ob alles korrekt ist?

  • Ist es möglich die erforderlichen Dateien nochmal manuel einzusehen, um zu prüfen, ob alles korrekt ist?

    dann zeig mir mal bitte den Inhalt von /mnt/etc/fstab und /mnt/boot/grub/grub.cfg nachdem du die mount Befehle ausgeführt hast - bzw. lade diese Dateien hoch.

  • Kann es sein, dass Du irgendwann im SCP umgestellt hast von virtio auf SCSI?

    Es sollte wegen der UUIDs eigentlich nichts ausmachen, außer, im initramfs ist noch der alte Verweis auf /dev/vdaX drinnen oder Grub erkennt die Platte nicht.

  • Der Installer würde SCSI Platten nie als /dev/vda anzeigen.


    Welches Produkt hast du bei Netcup gebucht und wann hast du das letzte mal ein Update & Neustart gemacht?

    Habe den VPS 500 G8.
    Letztes Update war ein Tag bevor ich den Post oben eröffnet habe!
    Wie beschrieben, ist wurde die Session ja geschlossen während Upgrade Prozesses.

  • Letztes Update war ein Tag bevor ich den Post oben eröffnet habe!
    Wie beschrieben, ist wurde die Session ja geschlossen während Upgrade Prozesses.

    Und davor?



    Habe den VPS 500 G8.

    Okay, dann können wir eine Migration eines älteren Tarifs (Generation 6) schonmal aussschließen.

    An diesem Punkt würde ich mich eigentlich immer in der grub shell oder initramfs shell rumhangeln und gucken, wo es klemmt und was verfügbar ist.


    Die initramfs Config wäre noch interessant, aber bei Ubuntu weiß ich nicht, wie da vorzugehen ist.


    Dritte Variante: du nimmst dir deine privaten Daten, sicherst sie einmal weg und installierst das Betriebssystem neu.

    Ich gucke mal, was die anderen Mithelfer so sagen.