Linux使用dd命令來復(fù)制和轉(zhuǎn)換數(shù)據(jù)的操作方法
簡(jiǎn)介
Linux
中的 dd
命令是一個(gè)功能強(qiáng)大的數(shù)據(jù)復(fù)制和轉(zhuǎn)換實(shí)用程序。它以較低級(jí)別運(yùn)行,通常用于創(chuàng)建可啟動(dòng)的 USB
驅(qū)動(dòng)器、克隆磁盤和生成隨機(jī)數(shù)據(jù)等任務(wù)。
dd
全稱可以為:data duplicator
、disk destroyer
和 Data Definition
功能和能力
磁盤映像
:創(chuàng)建整個(gè)磁盤或分區(qū)的精確、逐位副本數(shù)據(jù)擦除
:使用零或隨機(jī)數(shù)據(jù)安全地覆蓋驅(qū)動(dòng)器文件轉(zhuǎn)換
:ASCII 和 EBCDIC 之間的轉(zhuǎn)換、字節(jié)順序交換和文件填充數(shù)據(jù)恢復(fù)
:通過忽略讀取錯(cuò)誤從故障驅(qū)動(dòng)器讀取數(shù)據(jù)可啟動(dòng)媒體創(chuàng)建
:將磁盤映像寫入 USB 驅(qū)動(dòng)器或 SD 卡存儲(chǔ)性能測(cè)試
:對(duì)驅(qū)動(dòng)器寫入速度進(jìn)行粗略的基準(zhǔn)測(cè)試
語(yǔ)法
dd if=<input_file> of=<output_file> [options]
if
:輸入文件(源文件或設(shè)備,例如/dev/sda
、/dev/zero
)of
:輸出文件(目標(biāo)文件或設(shè)備,例如,/dev/sdb
,myfile.img
)Options
:自定義的行為選項(xiàng)
常用選項(xiàng)
bs=[BYTES]
:將輸入和輸出塊大小都設(shè)置為BYTES
塊大小表示 dd
命令每次輸入或輸出一次性讀取或?qū)懭氲臄?shù)據(jù)大小
count=[N]
:僅復(fù)制N
個(gè)輸入塊skip=[N]
:開始復(fù)制之前跳過輸入文件中的N
個(gè)塊seek=[N]
:開始寫入之前跳過輸出文件中的N
個(gè)塊conv=[TYPE]
:指定轉(zhuǎn)換類型(例如,sync、noerror、notrunc
)status=[LEVEL]
:控制輸出詳細(xì)程度(例如,none、 noxfer、 progress
)iflag=[FLAGS]
:輸入特定標(biāo)志(direct、sync
)oflag=[FLAGS]
:輸出特定標(biāo)志(append、sync
)ibs
:設(shè)置輸入塊大小obs
:設(shè)置輸出塊大小noerror
:讀取錯(cuò)誤后繼續(xù)notrunc
:不要截?cái)噍敵鑫募?/p>sync
:使用NULL
填充每個(gè)輸入塊至ibs
大小
示例用法
基礎(chǔ)用法
dd if=source.txt of=destination.txt # 如果目標(biāo)文件不存在,則自動(dòng)創(chuàng)建,否則會(huì)覆蓋目標(biāo)文件
創(chuàng)建可啟動(dòng)的 USB 驅(qū)動(dòng)器
將
ISO
文件寫入USB
驅(qū)動(dòng)器
sudo dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress
if=ubuntu.iso
:輸入的ISO
文件of=/dev/sdb
:輸出的USB
設(shè)備bs=4M
:使用 4 MB 的塊大小來加快復(fù)制速度status=progress
:操作過程中顯示進(jìn)度
備份磁盤
創(chuàng)建磁盤鏡像
sudo dd if=/dev/sda of=backup.img bs=64K conv=sync,noerror
if=/dev/sda
:輸入的原磁盤設(shè)備of=backup.img
:輸出的磁盤鏡像bs=64K
:塊大小為 64 KBconv=sync,noerror
:當(dāng)發(fā)生錯(cuò)誤時(shí)繼續(xù)讀取,并用控制填充
從鏡像中恢復(fù)磁盤
sudo dd if=backup.img of=/dev/sda bs=64K
創(chuàng)建包含隨機(jī)數(shù)據(jù)的文件
dd if=/dev/urandom of=random_data.bin bs=1M count=10
if=/dev/urandom
:隨機(jī)輸入源of=random_data.bin
:輸出的文件bs=1M
:區(qū)塊大小為 1 MBcount=10
:創(chuàng)建一個(gè) 10 MB 的文件
安全擦除磁盤
使用隨機(jī)數(shù)據(jù)覆蓋磁盤
sudo dd if=/dev/urandom of=/dev/sda bs=1M status=progress
測(cè)試磁盤寫入速度
將零寫入磁盤以測(cè)試寫入速度
sudo dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
將文件拆分成塊
將文件分割成更小的塊
dd if=largefile of=smallfile bs=1M count=100
防止覆蓋目標(biāo)文件
dd if=source.txt of=destination.txt conv=notrunc
將數(shù)據(jù)追加到文件
dd if=users.txt of=newusers.txt conv=append
壓縮 dd 讀取的數(shù)據(jù)
sudo dd if=/dev/sda bs=1M | gzip -c -9 > sda.dd.gz
操作過程中顯示進(jìn)度條
dd if=source_file of=destination_file status=progress
將文件的數(shù)據(jù)格式從 EBCDIC 轉(zhuǎn)換為 ASCII
sudo dd if=textfile.ebcdic of=textfile.ascii conv=ascii
關(guān)鍵轉(zhuǎn)換標(biāo)志
sync
:用空字節(jié)填充每個(gè)塊以達(dá)到指定的大小noerror
:盡管讀取有錯(cuò)誤,仍繼續(xù)操作notrunc
:不要截?cái)噍敵鑫募?/p>ucase
:將文本轉(zhuǎn)換為大寫lcase
:將文本轉(zhuǎn)換為小寫
以上就是Linux使用dd命令來復(fù)制和轉(zhuǎn)換數(shù)據(jù)的操作方法的詳細(xì)內(nèi)容,更多關(guān)于Linux dd命令復(fù)制和轉(zhuǎn)換數(shù)據(jù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
CentOS7.4下MySQL5.7.28二進(jìn)制方式安裝的方法步驟
這篇文章主要介紹了CentOS7.4下MySQL5.7.28二進(jìn)制方式安裝的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11詳解CentOS 6.5如何安裝Realtek無線網(wǎng)卡驅(qū)動(dòng)
相信大家都應(yīng)該知道CentOS6.5不像CentOS7和Unbuntu那樣自動(dòng)安裝好了無線網(wǎng)卡驅(qū)動(dòng),如果想要在CentOS 6.5上實(shí)現(xiàn)無線上網(wǎng),我們就需要折騰一下,這篇文章給大家介紹了詳細(xì)的步驟,感興趣的朋友們下面來一起看看吧。2016-10-10