cannot turn off spotlight indexing on external drive
I know this question has been asked before, but the solutions suggested are not working for me.
I just finished attaching a brand new external hard-drive and waiting for 14 hours for Time Machine to finish backing it up. Now, I cannot eject the drive. I get this error:
I don't want to "Force Eject..." because the last time I did that it destroyed the file system in a fashion that it could not be repaired. Thus the need for new external hard drive.
It seems like Spotlight indexing is the culprit here:
$sudo lsof | grep /Volumes/Backup/
mds 64 root 21r DIR 1,7 2108 3347098 /Volumes/Backup/.Spotlight-V100/Store-V2/26061632-2165-4372-BACA-B77080B37A25
mds 64 root 24u REG 1,7 0 3347143 /Volumes/Backup/.Spotlight-V100/Store-V2/26061632-2165-4372-BACA-B77080B37A25/journalExclusion
mds_store 310 root txt REG 1,7 8 3347107
I have tried adding my Backup drive to the Spotlight privacy list. This is apparently supposed to take effect immediately. But it does not.
When I try to stop it using the command-line, here's what happens:
mdutil -v -a -s
/:
Indexing disabled.
/.MobileBackups:
2015-12-06 14:53:51.707 mdutil[11654:1215293] Metadata.framework [Error]: mdsCopyStoreAttributes failed: (8) (os/kern) no access
No index.
/Volumes/Backup:
Indexing and searching disabled.
/Volumes/Backup/Backups.backupdb:
Indexing enabled.
Scan base time: 1970-01-01 00:00:01 +0000 (1449442430 seconds ago), reasoning: '(null)'
also tried this ...
$sudo mdutil -i off -d -E /Volumes/Backup/Backups.backupdb/
Password:
/Volumes/Backup/Backups.backupdb:
2015-12-06 16:42:53.210 mdutil[11822:1237806] mdutil disabling Spotlight: /Volumes/Backup/Backups.backupdb -> kMDConfigSearchLevelOff
Indexing enabled.
$sudo lsof | grep /Volumes/Backup/
mds 64 root 14r DIR 1,7 1972 3359270 /Volumes/Backup/.Spotlight-V100/Store-V2/26061632-2165-4372-BACA-B77080B37A25
mds 64 root 22u REG 1,7 0 3359315 /Volumes/Backup/.Spotlight-V100/Store-V2/26061632-2165-4372-BACA-B77080B37A25/journalExclusion
mds_store 310 root txt REG 1,7 8 3359279 /Volumes/Backup/.Spotlight-V100/Store-V2/26061632-2165-4372-BACA-B77080B37A25/0.indexIds
also tried killing the spotlight processes ...
$ps -ax | awk '/[m]ds/{print $1}'
64
310
$sudo kill 64
$sudo kill 310
$sudo lsof | grep /Volumes/Backup/
backupd 11828 root 4w REG 1,7 1453 3359329 /Volumes/Backup/Backups.backupdb/Alex’s MacBook Pro/2015-12-06-164406.inProgress/.Backup.471141846.204163.log
backupd 11828 root 6w REG 1,7 1780482048 3366847 /Volumes/Backup/Backups.backupdb/Alex’s MacBook Pro/2015-12-06-164406.inProgress/88F84A3D-497C-4059-99AE-BF8C3C91534C/Macintosh HD/Users/alexryan/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk
mds 11849 root 12r DIR 1,7 2108 3359270 /Volumes/Backup/.Spotlight-V100/Store-V2/26061632-2165-4372-BACA-B77080B37A25
mds 11849 root 17u REG 1,7 0 3359315 /Volumes/Backup/.Spotlight-V100/Store-V2/26061632-2165-4372-BACA-B77080B37A25/journalExclusion
...
Is there any way that I can safely eject my external hard drive without destroying the file system again?
I am running OS X 10.11.1 on a Macbook Pro (Mid-2010).
The external drive is:
Seagate Backup Plus Slim 2TB Portable External Hard Drive with Mobile Device Backup USB 3.0
Solution:
I was a little nervous about killing the spotlight process because I wasn't sure if it would cleanly close the files it had opened before shutting down. I didn't want to corrupt my file system again.
Directly killing the processes did not work. They just came back to life again with new process ids.
However, using launchctl did work. I was able to eject the drive. And it looks like my file system did not get corrupted.
$sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
$ps -ax | awk '/[m]ds/{print $1}'
$sudo lsof | grep /Volumes/Backup/
Solution 1:
Have you tried disabling spotlight on the device per terminal command?
Something like sudo mdutil -i off -d -E <mountpoint>
to disable indexing, searches and to erase spotlight caches on the drive.
According to your output /Volumes/Backup
has it disabled but /Volumes/Backup/Backups.backupdb
hasn't, it may make a difference to run the command with that mountpoint.
Another solution suggested here is to stop the spotlight process entirely. You could do this with kill <procid>
or launchctl. You can re-start it after ejecting the drive.
(The procid for the kill command is the one in the second column of your lsof results, or you can alternatively use use ps -ax | awk '/[m]ds/{print $1}'
to get the procids for mds and mds_store.)