OS X détermine quelle application accède à un disque dur et empêche l'éjection?

17

J'utilise le serveur OS X 10.6 et je souhaite éjecter mon disque externe afin de pouvoir effectuer une maintenance du disque telle que la défragmentation. Cependant, lorsque j'essaie d'éjecter le lecteur, il échoue en disant que le disque est en cours d'utilisation. Je peux forcer son éjection mais cela pourrait provoquer une corruption ... Comment savoir quelle application utilise le lecteur et le maintient ouvert?

jamone
la source

Réponses:

25

Essayez sudo lsof | grep /Volumes/External, où "Externe" serait le nom de votre disque externe. Hébergez-vous des données de services hors de ce lecteur?

churnd
la source
Juste quelques dossiers partagés, mais je sais que tous les clients du réseau avaient éjecté ces partages et le serveur entier.
jamone
Peu importe toujours. Parfois, les processus AFP / SMB / NFS / FTP / etc laissent des fichiers ouverts simplement parce que le service est en cours d'exécution. Le mieux est d'essayer d'arrêter le service, puis de l'éjecter. Ce serait mieux que d'utiliser la commande ci-dessus avec kill -9. Vous pouvez arrêter un service via la ligne de commande par quelque chose comme sudo serveradmin stop smb, puis le démarrer par sudo serveradmin start smb, où "smb" est le nom du service. sudo serveradmin listles montrera tous.
churnd
Il s'agit normalement d'indexation Spotlight!
JGFMK
5

lsof - Liste des fichiers ouverts

À l'invite de commande, tapez simplement sudo lsofpour voir une liste des fichiers ouverts et leur emplacement et identifiant de processus afin de pouvoir tuer le processus.

Pour l'affiner un peu, vous pouvez utiliser sudo lsof | grep hard drive name.

Une fois que vous avez le pid sudo kill -9 pidpour tuer le processus méchant.

Jon Rhoades
la source