Skip to main content
1 of 3
sudodus
  • 6.7k
  • 17
  • 27

If you write to a slow drive, for example a USB drive, you may want to know not only the progress of the command dd itself, but also the progress of actual writing to the target device.

  • One way way know when the process has finished is to run sync after the dd command and wait for it to finish flushing the buffers, so that the terminal window returns to prompt. But there is still no display of progress. You can monitor the progress of flushing by watching the 'dirty' data for example with the shellscript watch-flush, that is part of mkusb. This shell-script uses data from the system file /proc/meminfo.

  • It is more straightforward to modify the dd command line to make it flush the buffers regularly, for example after writing each mibibyte, and at the same time show the progress, for example

    sudo dd if=file.img bs=1M of=/dev/sdx status=progress oflag=dsync
    

    Please check and double-check, that you specify the correct target device. Otherwise you might overwrite valuable data. dd does what you tell it to do without any questions, and for this reason it has earned the nickname 'Data Destroyer'.

  • You can also use mkusb to perform the cloning task. It will wrap a safety belt around dd: help you identify the target device and let you double-check it before you launch the process.

sudodus
  • 6.7k
  • 17
  • 27