Frage von helpster2698, 56

Linux fährt nicht mehr hoch (Fehlermeldung)?

Hey,
seit einigen Tagen fährt Linux Ubuntu nicht mehr hoch. Der Laptop startet normal, zeigt das grüne Mint-Logo und dann kommt eine Fehlermeldung (siehe Foto!). Ich verstehe nicht viel von Programmierung - könnte mir jemand in verständlichen Worten erklären, was vorliegt?

Ich wäre Euch sehr, sehr dankbar!
Danke schonmal :)

Expertenantwort
von LemyDanger57, Community-Experte für Computer, Linux, Ubuntu, 31

Was denn nun, Ubuntu oder Mint?

Dein Ubuntu/Mint bootet schon, allerdings findet es die root-partition nicht, und bootet daher in die shell.

Was hattest du denn zuletzt gemacht, bevor das Problem auftrat?

Schau mal, ob Dir das hier hilft: https://forum.ubuntuusers.de/topic/gave-up-waiting-for-root-device/

insbesondere die Antwort von Kringel könnte helfen.

Antwort
von NoHumanBeing, 29

Er findet das Root-Dateisystem nicht.

Woran das liegt, kann ich aus der Ferne kaum sagen. Vllt. kann er nicht auf das Systemlaufwerk zugreifen, die Root-Partition wurde formatiert (dabei ändert sich die UUID) oder er benötigt einen bestimmten Treiber, um auf das Laufwerk zuzugreifen, auf der sie liegt.

Letzteres kann ich mir allerdings eher nicht vorstellen, denn das System sollte ja auf einer ganz normalen SATA-Platte (ob SSD oder HDD ist egal) liegen und nicht auf irgendeinem "exotischen Gerät", das möglicherweise zusätzliche Treiber benötigt.

Antwort
von dan030, 9

Also die gute Nachricht ist, dass Deine Platte zumindest technisch so weit da ist, dass die grub den Kernel hochziehen und die initrd laden konnte.

Jetzt hast Du offenbar das Problem, dass bei Dir die Lokation des "richtigen" Filesystems nicht über den Devicenamen, sondern über die eindeutige Device ID konfiguriert ist. Und da scheint sich irgendwas geändert zu haben.

Hast Du zufällig eine neue Platte eingebaut und eine Lowlevel-Kopie der alten Daten auf die neue Platte vorgenommen? Das könnte ein Grund sein, wie man in diese mißliche Situation kommt.

Ansonsten würde ich mich mal aus der initrd heraus im System umschauen. Der Prompt, den Du da bekommst, ist letztlich ein ("fast") normaler Shellprompt, allerdings in einer minimalisierten Systemumgebung. Du kannst aber Kommandos wie z. B. "ls", "df" usw. machen.

Interessant wäre z. B. mal ein "ls -al /dev", und auch ein "ls -al /dev/disk/by-uuid". Erstgenanntes Kommando sollte Dir zumindest Deine Partitionen zeigen (fangen typischerweise mit "sda" an). Das zweite Kommando sollte Dir hoffentlich einen Symlink auf Deine Root Partition zeigen, und zwar mit exakt der uuid, die auf Deinem Foto aber angemeckert wird. Wenn da eine andere uuid auftaucht, dann ist das Problem gefunden, und es müsste die Konfiguration wieder geradegebogen werden.

Kommentar von Linuxhase ,

@dan030

Interessant wäre z. B. mal ein "ls -al /dev"

Wenn der Computer keine Root-Partition einbinden kann wird der Zugriff auf das Verzeichnis /dev , welches ja normalerweise darin liegt, nicht möglich sein oder?

Das zweite Kommando sollte Dir hoffentlich einen Symlink auf Deine Root Partition zeigen

von einer Live-Version bestimmt ;-)

Linuxhase

Kommentar von dan030 ,

Ich glaube, Du hast den Kontext hier gerade etwas mißverstanden. Du weißt schon, was eine initrd ist, und wie der zweistufige Boot bei modernen Linuxen funktioniert?

Das Linux des Themenerstellers bootet im Prinzip erstmal. D. h. erst kommt der grub, der zieht Kernel plus initrd von der korrekten Platte. Und der Screenshot ist enstanden, nachdem bereits in die initrd reingebootet wurde. Und IN der initrd ist das System dann krepiert.

Es gibt also durchaus ein /dev-Verzeichnis usw., aber eben das in der initrd. Und da kann man halt mal manuell weiterschauen.

Mit der Situation eines Boot von einer Live-CD ist das nur bedingt zu vergleichen.

Expertenantwort
von guenterhalt, Community-Experte für Computer & Linux, 14

so einen Fehler hatte ich noch nicht. Daher kann ich nur vermuten:

der Bootloader grub findet den zu ladenden Kernel und der steht normalerweise auf dem root-Device. Die Ausschrift "waiting for root device" ist also nicht ganz richtig.
Da hier die uuid der root-Partition angezeigt wird, wird die wahrscheinlich der Datei  /etc/fstab entnommen und angezeigt.

Da die UUID beim Formatieren neu generiert wird, könnte die nicht mit der bisherigen identisch sein, auch wenn ein Backup eingespielt wurde.

Versuche dein System mit einer Live-CD zu booten. Bestimme die Partition, auf der z.B. etc zu finden ist. mounte nacheinander die Partitionen

mount /dev/sdXY /mnt

(mit XY a1, a2 , a3 ... b1 , b2 ... )

find /mnt -name etc

Trage das gefundene XY in die Datei /etc/fstab ein

/dev/sdxy  /     ( Rest wie er auch bisher bei UUID=.... /   stand )

Sollte das der Fehler gewesen sein, dann bootet dein System auch wieder richtig.

Später kannst du den neuen Wert von uuid wieder eintragen.

Wie das geht, dann aber erst wenn's so war.

Kommentar von NoHumanBeing ,

Ja, da ist durchaus auch eine Möglichkeit. Gute Idee!

Eine Sache nur ...

der Bootloader grub findet den zu ladenden Kernel und der steht normalerweise auf dem root-Device.

Der Kernel liegt unter "/boot" und das ist bei vielen Distributionen defaultmäßig eine eigene Partition.

Bei mir sieht die Partitionierung beispielsweise wie folgt aus.

  • /dev/sda1 (210 MB) --> /boot/efi
  • /dev/sda2 (524 MB) --> /boot
  • /dev/sda3 (Rest) --> /

Tatsächlich sind da bei mir noch Device-Mapper-Geschichten dazwischen, aber das hat spezielle Gründe. Prinzipiell könnte man auf die auch verzichten.

Kommentar von dan030 ,

Der Tipp, die /etc/fstab zu verändern, wird dem Themenersteller hier nur bedingt weiterhelfen. Denn wenn der Bootvorgang in der initrd stehen bleibt, dann ist die /etc/fstab in der Ramdisk. Wenn er die ändert, ist das zwar schön für den Moment, aber beim nächsten Boot ist das alles wieder weg.

Was eigentlich zu tun wäre: das System anderweitig hochziehen, z. B. mit einer CD, die auch in Bestandssysteme booten kann. Dann initrd neu bauen lassen, anschliessend grub samt neu gebackener initrd auf die Platte schreiben lassen. Nur so bekommt man die /etc/fstab in der initrd wirklich dauerhaft geändert.

Keine passende Antwort gefunden?

Fragen Sie die Community