Erzwingen Sie die Bereitstellung in Ubuntu, um Probleme nach dem Netbook-Ruhezustand zu beheben

8352
Ilari Kajaste

Das einzige, was ich hier wirklich wissen muss, ist, wie man das Abheben erzwingt, wenn das Gerät beschäftigt ist. umount -ffunktioniert nicht Die folgende Beschreibung ist nur ein Hintergrund dafür, warum ich dies tun muss, falls jemand eine bessere Lösung finden kann. Wenn dies nicht möglich ist, akzeptiere ich gerne eine Erklärung dafür, warum nicht als Antwort.

Das Problem ist, wenn ich mein Netbook in den Schlafmodus versetze, wird mein Mount-Punkt beschädigt. Der Mount ist immer noch vorhanden und wird beim Ausführen mountals normal angezeigt:

/dev/mmcblk0p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal) 

Jeder Versuch, es zu lesen / schreiben, schlägt jedoch mit einem fehl Input/output error.

Wenn Programme geöffnet sind, schlägt der Versuch fehl, das Gerät abzuhängen

umount: /home/ilari/storage: device is busy 

Das Problem scheint zu sein, dass das Gerät /dev/mmcblk0während des Schlafens aus dem System verschwunden ist. Aber hier passiert das seltsame Zeug. Das bisherige Gerät ist noch verfügbar, nur ist es jetzt geworden /dev/mmcblk1! Und ich kann es wieder am selben Punkt montieren, was die Ausgabe mountziemlich lustig macht

/dev/mmcblk0p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal) /dev/mmcblk1p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal) 

Die Sache ist, wenn ich das tue, funktioniert der Mount-Punkt genauso wie vor dem Schlaf! Die geöffneten Programme können das Dateisystem weiter verwenden, als ob nichts passiert wäre.

Aber wenn das System mehrere (ausgefallene) Geräte akkumuliert, erscheint das recht unübersichtlich. Ich möchte also den vorherigen Einhängepunkt aufheben, bevor das "neue" Gerät an demselben Punkt erneut bereitgestellt wird.

Wie kann ich das Abheben erzwingen, wenn das Gerät beschäftigt ist? Vorzugsweise automatisch beim Aufwachen und mit automatischem Remount. Jede Hilfe wird geschätzt.

(Ich könnte natürlich alle geöffneten Programme schließen und dann das Unmounten aufheben, aber das macht den Zweck des Schlafmodus sowieso ziemlich zunichte.)

BEARBEITEN: Wie in den Kommentaren erwähnt, ist es wahrscheinlich eine gute Idee, das System vor dem Einschlafen zu deinstallieren und dann beim Aufwecken erneut bereitzustellen. Tatsächlich scheint das Gerät sogar daran zu hindern, seine Indexnummer zu ändern /dev/mmcblk0. Das Problem ist, dass ich es erst aushängen kann, nachdem alle Programme geschlossen wurden, die es verwenden. (Beachten Sie, dass dies auch nach dem Ruhezustand funktioniert. Wenn Sie alle Programme schließen, kann ich die Unterbrechung immer wieder aufheben.) Ist auch umount -fkeine Hilfe und antwortet mit einer zusätzlichen umount2: Device or resource busy.

Ich verwende Ubuntu Netbook Remix 9.10 für Acer Aspire One. Der Einhängepunkt befindet sich in fstab nach der UUID des Dateisystems (weshalb das Remount auch funktioniert, obwohl sich der Gerätename geändert hat). Natürlich ist es eine Alternative, das Gerät daran zu hindern, seine Nummer zu ändern, aber ich fürchte, das ist ein viel schwierigeres Problem.

3
Ich hatte bei Windows-Freigaben ein ähnliches Problem (ein Mount weigert sich, die Bereitstellung aufzuheben, weil es beschäftigt ist), wenn der Computer, auf dem sich die Freigabe befindet, nicht mehr verfügbar ist, einschließlich der Zeiten, zu denen der Computer, der die Freigabe betrachtet, nicht unterbrochen wurde. David Spillett vor 14 Jahren 0
Haben Sie versucht, das System zu deinstallieren, bevor Sie das System in den Ruhezustand versetzen, und nach dem Aufwachen wieder einsteigen dein alt Die Lösung scheint für udev ein Job zu sein, aber das kann nicht helfen, wenn das Gerät beim Aufwachen "aufgehängt" wird. Hast du einen Fehler bei Ubuntu eingereicht? quack quixote vor 14 Jahren 1
@ ~ quack: Eigentlich scheint es, dass das Aufheben der Bereitstellung vor dem Schlaf die Gerätenummer konstant hält. Ich kann die Bereitstellung jedoch immer noch nicht vor dem Ruhezustand durchführen, solange offene Programme vorhanden sind (die Dateien auf dem Einhängepunkt verwenden). Ilari Kajaste vor 14 Jahren 0

2 Antworten auf die Frage

5
Brendan Long

Hat umount -l /home/ilari/storagezu arbeiten? Ich habe nicht wirklich eine gute Partition, auf der ich das testen kann, aber sie könnte tun, was Sie wollen.

Tatsächlich funktioniert es! Keine Duplikate mehr mit "mount". Das System erhöht jedoch immer noch die Anzahl der Geräte für den Fall, dass Programme geöffnet sind. Daher bin ich mir nicht sicher, ob dies tiefer liegt als die Duplikate. Zumindest sieht es ein bisschen besser aus, und darum wollte ich. Die Prämie und die akzeptierte Antwort wurden wegen Zeitüberschreitung der Prämie verlegt, sorry! Gerne spende ich Ihnen eine Nebenprämie, wenn es möglich wäre. Ilari Kajaste vor 14 Jahren 0
Keine Bange. Ich dachte mir, dass dies diesen Effekt haben würde (umount -l entfernt das Gerät aus der Mount-Liste und lädt es dann ein, wenn es möglich ist). Ich hatte nur gehofft, dass das Gerät nach dem Schlaf als unmounted betrachtet werden könnte. Brendan Long vor 14 Jahren 0
[umount -l ist gefährlich] (https://unix.stackexchange.com/q/390056/143394) und hilft nicht bei der Erhöhung der Gerätenamen. Tom Hale vor 7 Jahren 0
3
innaM

Hast du die -fFlagge ausprobiert umount?

umount -f /home/ilari/storage 

Etwas wie dieses automatisch zu machen, würde ein kleines Skript beinhalten /etc/pm/sleep.d/. Ich empfehle Ihnen jedoch, das Aufhängen aus dem Schlafmodus zu starten und beim Aufwachen wieder einzubauen. Ich habe kürzlich eine gute Antwort erhalten, die Ihnen sagen sollte, was Sie tun müssen, um dieses kleine Skript zu schreiben.

"-f" hilft nicht, "umount2: Gerät oder Ressource beschäftigt". Ich werde den Beitrag korrigieren, um dies auch zu erwähnen. Ilari Kajaste vor 14 Jahren 0
Ja, das Aufhängen beim Einschlafen ist in der Tat wahrscheinlich eine gute Idee, wenn es mir gelingt, das Aufheben der Bereitstellung durchzuführen. Danke für den Link! Ilari Kajaste vor 14 Jahren 0