Get a USB hub (7 port is common), plug the USB drives in, then run a script that copies the iso to one drive after another. USB itself sucks enough that trying to do them in parallel is likely asking for trouble.
Open Source
All about open source! Feel free to ask questions, and share news, and interesting stuff!
Useful Links
- Open Source Initiative
- Free Software Foundation
- Electronic Frontier Foundation
- Software Freedom Conservancy
- It's FOSS
- Android FOSS Apps Megathread
Rules
- Posts must be relevant to the open source ideology
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon from opensource.org, but we are not affiliated with them.
I have done a similar thing in the past, but to flash firmware onto any device with a certain USB descriptor that gets plugged in. It was a mess of USB hubs and cables, but it worked.
What I did was write a udev rule that checks for the vendor and product id of a newly plugged in device and calls a script when there's a match. The script then performs the flashing and logs the output.
In your case:
dd
the source USB to a file (make sure the partition you're dding is smalled than any target drive- Udev rule according to your needs (all the same product or different drives?)
- Script that dds the file you created earlier back to the newly plugged in drive.
Edit. Did this on a rpi3
Since you asked for windows, etcher can do multiple drives as of v1.4.3
https://blog.balena.io/etcher-now-with-multi-write-and-compute-module-support/
If you use a raspberry pi for each USB device, you could use multicast to distribute the iso across the network once and have each pi write it to the USB drive connected locally.
I also had a quick look around and found this:
One other idea I came across was to setup the devices as a raid array and write to the raid device.
Does your windows machine have WSL? I would just write a bash script that would DD the image to the drives. Keep in mind that you will be severely bandwidth limited by the USB interface, so it will take a long time. All of the ports on the controller share the same bandwidth. Ideally you would build a PC with lots of USB controller cards for that.
Is that true? I thought that pairs of USB-A ports shared the same PCIe lanes, and USB-C each got their own set?
Edit: thinking about it a bit more, I suppose it could depend on how the SOC/chipset allocates those lanes, but in my experience when writing a single USB I'm usually limited by the thermals of the USB, and writing well below the speed of the port. I suppose if you were writing many at once (or if your USBs were nice) that could bottleneck on the port speed.