Well, precisely. Many of the hobbyist systems only support a single flash card. How, indeed, do you copy SD data?
The answer is you download it to your “real” machine, and then upload it back on to a new card. Or, you could use the host to build the card itself directly from the data.
Playing “swap the floppy” doesn’t work very will with a, say, 8MB partition, 2 CF cards, and 64K of RAM. Even if you could utilize the entirety of RAM, that’s 128 “swaps”.
Of course, back in the day, we didn’t “copy” hard drives, not really. Rather, we streamed them to tape, carted those over, and reloaded them. Tape offered comparable density to the hard drive itself, robustness in portability, and reasonable read and write performance.
Heck, on the Alpha Micros, we use VHS tapes and off the shelf VHS recorders much like the micro industry used cassettes. Later, these mostly got replaced by Exabyte drives utilizing 8mm video tapes for storage.
Mind, today, if you have a 115,200 baud serial connection (with hardware that can actually sustain 115K), that’ll download an 8M partition in under 15 minutes.
Of course, today the use cases are far different. Rarely, if ever, are the legacy systems a source of content or data. Rather, they’re the destination. All of the work is done on modern machines, crossassembled/compiled, written to fast media over fast interfaces, and then plugged in to the devices.
But this is one of the reasons why when I was approaching the design of a custom build, I settled on making USB connectivity a primary goal. The premise is to get interface the CPU to a “super I/O” device that can bridge to modern protocols like USB and TCP/IP. Once that bridge is made, you can plug as many USB fobs as you like in to a off the shelf hub and copy to your hearts content, or stream over TCP to a remote destination.
It doesn’t work yet, but I have all sorts of schemes in my head incrementally marching to that goal.