If all you are doing is the above, then you don&#x27;t need dd at all.  pv will act like dd (but with stdin&#x2F;out) and uses a sensible buffer size you can override.  Your first example becomes:<p><pre><code>  pv --buffer-size 1m &lt; &#x2F;dev&#x2F;sda &gt; sda.file
</code></pre>
<a href="http:&#x2F;&#x2F;www.ivarch.com&#x2F;programs&#x2F;quickref&#x2F;pv.shtml" rel="nofollow">http:&#x2F;&#x2F;www.ivarch.com&#x2F;programs&#x2F;quickref&#x2F;pv.shtml</a><p><pre><code>  -B BYTES, --buffer-size BYTES
    Use a transfer buffer size of BYTES bytes. A suffix of &quot;k&quot;, &quot;m&quot;, &quot;g&quot;, or
    &quot;t&quot; can be added to denote kilobytes (*1024), megabytes, and so on. The 
    default buffer size is the block size of the input file&#x27;s filesystem 
    multiplied by 32 (512kb max), or 400kb if the block size cannot be 
    determined.
</code></pre>
pv is great tool and works really well.  On Linux you can even point it at other process ids, and it will automatically scan their open file descriptors and show progress of relevant ones.