First of all, if there's a better forum for supporting applications than "General discussion", then please feel free to move this topic there.
I'm a very advanced user and I'm very happy with the command line. I can write compressed images on-the-fly with pipes and dd. However I have some non-cli-wizzard friends who wants to use RPis too, and frankly I'm bored of creating SD cards for them. The officially recommended image writer tool is ridiculously bloated (hundreds of megabytes, dear Lord!), has advertisements and now it raises privacy concerns as well (seriously?). Long story short, I've decided to create a small and useful tool which is multi-platform and follows the K.I.S.S. principle.
So let me introduce USBImager to write compressed disk images to USB drives.
- Non-bloated, small. When I say small, I mean really-really super small, about 100K on each platform.
- Portable executable, dependency free and no installation required
- Free and Open Source, MIT licensed
- Can read raw images and .gz, .bz2, .xz (LZMA), .zip (PKZIP and ZIP64) compressed images
- Tries to be user-friendly by disallowing to write to the system disk
- Can verify what's written by comparing the disk to the image
- Minimalist, yet very informative interface
- Estimates remaining time
Please note that I don't get paid for this, I only did it in my spare time. I really wish with some help we can make this tool suitable to be the official USB image writer for the Raspberry Pi. But I cannot guarantee anything, and under no circumstances can I held responsible for potentially destroyed filesystems and loss of data using USBImager.
Right now this tool is experimental. It compiles without errors on all platforms, and I did all the basic tests. I'm now looking for brave volunteers for beta testers and contributors. I have only limited set of USB sticks, and my access to MacOSX and Windows machines is also limited, so testing the tool on those platforms is extremely problematic for me, any help would be appreciated.
As far as I know, drives are detected fine on all platforms, including disk capacity, vendor and model strings. I've noticed that USB drives are not always marked as removable under Windows, and I've found some forums where people are saying the same for Linux (I haven't run into this, but let me know). Unmounting and locking (claiming) should also work fine, however I only now this for sure under Linux. I've noticed phtread issues under MacOSX.
For hacking the source, it is extremely simple, no more than a handful of files, and written in ANSI C. The input.c file contains the code to read and uncompress the input file. The output is handled in disks_*.c, one for each platform. Finally the user interface is managed in the main_*.c files. Data decompression is tested pretty well, but if you want to play with this, you can edit the Makefile and set DISKS_TEST to 1. This will add a test.bin file "USB device" target. Running usbimager with `-v` command line argument, it will output verbose messages.