http://mini.nidbox.com/diary/read/8640448
備份:
$ dd if=/dev/sda1 of=/xxx/path/sda1_bak.img
將 sda1 整個備份成一個檔 sda1_bak.img
$ dd if=/dev/sda1 | gzip > /xxx/path/sda1_bak.img.gz
也可以壓縮備份
$ dd if=/dev/sda1 of=/dev/sdb1
將 /dev/sda1 整個複製到 /dev/sdb1
$ dd if=/dev/sda of=/dev/sdb
整顆硬碟複製: sd1 複製到 sdb
還原:
$ dd if=/mnt/sdb1/sda1_bak.img of=/dev/sda1
例如 raspberry image 檔案的還原到 sd card:
$ dd if=/tmp/2014-01-07-wheezy-raspbian.img of=/dev/mmcblk0
5785600+0 records in
5785600+0 records out
2962227200 bytes (3.0 GB) copied, 2078.95 s, 1.4 MB/s
$ dd if=/tmp/2014-01-07-wheezy-raspbian.img of=/dev/mmcblk0 bs=4M (M 是大寫,加上 bs=4M 快非常多!)
706+1 records in
706+1 records out
2962227200 bytes (3.0 GB) copied, 516.177 s, 5.7 MB/s
real 8m36.206s
user 0m0.039s
sys 1m29.598s
另外 dd 其它用法
製作 swap 檔案
$ dd if=/dev/zero of=/tmp/swapfile64 bs=4k count=16384
16384+0 records in
16384+0 records out
67108864 bytes (67 MB) copied, 0.277933 s, 241 MB/s
產生 /tmp/swapfile 64MB 的檔案
$swapon /tmp/swapfile 可啟用這個 swap 檔
ps:上面 dd 指令回覆 67MB 是因為 dd 以 1k=1000bytes 來計算
產生一個 100MB 大檔
$ dd if=/dev/zero of=/tmp/file_100mb bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 5.87439 s, 17.8 MB/s
ps:上面 dd 指令回覆 105MB 是因為 dd 以 1k=1000bytes 來計算
據說 也可測記憶體的速度:
$ dd if=/dev/zero of=/dev/null bs=4M count=1000
1000+0 records in
1000+0 records out
4194304000 bytes (4.2 GB) copied, 14.1796 s, 296 MB/s
** Fujitsu u1010 小電腦
$ dd if=/dev/zero of=/dev/null bs=4M count=10000
10000+0 records in
10000+0 records out
41943040000 bytes (42 GB) copied, 4.38987 s, 9.6 GB/s
** AWS Micro Instance