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