Linux: Welcher Prozess verursacht "Gerät beschäftigt" beim Ausführen von umount?
Linux: Welcher Prozess verursacht "device busy", wenn dabei umount?
InformationsquelleAutor der Frage flybywire | 2009-03-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick auf die lsof Befehl (list open files) - es kann Ihnen sagen, welche Prozesse halten das, was öffnen. Es ist manchmal schwierig, aber oft etwas so einfaches wie
sudo lsof | grep (your device name here)
könnte es für Sie tun.InformationsquelleAutor der Antwort MarkusQ
Nur für den Fall... passiert manchmal, dass Sie anrufen umount aus dem terminal und dem aktuellen Verzeichnis gehört dem gemounteten Dateisystem.
InformationsquelleAutor der Antwort alvatar
Sollten Sie die
fuser
Befehl.ZB.
fuser /dev/cdrom
wird wieder die pid(s) des Prozesses mit/dev/cdrom
.Wenn Sie versuchen, Sie zu deaktivieren, Sie können töten Thesen-Prozess mit der
-k
- Schalter (sieheman fuser
).InformationsquelleAutor der Antwort Ben
Check für open-loop-Geräte zugeordnet, um eine Datei auf dem Dateisystem mit "losetup -a". Sie wird nicht erscheinen, die entweder mit lsof oder fuser.
InformationsquelleAutor der Antwort Jay
Überprüfen Sie auch
/etc/exports
. Wenn Sie exportieren, die Pfade innerhalb der mountpoint via NFS, wird es diesen Fehler, wenn Sie versuchen zu deaktivieren und nichts wird zeigen, bis infuser
oderlsof
.InformationsquelleAutor der Antwort Malvineous
(wie Listen, die Prozesse, die Dateien verwenden, die auf die Halterung montiert auf /mountpoint. Besonders nützlich für die Suche nach dem Prozess(es) sind mit einem gemounteten USB-stick oder CD/DVD.
InformationsquelleAutor der Antwort mas
lsof und fuser sind in der Tat zwei Möglichkeiten, um den Prozess hält, dass eine bestimmte Datei öffnen.
Wenn Sie nur wollen, umount erfolgreich zu sein, sollten Sie untersuchen, Ihre -f und -l-Optionen.
InformationsquelleAutor der Antwort Anonymous
Das ist genau der Grund, warum die "fuser -m /mount/point" vorhanden ist.
BTW, ich glaube nicht, dass "Fixiereinheit" oder "lsof" zeigt an, wenn eine Ressource wird durch das kernel-Modul, obwohl ich normalerweise nicht das Problem..
InformationsquelleAutor der Antwort
lsof und fuser mir nicht alles entweder.
Nach einem Prozess der Umbenennung alle möglichen Verzeichnisse .alte und Neustart des Systems jedes mal, nachdem ich änderungen vorgenommen, ich fand ein bestimmtes Verzeichnis (in Bezug auf postfix) verantwortlich war.
Es stellte sich heraus, dass ich hatte einmal eine symlink von /var/spool/postfix /disk2/pers/E-mail/postfix/varspool, um zur Minimierung der Schreibzugriffe auf eine SD-Karte-basierte root-Dateisystem (Sheeva Plug).
Mit dieser symlink, selbst nach absetzen der postfix-und dovecot-services (ps aux "sowie" netstat -tuanp nicht zeigen, alles, was im Zusammenhang) ich war nicht in der Lage zu unmount /disk2/pers.
Wenn ich entfernt die symlinks und aktualisiert die postfix und dovecot config Dateien direkt auf die neuen Verzeichnisse auf /disk2/pers/konnte ich erfolgreich beenden Sie die Dienste, und deaktivieren Sie das Verzeichnis.
Nächste mal schaue ich genauer auf die Ausgabe von:
Dem obigen Befehl wird rekursiv eine Liste aller symbolischen links im Verzeichnis-Baum (hier beginnend bei /var) und filtern diese Namen, die auf ein bestimmtes Ziel mount-Punkt (hier disk2).
InformationsquelleAutor der Antwort captcha
Dateisysteme montiert auf das Dateisystem, die Sie versuchen zu deaktivieren kann dazu führen, die
target is busy
Fehler zusätzlich zu allen Dateien, die in Gebrauch sind. (Zum Beispiel, wenn Siemount -o bind /dev /mnt/yourmount/dev
umchroot
dort).Zu finden, welche Dateisysteme gemountet sind, auf das Dateisystem führen Sie die folgenden:
mount | grep '/mnt/yourmount'
Herausfinden, welche Dateien in Verwendung sind dem Rat bereits vorgeschlagen, die von anderen hier:
lsof | grep '/mnt/yourmount'
InformationsquelleAutor der Antwort Slobodan Pejic
Dateien öffnen,
Prozesse, die mit offenen Dateien sind die üblichen Schuldigen. Zeigen Sie:
Es ist ein Vorteil der Verwendung
/dev/<device>
eher als/mountpoint
: ein mountpoint verschwindet nach einumount -l
werden, oder es kann ausgeblendet werden, indem eine aufgesetzte Halterung.fuser
können auch verwendet werden, aber meiner Meinunglsof
hat eine weitere nützliche Ausgabe. Allerdingsfuser
ist nützlich, wenn es darum geht zu töten, die Prozesse, wodurch Sie Ihre Dramen, so können Sie sich mit Ihrem Leben.Liste der Dateien auf
<mountpoint>
(siehe Einschränkung oben):Interaktiv tötet nur Prozesse mit Dateien zum schreiben geöffnet:
Nach der Montage nur-Lesen (
mount -o remount,ro <mountpoint>
), ist es sicher(r) zu töten, alle verbleibenden Prozesse:Einhängepunkte
Der Täter sein kann, der kernel selbst. Ein anderes Dateisystem gemountet auf das Dateisystem, die Sie versuchen zu
umount
wird Trauer. Überprüfen mit:Loopback-mounts, auch überprüfen Sie die Ausgabe von:
Anonyme inodes (Linux)
Anonyme inodes können erzeugt werden durch:
open
mitO_TMPFILE
)Diese sind die schwer fassbare Art von pokemon, und erscheinen in
lsof
'sTYPE
Spalte alsa_inode
(die ohne Papiere in derlsof
man-page).Erscheinen nicht im
lsof +f -- /dev/<device>
so müssen Sie zu:Für das töten Prozesse holding anonyme inodes finden Sie unter: Liste Aktueller inotify-Uhren (pathname, PID).
InformationsquelleAutor der Antwort Tom Hale
Wenn Sie immer noch nicht unmount, bzw. remount Ihr Gerät nach dem beenden aller Dienste und Prozesse, die mit offenen Dateien, dann kann es eine swap-Datei oder swap-partition zu halten Ihr Gerät beschäftigt. Dies wird nicht zeigen, bis mit
fuser
oderlsof
. Schalten Sie tauschen mit:Konnte man vorher überprüfen, und zeigen Sie eine Zusammenfassung von swap-Partitionen oder swap-Dateien mit:
oder:
Als eine alternative zur Verwendung des Befehls
sudo swapoff -a
können Sie auch zum deaktivieren der swap-durch anhalten eines Dienstes oder systemd Einheit. Zum Beispiel:oder:
In meinem Fall das abschalten der swap wurde notwendig, zusätzlich zu stoppen alle Dienstleistungen und Prozesse mit den Dateien zum schreiben geöffnet, so dass ich remount meine root-partition als nur Lesen, um zu laufen
fsck
auf meine root-partition ohne Neustart. Dies war notwendig, auf einem Raspberry Pi läuft Raspbian Jessie.InformationsquelleAutor der Antwort Simon Gould