For the past four years, I have been backing up my laptop on a G-Technology Firewire disk connected to the hub in my display. So far it worked without a hitch, but a few days ago I started to get the error message
Time Machine couldn’t complete the backup to “hikae”.
Unable to complete backup. An error occurred while creating the backup folder.
The message appeared without a time pattern, so it was not clear what it could be. The drive could not be unmounted and had to be force-ejected and power-cycled and then worked again until the next irregular event, maybe one backup out of ten.
When I ran Disk Utility to see if something was wrong with the drive, it told me the boot block was corrupted. After fixing it, the Time Machine problem did not go away, so I must have corrupted the boot block with the force-eject. Time to find out what is going on.
The next time it happened, I tried to eject the drive from Disk Utility, which gave me the message
Disk cannot be unmounted because it is in use.
Who on Earth would be using it? Did Time Machine hang? Unix to the rescue, let us get the list of open files
sudo lsof /Volumes/hikae
The user is
root and the commands are
mds_store on index files. They are indexing the drive for Spotlight. Why on Earth would an operating system index a backup drive by default? Let us get rid of that.
sudo mdutil -i off /Volumes/hikae
However, in this state, the command returns "
Error: unable to perform operation. (-400) Error: unknown indexing state." This might mean Spotlight has crashed or is otherwise hanging.
Force Eject and power cycle the drive. This time mdutil works:
2017-01-18 17:10:00.657 mdutil[25737:7707511] mdutil disabling Spotlight: /Volumes/hikae -> kMDConfigSearchLevelFSSearchOnly\\Indexing and searching disabled.
For the past two days, I have no longer experienced the problem.
If you are the product manager, why is Spotlight indexing backup drives by default?
If you prefer using a GUI, drag and drop your backup drive icon into the privacy pane of the Spotlight preference window (I did not try this):