WDD is a lightweight, fast, and native Windows implementation of the classic Unix dd utility.
It’s written in C, supports Unicode paths, and provides powerful low‑level block copying and disk imaging features.
- ✅ Native Windows API (
ReadFile/WriteFile) for performance - ✅ Unicode path support (wide character)
- ✅ Raw device access (
\\.\PHYSICALDRIVE#) for imaging disks and USB drives - ✅ Sparse file support (
conv=sparse) - ✅ Standard
dd‑style options:bs,count,skip,seek,conv,iflag,oflag,status - ✅
--helpand--versionsupport - ✅ Optionally packaged via an installer (InnoSetup)
Get the latest installers and binaries from the Releases section:
Each release contains:
wdd_setup.exe– Windows installer
Run wdd_setup.exe and follow the wizard to install WDD system‑wide (e.g., C:\Program Files\WDD).
⚠️ To access raw physical devices like\\.\PHYSICALDRIVE0, you must run your terminal as Administrator.
wdd if=input.file of=output.file bs=1Mwdd if=source.img of=target.img bs=4M skip=1 seek=1wdd if=input of=output bs=1M status=progresswdd if=input of=output bs=4M iflag=direct oflag=directwdd if=input of=output conv=sparsewdd --help
wdd --versionof= can overwrite entire disks without confirmation. Carefully verify your device paths before running.
- Always run as Administrator for raw disk access.
- Disconnect drives you do not intend to touch to avoid accidents.
- Use large block sizes (
bs=4Mor higher) for better performance on large copies.
To build wdd yourself using MinGW use the shipped compile.bat.
WDD is released under the MIT License.
Contributions are welcome!
- ⭐ Star the project
- 🐛 Report issues
- 🧠 Suggest enhancements
- 💻 Submit pull requests