Počas práce s jednotkami flash, diskami, obrázkami sa často zobrazuje chyba Zariadenie alebo prostriedok obsadený. Môže sa zobraziť pri pokuse o odmontovanie externého disku alebo diskového oddielu alebo pri pokuse o presunutie alebo odstránenie súboru. V tomto článku sa budeme venovať príčinám, prečo sa táto chyba môže vyskytnúť, ako aj spôsobom jej odstránenia.
Táto správa znamená, že zariadenie alebo prostriedok je obsadený. Ak to vysvetlíte podrobnejšie - súbor, ktorý sa pokúšate odstrániť, alebo disk, ktorý potrebujete odpojiť, je stále používaný niektorým zo spustených programov. Môže to byť spôsobené tým, že program ešte nedokončil svoju prácu, zamrzol alebo sa v procese jeho práce vyskytli nejaké problémy.
Chyba sa môže vyskytnúť pri pokuse o vykonanie operácie so súborom, ktorý už používa iný proces alebo program. Často problém súvisí s otvoreným súborom, zablokovaným zariadením, sieťovým pripojením. V prípade jednotky flash ju môžete jednoducho vybrať z počítača, ale to nie je riešenie, pretože existuje vysoká pravdepodobnosť straty neuložených údajov. Existujú spôsoby, ako tento problém obísť.
V prvom rade je potrebné zatvoriť programy, ktoré môžu používať súbor alebo jeden zo súborov na vymeniteľnom médiu. Ak sa prehráva jeden z video súborov, mali by ste zatvoriť prehrávač. A až potom sa pokúste znovu vykonať operácie.
Ak neviete, ktorý program vám bráni vo vykonaní operácie, môžete to veľmi ľahko zistiť pomocou príkazu lsof. Stačí ho spustiť a preosiať len tie záznamy, ktoré sa týkajú prípojného bodu vášho média:
lsof | grep /media/sergiy/83AE-2346
Môžete tiež preosiať procesy, ktoré potrebujete, v samotnom nástroji, použite možnosť +D, je to ešte lepšie, pretože sa nezobrazia systémové služby, ale iba program, ktorý potrebujete ukončiť:
lsof +D /media/sergiy/83AE-2346
Takto uvidíte všetky procesy, ktoré používajú súbory na našom médiu, a ukončite ich príkazom kill. V našom prípade potrebujeme ukončiť prehrávač totem s PID 5616:
$ kill -TERM 5616
Ako zistiť, ktoré procesy používajú súbor? Použite príkaz fuser:
fuser -vm /home/sergiy/83AE-2346
Zobrazia sa všetky potrebné informácie: zobrazí sa používateľ, v mene ktorého proces beží. Rovnakým spôsobom ho môžete ukončiť:
Ak ste zavreli všetky programy, ale nepomohlo to, môžete skúsiť vymazať systémovú vyrovnávaciu pamäť súborov pomocou tohto príkazu:
sync && echo 2 > /proc/sys/vm/drop_caches
To je zatiaľ všetko.