Linux dd命令全面解析

2021-07-30 21:00:28 字數 3363 閱讀 6609

**:

linux/unix  dd命令是乙個非常好的管理磁碟命令

dd命令作用:指定大小的塊拷貝乙個檔案,並在拷貝的同時進行指定的轉換,起到乙個初始化磁碟的作用

1. 命令簡介

dd 的主要選項:

指定數字的地方若以下列字元結尾乘以相應的數字

: b=512, c=1, k=1024, w=2, xm=number m 

if=file 

輸入檔名,預設為標準輸入。

of=file 

輸出檔名,預設為標準輸出。

ibs=bytes 

一次讀入 bytes 個位元組(即乙個塊大小為 bytes 個位元組)。

obs=bytes 

一次寫出 bytes 個位元組(即乙個塊大小為 bytes 個位元組)。

bs=bytes 

同時設定讀寫塊的大小為 bytes ,可代替 ibs 和 obs 。

cbs=bytes 

一次轉換 bytes 個位元組,即轉換緩衝區大小。

skip=blocks 

從輸入檔案開頭跳過 blocks 個塊後再開始複製。

seek=blocks 

從輸出檔案開頭跳過 blocks 個塊後再開始複製。(通常只有當輸出檔案是磁碟或磁帶時才有效)。

count=blocks 

僅拷貝 blocks 個塊,塊大小等於 ibs 指定的位元組數。

conv=conversion[,conversion...] 

用指定的引數轉換檔案。

轉換引數

: ascii 轉換 ebcdic 為 ascii。

ebcdic 

轉換 ascii 為 ebcdic。

ibm 

轉換 ascii 為

alternate ebcdic. 

block 把每一行轉換為長度為 cbs 的記錄,不足部分用空格填充。

unblock 

使每一行的長度都為 cbs ,不足部分用空格填充。

lcase 

把大寫字元轉換為小寫字元。

ucase 

把小寫字元轉換為大寫字元。

swab 

交換輸入的每對位元組。

noerror 出錯時不停止。

notrunc 

不截短輸出檔案。 不取整指令

sync 

把每個輸入塊填充到ibs個位元組,不足部分用空(nul)字元補齊。

dd應用例項

1.將本地的/dev/hdb整盤備份到/dev/hdd

dd if=/dev/hdb f=/dev/hdd              hdb –> 記憶體 -> hdd

2.將/dev/hdb全盤資料備份到指定路徑的image檔案

dd if=/dev/hdb f=/root/image            hdb –> 記憶體 -> image檔案

3.將備份檔案恢復到指定盤

dd if=/root/image f=/dev/hdb             image檔案 –> 記憶體 -> hdb

4.備份/dev/hdb全盤資料,並利用gzip工具進行壓縮,儲存到指定路徑

dd if=/dev/hdb | gzip> /root/image.gz

5.將壓縮的備份檔案恢復到指定盤

gzip -dc /root/image.gz | dd f=/dev/hdb

6.備份磁碟開始的512個位元組大小的mbr 主引導記錄資訊到指定檔案

dd if=/dev/hda f=/root/image count=1 bs=512   預設從硬碟0柱面0磁軌1扇區讀取512個位元組

count=1指僅拷貝乙個塊;bs=512指塊大小為512個位元組。

恢復:dd if=/root/image f=/dev/hda

7.備份軟盤

dd if=/dev/fd0 f=disk.img count=1  bs=1440k (即塊大小為1.44m)

8.拷貝記憶體內容到硬碟

dd if=/dev/mem f=/root/mem.bin  bs=1024 (指定塊大小為1k)  

9.拷貝光碟內容到指定資料夾,並儲存為cd.iso映象檔案

dd if=/dev/cdrom(hdc)   of=/root/cd.iso

10.增加swap交換分割槽檔案大小

第一步:建立乙個大小為256m的檔案:

dd if=/dev/zero  of=/swapfile  bs=1024 count=262144

第二步:把這個檔案變成swap交換分割槽檔案:

mkswap /swapfile

第三步:啟用這個swap交換分割槽檔案:

swapon /swapfile

/swapfile    swap    swap    default   0 0

11.銷毀磁碟資料

dd if=/dev/urandom f=/dev/hda1

注意:利用隨機的資料填充硬碟,在某些必要的場合可以用來銷毀資料。

12.測試硬碟的讀寫速度

dd if=/dev/zero bs=1024 count=1000000 f=/root/1gb.file    寫速度

dd if=/root/1gb.file bs=64k | dd f=/dev/null      讀速度

通過以上兩個命令輸出的命令執行時間,可以計算出硬碟的讀、寫速度。

13.確定硬碟的最佳塊blocks大小:初始化硬碟

dd if=/dev/zero bs=1024 count=1000000 f=/root/1gb.file    初始化硬碟

dd if=/dev/zero bs=2048 count=500000 f=/root/1gb.file     初始化硬碟

dd if=/dev/zero bs=4096 count=250000 f=/root/1gb.file     初始化硬碟

dd if=/dev/zero bs=8192 count=125000 f=/root/1gb.file     初始化硬碟

通過比較以上命令輸出中所顯示的命令執行時間,即可確定系統最佳的塊大小。

14.修復硬碟:                 自初始化硬碟

dd if=/dev/sda f=/dev/sda  scsi硬碟 或dd if=/dev/hda f=/dev/hda   ide

當硬碟較長時間(一年以上)放置不使用後,磁碟上會產生magnetic flux point 電磁點現象,當磁頭讀到這些區域時會遇到困難,並可能導致i/o錯誤。當這種情況影響到硬碟的第乙個扇區即mbr(主引導程式446、硬碟分割槽表64、硬碟有效標識2位元組)時,可能導致硬碟報廢。上邊的命令有可能使這些資料起死回生。並且這個過程是安全、高效的。

2012.3.3

tianjin

linux dd命令詳解

dd 使用dd這個linux命令可以建立一定大小檔案。linux建立檔案命令 dd命令 把指定的輸入檔案拷貝到指定的輸出檔案中,並且在拷貝的過程中可以進行格式轉換。語法 code copy to clipboard dd 選項 quote if 輸入檔案 或裝置名稱 of 輸出檔案 或裝置名稱 ib...

Linux dd命令詳解

例4 建立乙個100m的空檔案 dd if dev zero of hello.txt bs 100m count 1 dev null,外號叫無底洞,你可以向它輸出任何資料,它通吃,並且不會撐著!dev zero,是乙個輸入裝置,你可你用它來初始化檔案。dev null 它是空裝置,也稱為位桶 b...

linux dd命令詳解

1 dd if iso of dev sdb bs 1m 用以上命令前必須解除安裝u盤,sdb是你的u盤,bs 1m是塊的大小,後面的數值大,寫的速度相對塊一點,但也不是無限的,我一般選2m,注意,執行命令後很塊完成,但u盤還在閃,等不閃了,安全移除。2 注意 你的映象需要支援dd命令。dd命令的詳...