dd指令是Linux/Unix下的一個很常見的檔案拷貝工具。
我們先列下dd命名的常用的參數,再詳細分析:
bs=BYTES read and write up to BYTES bytes at a time
cbs=BYTES convert BYTES bytes at a time
conv=CONVS convert the file as per the comma separated symbol list
count=BLOCKS copy only BLOCKS input blocks
ibs=BYTES read up to BYTES bytes at a time (default: 512)
if=FILE read from FILE instead of stdin
iflag=FLAGS read as per the comma separated symbol list
obs=BYTES write BYTES bytes at a time (default: 512)
of=FILE write to FILE instead of stdout
oflag=FLAGS write as per the comma separated symbol list
seek=BLOCKS skip BLOCKS obs-sized blocks at start of output
skip=BLOCKS skip BLOCKS ibs-sized blocks at start of input
status=noxfer suppress transfer statistics
1. dd if=/dev/block/block0 of=/dev/block/block1
直接把block0的資料拷貝到block1,預設每一次讀取及寫入都是512位元組。
2. dd if =/dev/block/block0 of=/dev/block/block1 ibs=512k obs=1M skip=20 seek=50 count=20
把block0偏移10M(512k*20)的地方,讀取10M(512k*20)的資料,寫入到block1偏移50M(1M*50)的地方,每一次讀512k,每一次寫入1M
3. dd if =/dev/block/block0 of=/dev/block/block1 bs=1M skip=20 seek=50 count=20
如果每次讀與每次寫的資料相同,即ibs=obs, 則可使用bs代替
4. dd if=/dev/block/block0 of=/udsik/block0_dump.img
把block0分區鏡像dump到U盤中,存儲為檔案block0_dump.img
5. dd if=/udsik/block0.img of=/dev/block/block0
把U盤中的block0.img更新到block0分區