The Living Thing / Notebooks :

How is foreign filesystem access in OSX awful this week?

How do I rsync between OSX and linux?

Two problems here:

  1. OSX seems to present weird encoding normalisation
  2. OSX desktop filesystems are usually case insensitive and no other modern filesystem is (AFAICT Windows, e.g., fakes it at the user level for NTFS)

Both these can lead to confusing file mangling and potentially data loss.

It seems to work better for me if I do rsync from the non apple machine as far as the (2) stuff goes, in that it then seems not to accidentally duplicate things if renames have happened. I should look into this with more precision.

Then you still need to handle the encoding: --iconv=UTF-8,UTF8-MAC

Putting that together

sync --delete \
    --iconv=UTF-8,UTF8-MAC -avz \
    mac.local:/path/to/stuff/ /Volumes/syncdrive/

pro-tip: the iconv options are in order LOCAL,REMOTE, not FROM,TO.

What do you have to do to get foreign filesystems to mount using FUSE this week?

From macworld and the osxfuse creators, plus the fuse-ext2.

  1. You need to always have disk utility in debug mode:

    defaults write com.apple.DiskUtility DUDebugMenuEnabled 1
    

    Now you will have the ability to discern volume paths in Disk utility

  2. make a mount point (somewhere not in /Volumes or it will fail in confusing and opaque ways whose details momentarily elude me)

  3. mount:

    fuse-ext2 /dev/VOLUMEPATH /path/to/mountpoint
    

    Or if you installed ext2fuse using homebrew:

    ext2fuse /dev/VOLUMEPATH /path/to/mountpoint
    

    Well, that didn’t work. Some missing libraries, eh?

    You could spend time debugging it, but you just want to get the damn files off the disk to meet a deadline that isn’t about remedying Apple’s dismal filesystem situation for them for free.

    Perhaps you could use the slightly different instructions in some github ticket or just download binaries from some complete stranger?

    Nah.

  4. Perhaps you can compile fuse-ext2 from source manually? How hard can that be…?

    Oh god, there are about 18 steps. And so many dependencies! Let’s give it a go anyway

    …Nope.

  5. …it’s still broken, eh? Let’s build and run a whole VM to access that damn disk and get linux to do the work for us. (Thought: is this easier with docker now?) Linux is great for bloody-mindedly technical yak shaving. Anyway. It’s only an hour of dicking around and a gigabyte of data. Your bandwidth is unlimited, right? What, don’t you live in Silicon Valley? What’s wrong with you?

    Your adventure continues at virtual machines.

    […]

    Welcome back!

    OK, sure, now it still doesn’t work because of errors within the guest OS, but the problem is different now! And refreshing! But if you’ve got into the swing of it, don’t despair, you are still hours away from doing anything useful. (God I hope you’re being paid for this.) Anyway, you’re done with OSX. Continue your quest at the passive-agressive-advice-for-linux page.

You know what? Virtual machines are dumb. You aren’t the cloud. Go old school. Burn a linux distro onto a USB key, boot off that, then copy the files from there to a FAT32 disk.