dd 指令參考

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

本篇發表於 未分類。將永久鍊結加入書籤。

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>