Linux下面使用dd命令烧录U盘并查看执行进度

分享到:

烧录U盘

先用fdisk来查看U盘的盘符

1sudo fdisk -l

再用dd命令来写数据到U盘

1sudo dd if=/home/paul/Downloads/test.iso of=/dev/sdc bs=1M count=10000

查看执行进度

假定需要每5秒输出dd的进度,可以使用下面几种方法。新开一个命令行窗口,执行下面的命令,注意命令上面可能需要加上sudo

方法一:

1watch -n 5 pkill -USR1 ^dd$

方法二:

1watch -n 5 killall -USR1 dd

方法三:

1while killall -USR1 dd; do sleep 5; done

方法四:

1while (ps auxww |grep " dd " |grep -v grep |awk '{print $2}' |while read pid; do kill -USR1 $pid; done) ; do sleep 5; done

上述四种方法中使用三个命令:pkill、killall、kill向dd命令发送SIGUSR1信息,dd命令进程接收到信号之后就打印出自己当前的进度。

看到的效果类似:

 1772+0 records in
 2772+0 records out
 3809500672 bytes (810 MB, 772 MiB) copied, 117.321 s, 6.9 MB/s
 4791+0 records in
 5791+0 records out
 6829423616 bytes (829 MB, 791 MiB) copied, 122.737 s, 6.8 MB/s
 7809+0 records in
 8809+0 records out
 9848297984 bytes (848 MB, 809 MiB) copied, 128.148 s, 6.6 MB/s
10824+0 records in
11824+0 records out
12864026624 bytes (864 MB, 824 MiB) copied, 132.425 s, 6.5 MB/s
13843+0 records in
14843+0 records out
15883949568 bytes (884 MB, 843 MiB) copied, 137.895 s, 6.4 MB/s
16862+0 records in
17862+0 records out
18903872512 bytes (904 MB, 862 MiB) copied, 143.285 s, 6.3 MB/s
19877+0 records in
20877+0 records out
21919601152 bytes (920 MB, 877 MiB) copied, 147.639 s, 6.2 MB/s