Linux系統(tǒng)中使用dd命令來(lái)轉(zhuǎn)換和拷貝文件
添加時(shí)間:2016-2-21 4:10:18
添加:
思海網(wǎng)絡(luò)
dd - 轉(zhuǎn)換和拷貝文件
當(dāng)進(jìn)行非強(qiáng)制的轉(zhuǎn)換的時(shí)候,使用指定的輸入和輸出塊大小拷貝文件 (默認(rèn)是從標(biāo)準(zhǔn)輸入到標(biāo)準(zhǔn)輸出。)
它每次從輸入讀取指定大小的一個(gè)塊(默認(rèn)是512字節(jié))。 如果使用 bs=bytes 選項(xiàng),并且沒(méi)有轉(zhuǎn)換,除了指定 sync, noerror, 或 notrunc 之外, 那么dd將把全部讀到的數(shù)據(jù)(可以比請(qǐng)求讀的少) 寫到獨(dú)立的輸出塊去。 這個(gè)輸出塊的長(zhǎng)度和讀到的數(shù)據(jù) 完全一樣,除非指定使用 sync(同步) 轉(zhuǎn)換,那樣的話,數(shù)據(jù)結(jié)尾處將追加NUL字符(或空格,見(jiàn)下)。
其他情況下,輸入的時(shí)候每次讀一個(gè)塊,然后處理,并將 輸出結(jié)果收集起來(lái),最后寫到指定大小的數(shù)據(jù)塊中去。最 終的輸出塊可能會(huì)比指定的大小短一些。
如果你想要在線看 manual, 可以試試:
dd --help
或是
info dd
如果你想要看看這個(gè)版本如何:
dd --version
輸入或輸出
dd if=[STDIN] of=[STDOUT]
強(qiáng)迫輸入或輸出的Size為多少Bytes
bs: dd -ibs=[BYTE] -obs=[SIZE]
強(qiáng)迫一次只做多少個(gè) Bytes
cbs=BYTES
跳過(guò)一段以后才輸出
seek=BLOCKS
跳過(guò)一段以后才輸入
skip=BLOCKS
當(dāng)然你可以拿這個(gè)來(lái)方便的拷貝光碟(注意,你的光碟是標(biāo)準(zhǔn)的 iso9660格式才可以這么做唷!)
dd if=/dev/cdrom of=cdrom.iso
其中 if 后面以及 of 后面的內(nèi)容依你的需求調(diào)整。
然后給系統(tǒng)這個(gè)指令就可以燒了:
cdrecord -v cdrom.iso
這篇不是在講 cdrecord 的,所以上面的指令是最為簡(jiǎn)單但是不一定能符合您的硬件環(huán)境...
功能:把指定的輸入文件拷貝到指定的輸出文件中,并且在拷貝過(guò)程中可以進(jìn)行格式轉(zhuǎn)換。可以用該命令實(shí)現(xiàn)DOS下的diskcopy命令的作用。先用dd命令把軟盤上的數(shù)據(jù)寫成硬盤的一個(gè)寄存文件,再把這個(gè)寄存文件寫入第二張軟盤上,完成diskcopy的功能。需要注意的是,應(yīng)該將硬盤上的寄存文件用rm命令刪除掉。系統(tǒng)默認(rèn)使用標(biāo)準(zhǔn)輸入文件和標(biāo)準(zhǔn)輸出文件。
if=file
從 file 中讀而不是標(biāo)準(zhǔn)輸入。
of=file
寫到 file 里去而不是標(biāo)準(zhǔn)輸出。除非指定 conv=notrunc ,否則, dd 將把 file 截為O字節(jié)(或由 seek= 選項(xiàng)指定的大小)
ibs=bytes
一次讀 bytes 字節(jié)。默認(rèn)是512。
obs=bytes
一次寫 bytes 字節(jié)。默認(rèn)是512。
bs=bytes
一次讀和寫 bytes 字節(jié)。這將覆蓋 ibs 和 obs 設(shè)定的值(并且,設(shè)定 bs 不等于同時(shí)將 ibs 和 obs 設(shè)為同一個(gè)值,至少在 只使用 sync, noerror 或 notrunc 轉(zhuǎn)換時(shí)是這樣的。因?yàn)閎s規(guī)定,每個(gè)輸入塊都應(yīng)作為單獨(dú) 的數(shù)據(jù)塊拷貝到輸出,而不把較短的塊組合到一起)。
cbs=bytes
為 block 轉(zhuǎn)換和 unblock 轉(zhuǎn)換指定轉(zhuǎn)換塊的大小。
skip=blocks
在拷貝之前,跳過(guò)輸入文件的前 blocks 塊,每塊大小為 ibs-byte 字節(jié)。
seek=blocks
在拷貝之前,跳過(guò)輸出文件的前 blocks 塊,每塊大小為 obs-byte 字節(jié)。
count=blocks
只拷貝輸入文件的前 blocks 塊(每塊的大小為 ibs-byte 字節(jié)),而不是全部?jī)?nèi)容,直到文件末尾。
轉(zhuǎn)換
conv=轉(zhuǎn)換[,轉(zhuǎn)換]...
將文件按 轉(zhuǎn)換 參數(shù)指定的方式轉(zhuǎn)換(在lq,rq兩邊沒(méi)有空格)。
轉(zhuǎn)換方式包括:
ascii
將EBCDIC轉(zhuǎn)換成ascii。
ebcdic
將ascii轉(zhuǎn)換成ebcdic。
ibm
將ascii轉(zhuǎn)換成alternative ebcdic。
block
每一行輸入,無(wú)論長(zhǎng)短,輸出都是 cbs 字節(jié),并且其中的lq換行rq(NEWLINE,即c中的')用 空格替換。如有必要,行尾會(huì)填充空格。
unblock
用lq換行rq替換每個(gè)輸入塊( cbs 字節(jié)大小)末尾的空格。
lcase
將大寫字母轉(zhuǎn)換成小寫。
ucase
將小寫字母轉(zhuǎn)換成大寫。
swab
交換每對(duì)輸入字節(jié)。如果讀入的字節(jié)數(shù)是奇數(shù),最后 一個(gè)字節(jié)只是簡(jiǎn)單的復(fù)制到輸出(因?yàn)闆](méi)有能跟它交換的 字節(jié)了)(POSIX 1003.26,PASC翻譯1003.2 3號(hào)和4號(hào))。
noerror
發(fā)生讀錯(cuò)誤時(shí),繼續(xù)進(jìn)行。
notrunc
不截?cái)噍敵鑫募?nbsp;
sync
用0填充到每個(gè)輸入塊的末尾,使其大小為 ibs 字節(jié)。
例:
代碼如下:
[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全盤數(shù)據(jù)備份到指定路徑的image文件
[root@localhost ~]# dd if=/dev/hdx | gzip >/path/to/image.gz #備份/dev/hdx全盤數(shù)據(jù),并利用gzip工具進(jìn)行壓縮,保存到指定路徑
[root@localhost ~]# dd if=/path/to/image of=/dev/hdx # 將備份文件恢復(fù)到指定盤
[root@localhost ~]# gzip -dc /path/to/image.gz | dd of=/dev/hdx #將壓縮的備份文件恢復(fù)到指定盤
[root@localhost ~]# dd if=/dev/hdx of=/path/to/image count=1 bs=512 #備份磁盤開(kāi)始的512Byte大小的MBR信息到指定文件
[root@localhost ~]# dd if=/dev/cdrom of=/root/cd.iso #拷貝光盤數(shù)據(jù)到root文件夾下,并保存為cd.iso文件
關(guān)鍵字:Linux、系統(tǒng)、dd、命令
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解