Neustart hängt zu 100% - möglicherweise in Mountall

8

UPDATE: Es scheint, dass mountall in der Routine emit_event () hängt, die aufgerufen wird, nachdem / erneut bereitgestellt wurde, um ein entsprechendes Ereignis auszugeben. In emit_event ruft es ply_boot_client_flush () auf, erstellt dann das env-Array, ruft upstart_emit_event () auf und dann dbus_pending_call_block (). Und da hängt es. Irgendwelche Ideen, warum dbus_pending_call_block auf unbestimmte Zeit hängen bleiben würde? Gebrochener Plymouth? dbus? Emporkömmling? Irgendwelche Vorschläge für Korrekturen oder weitere Diagnosen?

Neustart meines Ubuntu 10.04 LTS, 64-Bit-AMD-Computers hängt zu 100%. Die Zugriffsanzeige für das Laufwerk ist aus, aber die Tasten alt-sysreq funktionieren. Die Hardware ist ein Lenovo W700ds Laptop. Jetzt entschuldige ich mich im Voraus, da ich nur sehr begrenzte Informationen über das System habe, das mir zur Verfügung steht, und darüber, was ich damit machen kann (weil es nicht bootet). Ich kann von der 10.04-CD booten - mit einer Rettungsdiskette. Ich kann meine Partitionen überprüfen, mounten, lesen und schreiben - sie sind in Ordnung. Ich habe bereits versucht, meinen Swap mit mkswap neu zu formatieren. Ich habe 4 ext4-Partitionen auf meinem System: sda1 ist /, sda2 ist / usr, sda3 ist / home und eine vierte, die ich für die Datenspeicherung verwende / sdb1 (ist die gesamte Festplatte, wird am von mir erstellten Mountpoint / hdb bereitgestellt). . Es gibt auch / sda4, was Swap ist. Im Moment schreibe ich dies über einen Browser, den ich in der 'Rettungssitzung' von 10 geöffnet habe.

Ich würde mich sehr über Vorschläge / Kommentare darüber freuen, was ich tun könnte, um zu diagnostizieren, was hängt, warum und was ich tun könnte, um es zu beheben. Ich habe bereits eine Websuche durchgeführt, aber nichts Neues in dieser Richtung gefunden (einige 1-1,5 Jahre alte Fehlerberichte mit ähnlichen Symptomen, aber ihre Korrekturen funktionierten nicht).

Ich habe 10.04 um den ersten Juli auf einer neuen Festplatte installiert und dann mit aptitude alles auf den neuesten Stand gebracht. Seitdem habe ich LOTS installiertvon Paketen (ich werde das dpkg-Protokoll unten anhängen). Mit sda von 750 GB (/ 20 GB, / usr 80 GB) hatte ich viel Platz, um Pakete zu installieren, die ich "eines Tages verwenden könnte". Ich frage mich, ob eines dieser Pakete, die ich installiert habe, mein System durcheinander gebracht hat. Ich habe Kernel 2.6.32-32-generic installiert und neu gestartet, aber seitdem viel mehr Pakete installiert. Ich starte diese Maschinen so selten wie möglich neu - ich ziehe es vor, sie im Ruhezustand zu halten, während ich von Ort zu Ort gehe. In letzter Zeit bemerkte ich jedoch ein seltsames Verhalten im Zusammenhang mit dem Ruhezustand: Wenn das System den Ruhezustand deaktiviert, wird der Bildschirmschoner des Gnoms mit dem zum Entsperren erforderlichen Kennwort aufgerufen - nun, mein Kennwort wird nicht erkannt! Ich musste Alt-F1, mich als Root anmelden und den Bildschirmschoner beenden. Dann wäre alles in Ordnung, oder so schien es. Ebenfalls, Nach dem Ruhezustand sah ich häufig für kurze Zeit einen bunten Müll auf dem Bildschirm. Es würde verschwinden, also habe ich nicht versucht, die Ursache zu finden. Ein weiterer möglicherweise relevanter Punkt ist, dass ich bei der Installation von 10.04 "nomodeset" verwenden musste. Wenn ich die Rettungshülle von derselben CD aufrufe und nur nomodeset verwende, hängt sie möglicherweise mit einer blinkenden NumLock-LED oder einer Feststelltaste ( Absturz?), aber wenn ich auch "noapic nolapic acpi = off" verwende, dann kommt es ok. Ich habe diese Optionen mit meinem System ausprobiert, um festzustellen, ob sie das Problem des Boot-Hangs beheben - dies ist jedoch nicht der Fall. Wenn ich nur Nomodeset verwende, hängt es irgendwann mit einer blinkenden NumLock-LED oder Caps Lock-LED (Absturz?), aber wenn ich auch "noapic nolapic acpi = off" verwende, ist es in Ordnung. Ich habe diese Optionen mit meinem System ausprobiert, um festzustellen, ob sie das Problem des Boot-Hangs beheben - dies ist jedoch nicht der Fall. Wenn ich nur Nomodeset verwende, hängt es irgendwann mit einer blinkenden NumLock-LED oder Caps Lock-LED (Absturz?), aber wenn ich auch "noapic nolapic acpi = off" verwende, ist es in Ordnung. Ich habe diese Optionen mit meinem System ausprobiert, um festzustellen, ob sie das Problem des Boot-Hangs beheben - dies ist jedoch nicht der Fall.

Dies ist eine Maschine, die ich sowohl für die Arbeit als auch für fast alles andere verwende. Daher ist es oberste Priorität , sie wieder zum Booten zu bringen . Ich bin intakt, was gut ist. Aber ich bin fast am Ende, wenn ich versuche, diese Ursache des hängenden Stiefels zu diagnostizieren (viel weniger zu beheben).

Ich starte das System und es startet das Mountall-Konfigurationsskript in /etc/init/mountall.conf. Ich sehe die Ausgabe von mountall mit fsck - 4 Zeilen, die sagen: fsck von util-linux-ng 2.17.2 (das ist eine pro ext4-Partition). Dann gibt es 4 weitere Zeilen von fsck, die den Benutzer darüber informieren, dass die Partitionen als "sauber" befunden wurden. Und das ist es - alles hört einfach auf. Die Laufwerksaktivitäts-LED erlischt. Ich kann die alt-sysreq-Schlüssel verwenden, aber sie haben sich bisher nicht als nützlich erwiesen. Ich habe einen Fehlerbericht gesehen, in dem ein Benutzer alt-sysreq-i verwendet hat, um den Prozess abzubrechen, und der ihn in eine Shell fallen ließ. Für mich heißt es, dass es Prozesse getötet hat (udev und udev-bridge und plymouth, sagt, dass udev wieder auftaucht usw.), aber ich bekomme keine Shell.

Ich habe versucht festzustellen, was genau hängt. Zu diesem Zweck habe ich an /etc/init/mountall.conf herumgebastelt. Ich habe Echozeilen hinzugefügt und die Option -v (ausführlich) zur Ausführung von mountall hinzugefügt. Nach dem Ausführen von mountall werden keine Echolinien angezeigt. Dies kann bedeuten, dass mountall hängt. Oder es wird möglicherweise nicht die letzte Ausgabe angezeigt. In diesem Fall wurde mountall möglicherweise beendet und es hängt möglicherweise etwas anderes. Ich stelle fest, dass alt-sysreq-i nicht sagt, dass mountall getötet wird. Ich habe versucht einzugrenzen, woran das System hängen könnte, indem ich sda3 (/ home), swap und sdb1 (/ hdb) von fstab auskommentiert habe, aber es hängt immer noch.

Es gibt eine Menge, die ich selbst tun kann, aber ich fühle mich hier über meinem Kopf. Ich möchte zum Beispiel den Quellcode für mountall erhalten, gedruckte Flags hinzufügen, neu kompilieren und auf mein System kleben - um A) einzugrenzen, an dem mountall tatsächlich hängt, und B) woran es hängt. ABER ich kann meinen Computer nicht mit einer Shell booten, von der aus kompiliert werden kann - und die Rettungsdatenträgerumgebung ist nur 2.6.32-28-generisch # 55 -, sodass sie nicht zu meinem System passt. Ich möchte Pakete entfernen oder neu installieren, aber auch hier kann ich meinen Computer nicht starten und dies tun.

(Meine dpkg-Protokolldatei hat mehrere MB, daher werde ich sie in einem folgenden Dialogfeld anhängen.)

Danke, Greg

Greg
quelle
Nun, wenn Sie USB-Stick oder Live-CD booten können, mounten Sie dort Festplatten, die Sie in Ihren Computer chrooten und Pakete entfernen können. Andererseits haben Sie gesagt, dass dies Ihr Arbeitscomputer ist, der oberste Priorität hat. Vergleichen Sie also die Zeit, die Sie mit der Suche verbringen, was mit der Zeit der Neuinstallation nicht stimmt (Sie haben Ihr Zuhause auf einer separaten Partition).
Denwerko
Ich würde @denwerko wiederholen - es wird wahrscheinlich nur ein paar Stunden dauern, bis Sie eine Neuinstallation durchführen und dann die zusätzliche Software installieren, die Sie benötigen. Stecken Sie einen USB-Stick / ein externes USB-Laufwerk ein und kopieren Sie den Inhalt Ihres / Ihres Hauses darauf. Sie können es anschließend wiederherstellen. Was "Stabilität" betrifft - es kommt darauf an - welche Pakete haben Sie installiert und von wo? Das Installieren von Paketen aus PPAs und das Kompilieren von Code verursachen wahrscheinlich mehr Instabilität als das Installieren von Standardpaketen aus dem Software Center / Synaptic Package Manager.
Fossfreiheit
@greg - Auf welcher Hardware mussten zusätzliche Treiber installiert werden - z. B. Netzwerkkarte / Grafikkarte? Haben Sie versucht, Ihren Desktop durch Deaktivieren / Herausziehen aller Karten zu vereinfachen - lassen Sie nur die Grundlagen wie integrierte Grafik und kabelgebundene Tastatur übrig?
Fossfreiheit
@ Greg, wenn dies gelöst ist, warum wird ihre Antwort nicht akzeptiert? Bitte befolgen Sie die allgemeinen Regeln für AskUbuntu und fügen Sie Ihre Antwort zu den Antworten hinzu und akzeptieren Sie sie.
Rinzwind

Antworten:

1

Denwerko: Ich habe meiner Maschine nichts angetan, was zu diesem Ergebnis hätte führen sollen. Unter Ubuntu 9.10 war es ziemlich stabil - so etwas war noch nie passiert. Das ganze Basteln mit der Quelle, das Neukompilieren von Dingen - alles war User-Space-Code. Ich habe überhaupt nicht am Betriebssystem herumgebastelt. Ich habe auch keinen OS-Space-Code außerhalb der Standardkanäle installiert (aptitude / synaptic package manager, Deb-Pakete, die über diese Tools erhalten wurden). Greg gestern

Ich habe jedoch den Quellcode für mountall 2.15.3 erhalten und ihn nach 5 Installationen in der Rettungsumgebung kompiliert (libnih-dev, libnihdbus-dev, lindbus-1-dev, linudev-dev, libplymouth-dev). . Ich habe Debugging-Drucke über nih_info () -Aufrufe in den Code eingefügt und die Spawns erstellt, die die fsck-Blockierung ausführen, anstatt sie nicht zu blockieren. Ich arbeite an der Theorie, dass Mountall irgendwo abstürzt (oder nih oder dbus oder plymouth ...). Ich scheine nicht bei jedem Lauf die Ausgabe an die gleiche Stelle im Code zu bekommen, aber es scheint irgendwann nach dem erneuten Bereitstellen von / dev / sda1 zu / - in der Routine mount () anzuhalten. Greg gestern

Ich habe auch dpkg -r von Paketen über chroot gemacht, wie Sie vorgeschlagen haben, und das scheint zu funktionieren (mit Ausnahme eines Deinstallationsskripts, das etwas mit / proc tun wollte). Ich habe Wine deinstalliert und die benötigten 32-Bit-Kompatibilitätspakete (lib32nss, ia32lib, lib32v4l usw.) und mehrere ibus-Pakete, die nicht in der Rettungsumgebung installiert sind (einige ibus-Pakete sind, und ich habe darauf geachtet, diese nicht zu entfernen) entfernt Plasma-Widget-Kimpanel-Backend-ibus, ibus-qt4, ibus-qt1. Nichts davon hatte Auswirkungen auf das Problem, daher habe ich weitere Pakete entfernt, die ich jetzt nicht benötige (wx-Widget- und JDK-Pakete usw.) - kein Effekt

UPDATE: Es scheint, dass mountall in der Routine emit_event () hängt, die aufgerufen wird, nachdem / erneut bereitgestellt wurde, um ein Ereignis zu emittieren. In emit_event ruft es ply_boot_client_flush () auf, erstellt dann das env-Array, ruft upstart_emit_event () auf und dann dbus_pending_call_block (). Und da hängt es. Irgendwelche Ideen, warum dbus_pending_call_block auf unbestimmte Zeit hängen bleiben würde? Gebrochener Plymouth? dbus? Emporkömmling? Irgendwelche Vorschläge für Korrekturen oder weitere Diagnosen?

LÖSUNG Es scheint also, dass ich Cloud-Init und Cloud-Utils installiert habe, weil ich eines Tages vielleicht damit spielen möchte. Will stellt Cloud-Init-Schrauben mit der ureadahead-Konfiguration heraus und wird gestartet, wenn das dbus-Ereignis 'mount /' auftritt, was dazu führte, dass mein System hängen blieb, sobald es diese dbus-Nachricht sendete, die nach dem erneuten Bereitstellen von / von ro nach erfolgt r / w. Ich habe Cloud-Init und Cloud-Utils deinstalliert und jetzt scheint alles in Ordnung zu sein. Außer ich bin müde und habe 24 Stunden meines Lebens verloren: \

Greg
quelle