• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Nach Kernelupdate bootet System nicht mehr

Cobiweb

Member
Hallo,

Ich habe da eine verzwickte Sache.
Nach einem "zypper patch" mit Kernelupdate startet mein System Opensuse 12.2 nicht mehr. Zunächst kam immer Kernelpanic.
Also per chroot ins System eingeklinkt kernel-desktop...rpm nochmals installiert. Da kam eine Fehlermeldung, wie genau die lautete habe ich vergessen. Aber sie klang gleich/ähnlich der, die ich bekomme, wenn ich mkinitrd ausführe (s.u.).
Dann mit yast den Bootloader noch mal neu installiert, Rückmeldung dass irgendwas nicht geklappt hat.

Jetzt bekomme ich nur noch eine Grub-Konsole.

Also wieder per chroot ins defekte System eingeklinkt und ausgeführt sowie erhalten:
Code:
Rescue:/> grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub.cfg ...
Found theme: /boot/grub2/themes/openSUSE/themes.txt
Found linux image: /boot/vmlinuz-3.4.47-2.38-desktop
ERROR: opening path /mounts/instsys/sys/block
ERROR: failed to discover devices
ERROR: opening path /mounts/instsys/sys/block
ERROR: failed to discover devices
ERROR: opening path /mounts/instsys/sys/block
ERROR: failed to discover devices
ERROR: opening path /mounts/instsys/sys/block
ERROR: failed to discover devices
ERROR: opening path /mounts/instsys/sys/block
ERROR: failed to discover devices
   No volume groups found
done

Also dann anderer Versuch:
Code:
Rescue:/> mkinitrd

Kernel image:   /boot/vmlinuz-3.4.47-2.38-desktop
Initrd image:    /boot/initrd-3.4.47-2.38-desktop
KMS drivers:     i915
cp: cannot stat ?/usr/lib/udev/rules.d/64-btrfs.rules?: No such file or directory
Script /lib/mkinitrd/setup/11-btrfs.sh failed!
There was an error generating the initrd (1)

Es ist zum Mäuse melken, ein Kernel lässt sich nicht neu installieren.
Bootloader folglich auch nicht.
Die "btrfsprogs" sind installiert, auch wenn ich noch kein btrfs nutze.
Aber vielleicht hilft das weiter:
Code:
Rescue:/> updatedb
Rescue:/> locate 11-btrfs
/lib/mkinitrd/setup/11-btrfs.sh
Rescue:/> locate 64-btrfs
Also /usr/lib/udev/rules.d/64-btrfs.rules existiert nicht, nicht mal der Pfad /usr/lib/udev/

Und hier bin ich mit meinem Latein am Ende.

Hat vielleicht jemand eine Idee, was ich außer System platt machen und neu installieren (so kurz vor 13.1 hab ich da nicht wirklich Bock drauf) noch versuchen könnte?
 

josef-wien

Ultimate Guru
Der Aufruf der chroot-Umgebung scheint unvollständig vorgenommen worden zu sein, schau Dir z. B. einmal http://www.linux-club.de/viewtopic.php?f=41&t=113071&p=708726&p708726#p708726 an.

Außerdem scheint hier irgendeine Mischung aus 12.2 und 12.3 vorzuliegen. Bei 12.2 ist z. B. udev noch unter /lib, bei 12.3 dagegen unter /usr/lib zu finden.

P. S. Aussagen wie
Cobiweb schrieb:
eine Fehlermeldung, wie genau die lautete habe ich vergessen
Cobiweb schrieb:
sie klang gleich/ähnlich
nützen niemandem.
 
OP
Cobiweb

Cobiweb

Member
Danke josef-wien, der Hinweis auf den 12.2 / 12.3 Kuddelmuddel könnte die rechte Spur sein.
Boot-CD ist eine opensuse 12.3 (die 12.2 habe ich nicht mehr).
Jetzt habe ich das ganze noch mal von Anfang an durch exerziert und bekomme leider immer noch die gleichen Fehlermeldungen. Hier noch mal der Vollständikeit halber:
Code:
Rescue:/> mkdir /mnt/suse
Rescue:/> mkdir /mnt/usbstick
Rescue:/> mount /dev/sda2 /mnt/suse
Rescue:/> mount --bind /dev /mnt/suse/dev
Rescue:/> chroot /mnt/suse
Rescue:/> mount /proc
Rescue:/> mount /sys
Rescue:/> mount /dev/sdb1 /mnt/usbstick
Rescue:/> rpm -ihv /mnt/usbstick/kernel-desktop-3.4.47-2.38.1.i686.rpm
Preparing...
   package kernel-desktop-3.4.47-2.38.1.i686 is already installed
Rescue:/> /sbin/mkinitrd -k /boot/vmlinux--3.4.47-2.38-desktop.gz -i /boot/initrd--3.4.47-2.38-desktop

Kernel image:   /boot/vmlinuz-3.4.47-2.38-desktop
Initrd image:    /boot/initrd-3.4.47-2.38-desktop
KMS drivers:     i915
cp: cannot stat ?/usr/lib/udev/rules.d/64-btrfs.rules?: No such file or directory
Script /lib/mkinitrd/setup/11-btrfs.sh failed!
There was an error generating the initrd (1)

Gleichens negatives Ergebnis, auch wenn ich bei mkinitrd alle Pfade mit angebe.
Scheinbar schleppe ich da wirklich irgendwelche Pfade aus der Boot-CD Umgebung mit.
Nur wie werde ich die wieder los?
Komme hier nicht mehr weiter.
 

josef-wien

Ultimate Guru
Hast Du vielleicht bei Deinem 12.2 eine dafür nicht passende Version von mkinitrd installiert? Bei
Code:
< /mnt/suse/lib/mkinitrd/scripts/setup-udev.sh grep usr
(bzw. in der chroot-Umgebung ohne /mnt/suse) sollte nichts herauskommen.
 
OP
Cobiweb

Cobiweb

Member
Wie zu erwarten, solange ich noch auf dem Live-System (12.3) bin, bekomme ich bei komplettem Pfad keine Ausgabe.
nach dem unter Kürzung des Pfades auf "< /lib/mkinitrd/scripts/setup-udev.sh grep usr" bekomme ich auf dem Live-System eine Ausgabe, nach dem chroot nicht mehr.

Installiert ist die mkinitrd in Version 2.7.1-62.14.1, aus den offiziellen Update-Repos (http://download.opensuse.org/update/12.2/). Verfügbar ist noch die Version 2.7.1-62.9.1, die ich bei der Gelegenheit doch auch gleich mal ausprobiert habe. Jedoch mit dem gleichen Ergebnis.

Scheinbar hatte ein einst in unvollständiger chroot Umgebung abgesetztes mkinitrd irgendwo neue Pfadangaben hinterlegt.

Gibt es vielleicht für zypper einen Parameter der dem "apt-get purge" entspricht?
Dann könnte ich die komplette Konfiguration für mkinitrd runter schmeißen und es neu installieren.
 
OP
Cobiweb

Cobiweb

Member
Es gibt etwas Neues zu berichten.

Ich habe mal bei den btrfsprogs ein Paketdowngrade gemacht und jetzt läuft mkinitrd immerhin schon mal ein Stück weiter. Die Fehlermeldung mit den btrfs-Verweisen kommt nicht mehr, leider wird jetzt ein Kernel-Modul Namens hid_generic vermisst.

Es sieht ganz so aus, als wären bei meinem letzten Update irgendwelche Abhängigkeiten, oder Dateikonflikte entstanden, die weder zypper noch Yast bemerken. Denn "Check Dependencies Now" und "Verify System Now" unter yast melden mir, es sei alles OK. So auch ein "zypper verify" meldet "Dependencies of all installed packages are satisfied."

Vielleicht gehört meine Frage somit in ein anderes Unterforum?

Grub habe ich noch immer nicht reparieren können, aber ich konnte das bisweilen defekte System nun mittels PLOP booten.

Da ich nun wieder auf das Netzwerk zugreifen kann, habe ich die Paketquelle (http://download.opensuse.org/repositories_filesysems/openSUSE_12.2/) aus der die wohl mitverantwortliche btrfsprogs stammte komplett deaktivert, nachdem ich alle darüber installierten Pakete auf andere Quellen umgestellt, oder entfernt hatte.
Leider noch immer kein Erfolg.

Also habe ich nun von Grub2 auf Grub umgestellt.
Der schafft es das System zu booten.
Das mag zwar keine perfekte Lösung sein, aber es wird hoffentlich halten, bis die 13.1 ausgereift ist, dann werde ich an einem verregneten Tag mal das System komplett neu aufsetzen.
Mein Anliegen hier kann somit als gelöst angesehen werden.
Vielen Dank an dieser stelle noch mal an die hilfreichen Beiträge von josef-wien

Cu
 
Oben