Why use dd instead of cp to create bootable disk?
One difference is efficiency, and thus speed. For example, you could get the bytes one by one and copy them to the device, with cat
:
cat archlinux.iso > /dev/sdx
In theory cat will move each byte independently. That is a slow process, although in practice there will be buffers involved.
With dd
and a good block size (usually related to the physical block size) it will be faster.
With cp
it depends on the buffer size used by cp
(not under your control) and other buffers on the way. Theoretically the efficiency lies between cat
and dd
.
An analogy: it is like pouring the contents of a glass into another glass.
cat
will do it one drop at a time.
dd
will use a spoon, and you define how big the spoon is (system limits apply)
cp
will use its own spoon, and you don't know how big it is.