MacOS – El Capitan, can’t rsync, tar, cp certain files on Promise raid

backupmacos

First off: I'm a Linux Admin, but have to do a few MacOS things around the place (had very little exposure to it previously).

One of the tasks I have is to take a backup-copy of a 10TB Promise Pegasus2 array attached to a mac-mini running el capitan 10.11.4.

I'm root on the mac (sudo -i from admin account).

I'm trying to rsync the data from the array to a backup server with ample storage (a Linux box). All went swimmingly till the process hit a certain 52MB file – on that one it just "sticks". No timeout, no error, nothing.

The perms/flags look like this:

ls -leO@  CCCBB15A-5DA6-433F-BD37-001CB6151E08.key
-r--r--r--@ 1 user  staff  compressed 54994229 17 Sep  2015 CCCBB15A-5DA6-433F-BD37-001CB6151E08.key
    com.apple.finder.copy.source.checksum#N        4 
    com.apple.genstore.info       91 
    com.apple.genstore.orig_perms_v1           1 
    com.apple.genstore.origdisplayname        31 
    com.apple.genstore.origposixname          31 
    com.apple.iwork.documentUUID#PS       16 
    com.apple.metadata:_kTimeMachineNewestSnapshot        50 
    com.apple.metadata:_kTimeMachineOldestSnapshot        50 
    com.apple.quarantine          22 
 0: group:everyone deny write,delete,append,writeattr,writeextattr,chown

Which of these are responsible for root being "stuck"? πŸ™‚

And, more importantly, what do I need to do to make it "unstuck"?

Edit1:
And this is what it does (indefinitely, by the looks of it) … used dtruss.

stat64("Backups.backupdb/Chiltepin/2016-01-22-164610/Macintosh HD/.DocumentRevisions-V100/PerUID/502/24c/com.apple.documentVersions/805FC10B-F41B-4825-A0EB-41BE7505E79B.key/preview-micro.jpg\0", 0x7FFF5DEF6A08, 0x1000)       = 0 0
lstat64("Backups.backupdb/Chiltepin/2016-01-22-164610/Macintosh HD/.DocumentRevisions-V100/PerUID/502/24c/com.apple.documentVersions/805FC10B-F41B-4825-A0EB-41BE7505E79B.key/preview-web.jpg\0", 0x0, 0x0)      = 0 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0
read(0x3, "\0", 0x40000)         = 262144 0

Not a fast rate, mind you, looks like it tries once every 15 seconds.

Edit2:
The saga continues. I tried bsdtar & gnu tar (installed via homebrew) to generate a local tar ball of the volumes on the Promise array. Those processes, too, just get stuck, typically on files within Backups.backupdb which seem to be TimeMachine data? It's always a file with the extension .key. Is there ANY way at all to copy these? I assume it's a privilege thing as Disk Utility -> First Aid showed no problems with the file-system.

Edit3:
I still don't understand why a simple cp of the files that are acting up w/ any other means works, but that seems to be the status quo. Creating an image of the device in question seems to have worked, too. I am not confident that //restoring// from that image will work, though … sigh

Best Answer

I'm not an expert by any means, but when I use rsync I use the flags -vaE --progress. I believe one of those flags (I don't remember which) allows you to copy files which may be corrupt and which the GUI (Finder) copy will get hung up on. So the syntax I use is:

$ sudo rsync -vaE --progress [source path] [destination path]

I'd try using one or more of those flags in the command. Let me know if this helps you at all.