Portable by standard. Break a leg!
A cross-platform disk image writer for Unix and Unix-like systems, with both GTK GUI and CLI modes.
UnixImage is a straightforward image writer built in C for people who want a native-feeling tool instead of a giant kitchen-sink app.
It is designed to write disk images to removable media with a GUI when GTK3 is available, while still supporting a CLI-only build for lean systems and minimal environments.
- Writes disk images to target devices
- Supports both GUI and CLI builds
- Detects many common disk image formats
- Handles several compressed image formats
- Includes optional verification after writing
- Includes sync-write support
- Exposes block size, partition, and bootable options in the GUI
- Ships with desktop integration assets and an install script
uniximage.c- main source fileinstall.sh- install helper that builds and installs the appuniximage.desktop- desktop entryuniximage.svg- scalable app iconuniximage.png- 256x256 iconuniximage-128.png- 128x128 iconuniximage-48.png- 48x48 iconLICENSE- GPLv3README.md- this file
- Linux
- FreeBSD
- Linux
- macOS
- FreeBSD
- DragonFly BSD
- OpenBSD
- NetBSD
- Solaris / illumos
- AIX
- HP-UX
- Other Unix-like targets may compile or partially work, but are not guaranteed
- ISO
- IMG
- RAW
- DMG
- VHD
- VHDX
- VDI
- VMDK
- QCOW
- QCOW2
- WIM
- SWM
- XZ
- GZ
- BZ2
- ZSTD
- LZ4
- ZIP
GUI mode requires GTK3.
CLI mode only requires a C compiler, libc, and pthreads.
cc -o uniximage uniximage.c $(pkg-config --cflags --libs gtk+-3.0) -lpthreadcc -o uniximage uniximage.c -DCLI_MODE -lpthreadapt install build-essential libgtk-3-dev pkg-config
cc -o uniximage uniximage.c $(pkg-config --cflags --libs gtk+-3.0) -lpthreaddnf install gcc gtk3-devel pkgconf-pkg-config
cc -o uniximage uniximage.c $(pkg-config --cflags --libs gtk+-3.0) -lpthreadpacman -S base-devel gtk3 pkgconf
cc -o uniximage uniximage.c $(pkg-config --cflags --libs gtk+-3.0) -lpthreadpkg install gtk3 pkgconf
cc -o uniximage uniximage.c $(pkg-config --cflags --libs gtk+-3.0) -lpthreadpkg_add gtk+3 pkgconf
cc -o uniximage uniximage.c $(pkg-config --cflags --libs gtk+-3.0) -lpthreadpkgin install gtk3 pkgconf
cc -o uniximage uniximage.c $(pkg-config --cflags --libs gtk+-3.0) -lpthreadbrew install gtk+3 pkg-config
cc -o uniximage uniximage.c $(pkg-config --cflags --libs gtk+-3.0) -lpthreadThe repository includes an install script that builds the CLI version, attempts the GTK GUI build, and installs the binary, desktop file, and icons under /usr/local by default.
sudo ./install.shTo install somewhere else:
sudo INSTALL_PREFIX=/usr ./install.shsudo ./uniximagesudo ./uniximage -i image.iso -d /dev/sdX
sudo ./uniximage -i image.iso -d /dev/sdX -V -y
sudo ./uniximage --list- Root privileges are generally required for writing directly to block devices
- GTK3 is optional, not mandatory
- Linux and FreeBSD are the currently tested targets
- Other targets should be treated as experimental until verified
GPLv3
I understand, and im fully aware im highly completionist. I aim for posix standard philosophy for Unix!