it-swarm.com.de

Neustart hängt 100% - möglicherweise in mountall

UPDATE: Es scheint, dass mountall in der Routine emit_event () hängt, die nach/remounted aufgerufen wird, um ein entsprechendes Ereignis auszulösen. Innerhalb von 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 würde? Plymouth gebrochen? dbus? Emporkömmling? Irgendwelche Vorschläge für Korrekturen oder weitere Diagnosen?

Beim Neustart meines Ubuntu 10.04 LTS hängt sich der 64-Bit-AMD-Rechner zu 100% auf. Die Laufwerkszugriffsanzeige ist aus, aber die Alt-Sysreq-Tasten funktionieren. Die Hardware ist ein Lenovo W700ds Laptop. Jetzt entschuldige ich mich im Voraus, weil ich nur sehr wenige Informationen über das verfügbare System habe und darüber, was ich damit machen kann (weil es nicht booten wird). Ich kann von der 10.04 CD booten - mit ihr wie mit einer Rettungsdiskette. Ich kann meine Partitionen überprüfen, mounten und 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, die am von mir erstellten Mountpoint/hdb gemountet wird) . Es gibt auch/sda4, das Swap ist. Im Moment schreibe ich dies in einem Browser, den ich in der 'Rettungssitzung' von der 10.04 LTS-Installations-CD geöffnet habe.

Ich würde SEHR dankbar sein für Vorschläge/Kommentare, mit denen ich diagnostizieren kann, was hängt, warum und was ich tun kann, um das Problem zu beheben. Ich habe bereits eine Websuche durchgeführt, aber in dieser Hinsicht nichts Neues gefunden (einige 1-1,5 Jahre alte Fehlerberichte mit ähnlichen Symptomen, aber ihre Korrekturen haben nicht funktioniert).

Ich habe 10.04 um den 1. Juli auf einer neuen Festplatte installiert und dann mit aptitude alles auf den neuesten Stand gebracht. Seitdem habe ich VIELE Pakete installiert (ich werde das dpkg-Protokoll unten anhängen). Mit sda 750 GB (/ 20 GB,/usr 80 GB) hatte ich viel Platz, um Pakete zu installieren, die ich vielleicht irgendwann verwenden würde. Ich frage mich, ob eines dieser Pakete, die ich installiert habe, mein System kaputt gemacht hat. Ich habe Kernel 2.6.32-32-generic installiert und neu gestartet, aber seitdem viele weitere Pakete installiert. Ich starte diese Maschinen so selten wie möglich neu - bevorzuge den Ruhezustand, während ich von Ort zu Ort gehe. In letzter Zeit bemerkte ich jedoch ein seltsames Verhalten im Zusammenhang mit der Deaktivierung des Ruhezustands: Wenn das System den Ruhezustand aufhebt, wird der Gnome-Bildschirmschoner mit dem zum Entsperren erforderlichen Kennwort angezeigt. Nun, mein Kennwort wird nicht erkannt. Ich musste ALT-F1 drücken, mich als root anmelden und den Bildschirmschoner beenden. Dann wäre alles in Ordnung, oder so schien es. Außerdem sah ich nach dem Winterschlaf häufig für kurze Zeit bunten Müll auf dem Bildschirm blinken. Es würde verschwinden, also habe ich nicht versucht, die Ursache zu finden. Ein weiterer möglicherweise relevanter Punkt ist, dass ich in der Installation von 10.04 "nomodeset" verwenden musste. Wenn ich die Rettungsshell von derselben CD aus verwende, hängt sie, wenn ich nur nomodeset verwende, irgendwann mit einer blinkenden NumLock-LED oder Caps Lock-LED ( Absturz?), aber wenn ich auch "noapic nolapic acpi = off" benutze, kommt es in Ordnung. Ich habe diese Optionen mit meinem System ausprobiert, um festzustellen, ob sie das Problem des Boot-Hangs beheben - nicht.

Dies ist eine Maschine, die ich sowohl für die Arbeit als auch für fast alles andere benutze. Das erneute Booten ist daher eine Priorität von TOP ./home ist intakt, was gut ist. Aber ich bin im Begriff, mit meinem Verstand zu versuchen, diese Ursache für den hängengebliebenen Stiefel zu diagnostizieren (und noch 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 from 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 war's - 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 abgelegt hat. Für mich heißt es, dass es Prozesse beendet hat (udev und udev-bridge und plymouth, sagt, dass es udev wieder aufbaut, usw.), aber ich bekomme keine Shell.

Ich habe versucht festzustellen, was genau hängt. Zu diesem Zweck habe ich mit /etc/init/mountall.conf gebastelt. Ich habe Echozeilen hinzugefügt und die Option -v (verbose) zum exec von mountall hinzugefügt. Es werden keine Echozeilen nach der Ausführung von mountall angezeigt. Dies kann bedeuten, dass mountall hängt. Möglicherweise wird auch 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 auskommentierte, aber es hängt immer noch.

Es gibt eine Menge, die ich selbst tun kann, aber ich fühle mich hier überfordert. 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, ob mountall tatsächlich hängt, und B) woran es hängt. ABER ich kann meinen Computer nicht mit einer Shell booten, von der aus er kompiliert werden kann - und die Rettungsdiskettenumgebung ist nur 2.6.32-28-generisch # 55 -, sodass sie nicht mit meinem System übereinstimmt. Ich möchte Pakete entfernen oder neu installieren, aber ich kann meinen Computer nicht booten und dies tun.

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

Danke, Greg

8
Greg

Denwerko: Ich habe meiner Maschine nichts angetan, was zu diesem Ergebnis hätte führen sollen. Es war unter Ubuntu 9.10 ziemlich stabil - so etwas ist noch nie passiert. Das ganze Basteln mit dem Quellcode, 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 packages, die mit diesen Tools erhalten wurden). Greg gestern

Ich habe jedoch den Quellcode für mountall 2.15.3 erhalten und ihn in der Rescue-Umgebung kompilieren lassen, nachdem ich ihn 5 Mal installiert habe (libnih-dev, libnihdbus-dev, lindbus-1-dev, linudev-dev, libplymouth-dev). . Ich habe über nih_info () -Aufrufe Debugging-Drucke im Code hinzugefügt und die Spawns erstellt, die fsck-Blocking anstelle von non-blocking ausführen. Ich arbeite an der Theorie, dass mountall irgendwo abstürzt (oder nih, oder dbus oder plymouth ...). Ich scheine nicht bei jedem Durchlauf die Ausgabe an die gleiche Stelle im Code zu bekommen, aber es scheint, als würde es irgendwann nach dem Remount von/dev/sda1 zu/- in der mount () -Routine anhalten. Greg gestern

Ich habe auch dpkg -r von Paketen über chroot ausgeführt, 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 war vorsichtig, diese nicht zu entfernen), entfernt plasma-widget-kimpanel-backend-ibus, ibus-qt4, ibus-qt1. Nichts davon hatte Auswirkungen auf das Problem, daher habe ich mehr Pakete entfernt, die ich jetzt nicht benötige (wx-Widget- und jdk-Pakete usw.) - keine Auswirkung

UPDATE: Es scheint, dass mountall in der Routine emit_event () hängt, die aufgerufen wird, nachdem/erneut eingehängt wurde, um zu diesem Zweck ein Ereignis zu senden. Innerhalb von 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 würde? Plymouth gebrochen? dbus? Emporkömmling? Irgendwelche Vorschläge für Korrekturen oder weitere Diagnosen?

LÖSUNG Anscheinend hatte ich cloud-init und cloud-utils installiert, weil ich eines Tages vielleicht damit spielen möchte. Will, stellt Cloud-Init-Schrauben mit der Konfiguration ureadahead heraus und startet, wenn das dbus-Ereignis 'mounted /' eintritt, was dazu führte, dass mein System hängen blieb, sobald die dbus-Nachricht gesendet wurde, die nach dem erneuten Mounten 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: \

1
Greg