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

