marți, februarie 17, 2009

umount device is busy

Se intampla uneori sa avem nevoie sa facem umount unei partitii si sa nu putem din cauza ca e folosita. Uneori este usor de indentificat procesul care o foloseste, dar uneori raspunsul e departe de a fi evident.

Pentru a detecta ce procese folosesc o anumita partitie, putem folosi utilitarul fuser din packetul psmisc


Sa presupunem ca avem urmatoarea situatie:

umount /dev/sda5
umount: /media/sda5: device is busy
umount: /media/sda5: device is busy

In acest caz, partitia sda5 este folosita, si trebuie sa aflam ce proces trebuie inchis pentru a o putea demonta. Folosim fuser:

fuser -m /dev/sda5
/dev/sda5: 21019c

Asta inseamna ca procesul cu pidul 21019 este responsabil pentru folosirea partitiei.

Acum trebuie sa aflam despre ce proces este vorba si ce user il ruleaza. Pentru asta rulam:

ps aux|grep "21019"

Ne va fi afisat ceva de genul:

root 21019 0.0 0.0 4032 1780 ttyp0 S 13:47 0:00 bash

Asta inseamna ca un shell tine ocupata partitia. Cel mai probabil ne aflam in directorul in care e montata partitia, si din acest motiv nu se poate face umount. Putem fie sa iesim din director, fie sa dam kill -9 pid-ului procesului responsabil. Situatia variaza de la caz la caz, preferabila ar fi inchiderea procesului fara a folosi kill.

Acesta metoda este extrem de utila pentru a preintampina scoaterea unui stick fara umount sau blocarea unui cd in unitate.

Niciun comentariu: