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è)試
語法
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)文章
Linux模擬實(shí)現(xiàn)sleep函數(shù)
這篇文章主要為大家詳細(xì)介紹了Linux模擬實(shí)現(xiàn)sleep函數(shù),讓程序休眠一定的秒數(shù),到時(shí)間后自動(dòng)恢復(fù)運(yùn)行2017-04-04
Linux兩個(gè)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)同步方案
這篇文章主要介紹了Linux兩個(gè)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)同步方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
服務(wù)器間如何實(shí)現(xiàn)scp免密文件傳輸
文章介紹了如何在本地電腦或源服務(wù)器上生成SSH密鑰,并將其復(fù)制到遠(yuǎn)程服務(wù)器上,以實(shí)現(xiàn)免密碼登錄,此外,還介紹了如何使用SCP命令在本地和遠(yuǎn)程服務(wù)器之間傳輸文件2025-02-02
ubuntu設(shè)置共享文件夾后卻不顯示,/mnt/hgfs下為空的解決過程
本文介紹了在Ubuntu虛擬機(jī)中設(shè)置和共享文件夾的方法,包括添加共享文件夾、解決不顯示共享文件夾、解決重啟后共享文件夾失效等問題,并給出了解決方案和操作步驟2026-04-04
Apache中如何設(shè)置默認(rèn)首頁具體該怎么操作
這篇文章主要介紹了Apache中設(shè)置默認(rèn)首頁的方法,需要的朋友可以參考下2014-02-02
Linux回收站機(jī)制實(shí)現(xiàn)過程及用法詳解
這篇文章主要介紹了Linux回收站機(jī)制實(shí)現(xiàn)過程及用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08

