Why dd takes so long?
When you use /dev/disk2s1 in the dd command, it represents a block interface to the underlying storage device. On the other hand, /dev/rdisk2s1 represents a raw character interface.
The block interface accesses the device using a cache buffer, which can introduce some delay in accessing the data. In contrast, the raw character interface accesses the device directly without using the cache buffer.
The difference in speed is due to the fact that the raw character interface (/dev/rdisk2s1) bypasses the kernel's caching system and writes directly to the underlying devices. As a result, write operations can be performed more efficiently, reducing the delay introduced by buffering.
In practice, when you use /dev/rdisk2s1, dd performs write operations directly on the device, avoiding buffering and thereby achieving faster processing. However, it's important to note that this difference in speed can vary depending on the operating system and hardware specifications.