Why is it called dd?
From it's man page (verbatim):
dd(1) - Linux man page
dd - convert and copy a file
Copy a file, converting and formatting according to the operands.
WHY is it called "dd" and not "cc"?
Is there a port for Windows NT based systems?
Yes, several of them.
Where can I find a "minimal" one?
There are UNXUTILS:
the whole package is around 3 Mb (binaries) and 36 Mbytes (source)
the "current" dd is 40960 bytes.
There is an older version (that probably does not do physical devices) here:
that is sized 32768 bytes.
Since it is an OPEN SOURCE project it should mean that you get the SOURCE code, right? (yes you can get it ) AND that this source is compilable, right? (NO this seemigly won't happen ).
Half the internet is full of normal peeps that ask "How can I recompile UNXUTILS?" and that get replies like:
- UNXUTILS is bad, get GnuWin32.
- UNXUTILS is old and not mantained.
- UNXUTILS use a downhill library that doesn't work.
- UNXUTILS is old, badly mantained, get CYGWIN port.
So you want dd and what happens?
You need to download the WHOLE STUFF, which is around 232 Mb of size.
Then you start looking for the stupid dd, and finally you find it in \GetGnuWin32\packages\coreutils-5.3.0-bin.zip\bin\ yes you could have got just coreutils-5.3.0-bin.zip, but noone told you that dd was actually in coreutils, that is anyway good, since dd won't run, asking for a libintl3.dll, 101,888 bytes in size, that you will find in \GetGnuWin32\packages\coreutils-5.3.0-dep.zip\bin\ together with another .dll, libiconv2.dll 898,048 bytes in size.
So you go to CYGWIN, and AGAIN you need to get an "automated" SETUP.EXE.
After you get it and it has connected to the internet, you try to find dd, and you find:
- Ddd (which is another thing)
- ddrescue (which is another thing)
Once finished you will have downloaded some 14 Mb of stuff.
dd.exe, 70158 bytes in size, will be in:
Now you have to find it's dependencies, which are in:
cygwin1.dll 2,666,500 bytes
cygintl-8.dll 31,232 bytes (which is OBVIOUSLY NOT in the above) but rather in:
cygiconv-2.dll 1,003,022 bytes from
cyggcc_s-1.dll 44,558 bytes from
So you think that the above is a piece of bloat and try to get the MINGW version, by going to MINGW:
obviously you cannot get a dd.exe from there and there is no easy way to know where it is among the zillion files here:
so you have once again to get an "installer" mingw-get-inst-20110802.exe thiss one is much worse than the Cygwin one (I didn't thought it was possible) as it has NO granularity you are basically forced into downloading a whole package, around 80 Mb.
Actually what you get is the actual programming environment, so you have to start again from scratch.
Maybe you want to get MSYS and NOT MINGW.
Of course dd is NOT in "coreutils":
nor in MSYS "CORE":
At this point you search a bit on the internet and find out that probably there is no compiled dd.exe in MINGW/MSYS, hey, wait, maybe it is in the fileutils:
too bad that "fileutils" does not exist (anymore) there is "file" (which is ANOTHER thing)
Time to move on.
Some of the smart peeps around the board will have probably said by now:
Ha, there is dd for windows:
Which of course I already know, and that is NOT a dd port but a re-write of it (in Delphi) with a few additions (nice ) and a few missing features (not important, I guess last time dd was used with the "convert" switch was 1987 or 1988 ).
Problem is that executable is 355,328, not at all "minimal".
Now, some even smarter peeps will say:
Which of course I already know, it is a "forensic oriented" dd.exe which by the way I often use.
Ha, have you not checked the FAU page?
dd.exe 901,120 bytes
NEEDED at least :
BTW if you don't have an English system (or a system set to English the FAU dd will try to translate it's usage in your language with results - at least for Italian - that calling "appalling" would be an euphemism).
Of course, when the going gets tough ... :
actually more like:
Bluto: And it ain't over now. 'Cause when the goin' gets tough...
[thinks hard of something to say]
Bluto: The tough get goin'! Who's with me? Let's go!
[Bluto runs out, alone; then returns]
Meet PLDD :
self-standing, biggish (pldd.exe 63,488 bytes) BUT includes a "timeout" and more than that the equivalent of a /dev/zero.
So we have several different morals from this story:
- When a "mainly DOS/NT" guy attempts to touch the "linux" world he is probably doomed to failure.
- Finding things (and the things made like you would like them to be) is not easy.
- Re-building them is even less easy.
- Everyone, and I mean everyone sucks at documenting or making accessible/usable things.
- Life is so full of problems that actually creating them yourself is foolish, just tackle any of the existing ones and you'll be occupied for several hours.
Will any of you create a compiled dd.exe that:
- needs NO external .dll's
- has NO "convert" options
- can access Physical devices both read and write
- has an internal /dev/zero
- it is smaller than the mentioned ones (ideally below the 40 Kb mark)