dd是
linux/
unix 下的乙個非常有用的命令,作用是用指定大小的塊拷貝乙個檔案,並在拷貝的同時進行指定的轉換。
dd指令使用
語法格式
dd [option]
dd指令選項詳解
if=file:輸入檔名,預設為標準輸入
of=file:輸出檔名,預設為標準輸出
ibs=bytes:一次讀入 bytes 個位元組(即乙個塊大小為 bytes 個位元組)
obs=bytes:一次寫 bytes 個位元組(即乙個塊大小為 bytes 個位元組)
bs=bytes:同時設定讀寫塊的大小為 bytes ,可代替 ibs 和 obs
cbs=bytes:一次轉換 bytes 個位元組,即轉換緩衝區大小
skip=blocks:從輸入檔案開頭跳過 blocks 個塊後再開始複製
seek=blocks:從輸出檔案開頭跳過 blocks 個塊後再開始複製。(通常只有當輸出檔案是磁碟或磁帶時才有效)
count=blocks:僅拷貝 blocks 個塊,塊大小等於 ibs 指定的位元組數
conv=ascii:把ebcdic碼轉換為ascil碼。
conv=ebcdic:把ascil碼轉換為ebcdic碼。
conv=ibm:把ascil碼轉換為alternate ebcdic碼。
conv=block:把變動位轉換成固定字元。
conv=ublock:把固定位轉換成變動位。
conv=ucase:把字母由小寫轉換為大寫。
conv=lcase:把字母由大寫轉換為小寫。
conv=notrunc:不截短輸出檔案。
conv=swab:交換每一對輸入位元組。
conv=noerror:出錯時不停止處理。
conv=sync:把每個輸入記錄的大小都調到ibs的大小(用nul填充)。
注意:指定數字的地方若以下列字元結尾乘以相應的數字:b=512, c=1, k=1024, w=2, xm=number m,kb=1000,k=1024,mb=1000*1000,m=1024*1024,gb=1000*1000*1000,g=1024*1024*1024
dd使用例項
假設了如下的情況:
要備份的資料檔案:30720kb
block 0 =8 kb.
raw offset 64 kb.
設定 bs=8k
1、從raw裝置備份到raw裝置
dd if=/dev/rsd1b of=/dev/rsd2b bs=8k skip=8 seek=8 count=3841
2、裸裝置到檔案系統
dd if=/dev/rsd1b of=/backup/df1.dbf bs=8k skip=8 count=3841
3、檔案系統到裸裝置
dd if=/backup/df1.dbf of=/dev/rsd2b bs=8k seek=8
4、檔案系統到檔案系統,你可以為了提公升i/o把bs設為較高的數值
dd if=/oracle/dbs/df1.dbf of=/backup/df1.dbf bs=1024k
5、備份/dev/hdx全盤資料,並利用gzip工具進行壓縮,儲存到指定路徑(bzip2工具也一樣可使用)
dd if=/dev/hdx | gzip > /path/to/image.gz
6、生成1g的虛擬塊裝置sparse file(稀疏檔案)
dd if=/dev/zero of=1g.img bs=1m seek=1000 count=0
sparse file是什麼,稀疏檔案,也就是說,是乙個擁有空的空間的檔案,磁碟塊將並沒分配給這些檔案。如果這些空的空間填滿ascii的null字元,那麼檔案才會是實際的大小。
7、拷貝光碟資料到backup資料夾下,並儲存為cd.iso檔案,再進行燒錄
dd if=/dev/cdrom of=/backup/cd.iso
cdrecord -v cd.iso
8、將記憶體裡的資料拷貝到backup目錄下的mem.bin檔案
dd if=/dev/mem of=/backup/mem.bin bs=1024
9、將軟碟機資料備份到當前目錄的disk.img檔案
dd if=/dev/fd0 of=disk.img count=1 bs=1440k
10、將備份檔案恢復到指定盤
dd if=/backup/df1.dbf of=/dev/rsd1b
11、將壓縮的備份檔案恢復到指定盤
gzip -dc /path/to/image.gz | dd of=/dev/hdx
12、測試磁碟寫能力
time dd if=/dev/zero of=/test.dbf bs=8k count=300000
因為/dev/zero是乙個偽裝置,它只產生空字元流,對它不會產生io,所以,io都會集中在of檔案中,of檔案只用於寫,所以這個命令相當於測試磁碟的寫能力。
13、測試磁碟讀能力
time dd if=/dev/sdb1 of=/dev/null bs=8k
因為/dev/sdb1是乙個物理分割槽,對它的讀取會產生io,/dev/null是偽裝置,相當於黑洞,of到該裝置不會產生io,所以,這個命令的io只發生在/dev/sdb1上,也相當於測試磁碟的讀能力。
14、測試同時讀寫能力
time dd if=/dev/sdb1 of=/test1.dbf bs=8k
這個命令下,乙個是物理分割槽,乙個是實際的檔案,對它們的讀寫都會產生io(對/dev/sdb1是讀,對/test1.dbf是寫),假設他們都在乙個磁碟中,這個命令就相當於測試磁碟的同時讀寫能力
15、備份磁碟開始的512byte大小的mbr資訊到指定檔案
dd if=/dev/hdx of=/path/to/image count=1 bs=512
16、恢復mbr
dd if=/mnt/windows/linux.lnx of=/dev/hda bs=512 count=1
17、 得到最恰當的block size。 通過比較dd指令輸出中所顯示的命令執行時間(選時間最少的那個),即可確定系統最佳的block size大小
dd if=/dev/zero bs=1024 count=1000000 of=/root/1gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1gb.file
本文**:
dd命令詳解
dd 用指定大小的塊拷貝乙個檔案,並在拷貝的同時進行指定的轉換。注意 指定數字的地方若以下列字元結尾,則乘以相應的數 字 b 512 c 1 k 1024 w 2 引數注釋 1.if 檔名 輸入檔名,預設為標準輸入。即指定原始檔。if input file 2.of 檔名 輸出檔名,預設為標準輸出。...
dd命令詳解
dd 用指定大小的塊拷貝乙個檔案並在拷貝的同時進行指定的轉換.注意 指定數字的地方若以下列字元結尾,則乘以相應的數字 b 512 c 1 k 1024 w 2 引數注釋 1.if 檔名 輸入檔名,預設為標準輸入。即指定原始檔。if input file 2.of 檔名 輸出檔名,預設為標準輸出。即指...
dd命令打包多個檔案 dd命令詳解
一 dd命令的解釋 dd 用指定大小的塊拷貝乙個檔案,並在拷貝的同時進行指定的轉換。注意 指定數字的地方若以下列字元結尾,則乘以相應的數 字 b 512 c 1 k 1024 w 2 引數注釋 1.if 檔名 輸入檔名,預設為標準輸入。即指定原始檔。if input file 2.of 檔名 輸出檔...