How to Transfer Data Between Nintendo Switch microSD Cards on a Mac

4th April 2023 | Games

In preparation of the upcoming Legend of Zelda: Tears of the Kingdom, I checked how much freespace was available on my Nintento Switch and its 128GB microSD card. After nearly six years of use, the system was finally starting to get somewhat full, especially when a number of games and demos had been downloaded (hence my preference to still get a physical version of games for a variety of reasons). This led me down the path to learn how to transfer the data on the old microSD card to a newer, larger microSD card, but while using a Mac.

The basic instructions to transfer the data between two microSD cards seemed fairly straightforward by just copying the contents of the first SD card to a computer, then copy the files to the new SD card. According to Nintendo's website, it recommends using Windows, which might have avoided some of the issues I would later encounter in my experiments, but I will detail on how to do this successfully on a Mac.

Upon my first attempt to transfer the files, I was getting some error on the Switch that said the new SD card couldn't be read. After mulling it over a bit, I assumed that macOS might have added some cruft to the files (dot files and the such) which might have confused the Switch. Time to start over by formatting the SD card, which can be done from the Switch (System Settings > System > Formatting Options > Format microSD Card) or via a 3rd party tool like SD Card Formatter.

SD Card Formatter

Despite what SDCard's site mentions, version 5.0.2 of the SD Card Formatter is a universal app for Intel, Apple Silicon, and (surprise!) PowerPC processors.

% file /Applications/SD\ Card\ Formatter.app/Contents/MacOS/SD\ Card\ Formatter 
/Applications/SD Card Formatter.app/Contents/MacOS/SD Card Formatter: Mach-O universal binary with 4 architectures: [i386:
- Mach-O executable i386] [ppc_7400:
- Mach-O executable ppc_7400] [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]
/Applications/SD Card Formatter.app/Contents/MacOS/SD Card Formatter (for architecture i386):	Mach-O executable i386
/Applications/SD Card Formatter.app/Contents/MacOS/SD Card Formatter (for architecture ppc7400):	Mach-O executable ppc_7400
/Applications/SD Card Formatter.app/Contents/MacOS/SD Card Formatter (for architecture x86_64):	Mach-O 64-bit executable x86_64
/Applications/SD Card Formatter.app/Contents/MacOS/SD Card Formatter (for architecture arm64):	Mach-O 64-bit executable arm64

It is definitely a surprise to see that this app is essentially a mega universal binary, which contains binaries for Apple Silicon (M1, M2, etc.), Intel (both 32 and 64 bit), and PowerPC. I checked the Info.plist and it does say that the minimum version is 10.5, so it does look like it might be able to run on a 20 year old laptop (like my PowerBook G4). A very welcome surprise, and well done Tuxera. My own erasing app Permanent Eraser was a Universal Binary for PowerPC and Intel until fairly recently, but this is the first case I've seen an app built for PowerPC, Intel, and Apple Silicon. I'm guessing that it requires multiple builds, and then a tool like lipo is used to combine the binaries together.

Seeing this program is interesting and stirs some interest in how it "properly" formats an SD card, which Nintendo says "Nintendo products strictly adhere to the SD card standard." The Switch can format the SD card, and creates a couple of folders inside the Nintendo folder (Album, Contents, save).

The Fix

After reformatting the 512GB SD card in the Switch again, I brought it back over to my Mac, but I was careful to not open up the SD card in Finder (which can decorate a filesystem with .DS_Store files). Instead, I just ran this command from the Terminal:

cp -rvf ~/Desktop/Nintendo/* /Volumes/Untitled/Nintendo

Where ~/Desktop/Nintendo/ is the folder where I copied the contents of the original microSD card. Then, for good measure, I also ran:

dot_clean -m /Volumes/Untitled/

I had never heard of dot_clean before, until I came across this Reddit post. According to a Lifehacker article, dot_clean came out in Mac OS X Leopard (10.5). The Leopard man page for dot_clean says it dates back to June 28, 2006. I've dealt with cleaning up odd cruft in apps and file systems before, so this definitely seems quite handy and I wish I had known about this a long time ago. Despite these unexpected headaches — learning!

If these steps don't work, then try this bevy of commands next:

sudo chflags -R arch /Volumes/Untitled/
sudo chflags -R noarch /Volumes/Untitled/Nintendo/
sudo mdutil -i off /Volumes/Untitled/
sudo mdutil -E /Volumes/Untitled/
dot_clean -m /Volumes/Untitled/

Resources