How do you manage multiple microSD cards (with multiple RPi systems)?

My collection of microSD cards is getting larger and they don't really lend themselves to adding a label. My collection of RPi (and other SBC systems) is also growing.

I'm wondering what methods other people are using to keep track of what is stored on each microSD card.

One possibility is to store something in /boot (so that a larger collection of operating systems can read it). As a side question, what file(s) currently in /boot would serve as identification of where (and/or when) that image was created.

There's a pretty good naming convention for the images we write to the microSD card along with things like MD5 or SHA256 checksums but once the image is flashed to the microSD card, that information is lost.

Please share your solution to this issue. Hopefully, we can all learn from each other.

I have two methods for helping identify SD cards:

  1. I'll attach a small piece of masking tape to the card so that it hangs well off the end opposite the electrical contacts, and fold the tape on to itself and a bit back on to the other side of the card. I'll then write some short, descriptive name on the tape. The tape also makes the card easier to spot if a drop it.

  2. I add a "readmeJPM.txt" in the /boot partition (the JPM is my initials, in case the image already had a readme file on it. In this I include the source of the image on the card along with any modifications I made to the image - for example, plugins I added to OctoPrint, system extensions. For additions with more complex setup required, I might include notes on what setup work I did. If something on the card requires a username and password, I'll include the username and maybe a password hint, especially if it's a card I might not use regularly enough to remember it.

Same but instead of masking tape I use a label printer

I put mine in small resealable bags in a tin.

If I'm going to trash them to reuse, I back them up with dd to an image file, which I keep on a Raid 5 NAS.

For management of active devices, I use Ansible with an inventory file and Ansible scripts to install/reinstall using the hostname of the device. I can drop any file I want onto the SD card using this method, typically a set of utility scripts that live in ~/home/utils - probably creating service startup scripts or cronjobs as required.

When I upgraded my OctoPi's to Python3 I backed up each one in turn from the Octoprint GUI, downloaded the backup, reimaged with RPiImager and restored the backup after correcting the hostname before ejecting the card from the Ubuntu laptop I use for daily work. Worked perfectly - thanks @foosel