dd - 轉換和拷貝文件
當進行非強制的轉換的時候,使用指定的輸入和輸出塊大小拷貝文件 (默認是從標準輸入到標準輸出。)
它每次從輸入讀取指定大小的一個塊(默認是512字節)。 如果使用 bs=bytes 選項,并且沒有轉換,除了指定 sync, noerror, 或 notrunc 之外, 那么dd將把全部讀到的數據(可以比請求讀的少) 寫到獨立的輸出塊去。 這個輸出塊的長度和讀到的數據 完全一樣,除非指定使用 sync(同步) 轉換,那樣的話,數據結尾處將追加NUL字符(或空格,見下)。
其他情況下,輸入的時候每次讀一個塊,然后處理,并將 輸出結果收集起來,最后寫到指定大小的數據塊中去。最 終的輸出塊可能會比指定的大小短一些。
如果你想要在線看 manual, 可以試試:
dd --help
或是
info dd
如果你想要看看這個版本如何:
dd --version
輸入或輸出
dd if=[STDIN] of=[STDOUT]
強迫輸入或輸出的Size為多少Bytes
bs: dd -ibs=[BYTE] -obs=[SIZE]
強迫一次只做多少個 Bytes
cbs=BYTES
跳過一段以后才輸出
seek=BLOCKS
跳過一段以后才輸入
skip=BLOCKS
當然你可以拿這個來方便的拷貝光碟(注意,你的光碟是標準的 iso9660格式才可以這么做??!)
dd if=/dev/cdrom of=cdrom.iso
其中 if 后面以及 of 后面的內容依你的需求調整。
然后給系統這個指令就可以燒了:
cdrecord -v cdrom.iso
這篇不是在講 cdrecord 的,所以上面的指令是最為簡單但是不一定能符合您的硬件環境...
功能:把指定的輸入文件拷貝到指定的輸出文件中,并且在拷貝過程中可以進行格式轉換。可以用該命令實現DOS下的diskcopy命令的作用。先用dd命令把軟盤上的數據寫成硬盤的一個寄存文件,再把這個寄存文件寫入第二張軟盤上,完成diskcopy的功能。需要注意的是,應該將硬盤上的寄存文件用rm命令刪除掉。系統默認使用標準輸入文件和標準輸出文件。
if=file
從 file 中讀而不是標準輸入。
of=file
寫到 file 里去而不是標準輸出。除非指定 conv=notrunc ,否則, dd 將把 file 截為O字節(或由 seek= 選項指定的大?。?
ibs=bytes
一次讀 bytes 字節。默認是512。
obs=bytes
一次寫 bytes 字節。默認是512。
bs=bytes
一次讀和寫 bytes 字節。這將覆蓋 ibs 和 obs 設定的值(并且,設定 bs 不等于同時將 ibs 和 obs 設為同一個值,至少在 只使用 sync, noerror 或 notrunc 轉換時是這樣的。因為bs規定,每個輸入塊都應作為單獨 的數據塊拷貝到輸出,而不把較短的塊組合到一起)。
cbs=bytes
為 block 轉換和 unblock 轉換指定轉換塊的大小。
skip=blocks
在拷貝之前,跳過輸入文件的前 blocks 塊,每塊大小為 ibs-byte 字節。
seek=blocks
在拷貝之前,跳過輸出文件的前 blocks 塊,每塊大小為 obs-byte 字節。
count=blocks
只拷貝輸入文件的前 blocks 塊(每塊的大小為 ibs-byte 字節),而不是全部內容,直到文件末尾。
轉換
conv=轉換[,轉換]...
將文件按 轉換 參數指定的方式轉換(在lq,rq兩邊沒有空格)。
轉換方式包括:
ascii
將EBCDIC轉換成ascii。
ebcdic
將ascii轉換成ebcdic。
ibm
將ascii轉換成alternative ebcdic。
block
每一行輸入,無論長短,輸出都是 cbs 字節,并且其中的lq換行rq(NEWLINE,即c中的')用 空格替換。如有必要,行尾會填充空格。
unblock
用lq換行rq替換每個輸入塊( cbs 字節大?。┠┪驳目崭?。
lcase
將大寫字母轉換成小寫。
ucase
將小寫字母轉換成大寫。
swab
交換每對輸入字節。如果讀入的字節數是奇數,最后 一個字節只是簡單的復制到輸出(因為沒有能跟它交換的 字節了)(POSIX 1003.26,PASC翻譯1003.2 3號和4號)。
noerror
發生讀錯誤時,繼續進行。
notrunc
不截斷輸出文件。
sync
用0填充到每個輸入塊的末尾,使其大小為 ibs 字節。
例:
[root@localhost ~]# dd if=/dev/hdx of=/dev/hdy #將本地的/dev/hdx整盤備份到/dev/hdy
[root@localhost ~]# dd if=/dev/hdx of=/path/to/image #將/dev/hdx全盤數據備份到指定路徑的image文件
[root@localhost ~]# dd if=/dev/hdx | gzip >/path/to/image.gz #備份/dev/hdx全盤數據,并利用gzip工具進行壓縮,保存到指定路徑
[root@localhost ~]# dd if=/path/to/image of=/dev/hdx # 將備份文件恢復到指定盤
[root@localhost ~]# gzip -dc /path/to/image.gz | dd of=/dev/hdx #將壓縮的備份文件恢復到指定盤
[root@localhost ~]# dd if=/dev/hdx of=/path/to/image count=1 bs=512 #備份磁盤開始的512Byte大小的MBR信息到指定文件
[root@localhost ~]# dd if=/dev/cdrom of=/root/cd.iso #拷貝光盤數據到root文件夾下,并保存為cd.iso文件