linux dd入門,Linux基礎知識:Linux中DD命令詳解

1.dd命令簡介

功能:把指定的輸入文件拷貝到指定的輸出文件中,并且在拷貝過程中可以進行格式轉換。可以用該命令實現DOS下的diskcopy命令的作用。先用dd命令把軟盤上的數據寫成硬盤的一個寄存文件,再把這個寄存文件寫入第二張軟盤上,完成diskcopy的功能。需要注意的是,應該將硬盤上的寄存文件用rm命令刪除掉。系統默認使用標準輸入文件和標準輸出文件。

語法:dd [選項]

if =輸入文件(或設備名稱)。

of =輸出文件(或設備名稱)。

ibs = bytes 一次讀取bytes字節,即讀入緩沖區的字節數。

skip = blocks 跳過讀入緩沖區開頭的ibs*blocks塊。

obs = bytes 一次寫入bytes字節,即寫入緩沖區的字節數。

bs = bytes 同時設置讀/寫緩沖區的字節數(等于設置ibs和obs)。

cbs = byte 一次轉換bytes字節。

count=blocks 只拷貝輸入的blocks塊。

conv = ASCII 把EBCDIC碼轉換為ASCIl碼。

conv = ebcdic 把ASCIl碼轉換為EBCDIC碼。

conv = ibm 把ASCIl碼轉換為alternate EBCDIC碼。

conv = block 把變動位轉換成固定字符。

conv = ublock 把固定位轉換成變動位。

conv = ucase 把字母由小寫轉換為大寫。

conv = lcase 把字母由大寫轉換為小寫。

conv = notrunc 不截短輸出文件。

conv = swab 交換每一對輸入字節。

conv = noerror 出錯時不停止處理。

conv = sync 把每個輸入記錄的大小都調到ibs的大小(用NUL填充)。

2.實例分析

2.1.數據備份與恢復

2.1.1整盤數據備份與恢復

備份:

dd if=/dev/hdx of=/dev/hdy

將本地的/dev/hdx整盤備份到/dev/hdy

dd if=/dev/hdx of=/path/to/image

將/dev/hdx全盤數據備份到指定路徑的image文件

dd if=/dev/hdx | gzip >/path/to/image.gz

備份/dev/hdx全盤數據,并利用gzip工具進行壓縮,保存到指定路徑

恢復:

dd if=/path/to/image of=/dev/hdx

將備份文件恢復到指定盤

gzip -dc /path/to/image.gz | dd of=/dev/hdx

將壓縮的備份文件恢復到指定盤

2.1.2.利用netcat遠程備份

dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234

在源主機上執行此命令備份/dev/hda

netcat -l -p 1234 | dd of=/dev/hdc bs=16065b

在目的主機上執行此命令來接收數據并寫入/dev/hdc

netcat -l -p 1234 | bzip2 > partition.img

netcat -l -p 1234 | gzip > partition.img

以上兩條指令是目的主機指令的變化分別采用bzip2 gzip對數據進行壓縮,并將備份文件保存在當前目錄。

2.1.3.備份MBR

備份:

dd if=/dev/hdx of=/path/to/image count=1 bs=512

備份磁盤開始的512Byte大小的MBR信息到指定文件

恢復:

dd if=/path/to/image of=/dev/hdx

將備份的MBR信息寫到磁盤開始部分

2.1.4.備份軟盤

dd if=/dev/fd0 of=disk.img count=1 bs=1440k

將軟驅數據備份到當前目錄的disk.img文件

2.1.5.拷貝內存資料到硬盤

dd if=/dev/mem of=/root/mem.bin bs=1024

將內存里的數據拷貝到root目錄下的mem.bin文件

2.1.6.從光盤拷貝iso鏡像

dd if=/dev/cdrom of=/root/cd.iso

拷貝光盤數據到root文件夾下,并保存為cd.iso文件

2.2.增加Swap分區文件大小

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

創建一個足夠大的文件(此處為256M)

mkswap /swapfile

把這個文件變成swap文件

swapon /swapfile

啟用這個swap文件

/swapfile swap swap defaults 0 0

在每次開機的時候自動加載swap文件, 需要在 /etc/fstab 文件中增加一行

2.3.銷毀磁盤數據

dd if=/dev/urandom of=/dev/hda1

利用隨機的數據填充硬盤,在某些必要的場合可以用來銷毀數據。執行此操作以后,/dev/hda1將無法掛載,創建和拷貝操作無法執行。

2.4磁盤管理

2.4.1.得到最恰當的block size

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file

dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file

dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file

dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統最佳的block size大小

2.4.2測試硬盤讀寫速度

dd if=/root/1Gb.file bs=64k | dd of=/dev/null

dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度

2.4.3.修復硬盤

dd if=/dev/sda of=/dev/sda

當硬盤較長時間(比如1,2年)放置不使用后,磁盤上會產生magnetic flux point。當磁頭讀到這些區域時會遇到困難,并可能導致I/O錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死回生。且這個過程是安全,高效的。

2.4.4.軟盤拷貝

要把一張軟盤的內容拷貝到另一張軟盤上,利用/tmp作為臨時存儲區。把源盤插入驅動器中,輸入下述命令:

$ dd if =/dev/fd0 of = /tmp/tmpfile

拷貝完成后,將源盤從驅動器中取出,把目標盤插入,輸入命令:

$ dd if = /tmp/tmpfile of =/dev/fd0

軟盤拷貝完成后,應該將臨時文件刪除:

$ rm /tmp/tmpfile

2.4.5.把net.i這個文件寫入軟盤中,并設定讀/寫緩沖區的數目。

(注意:軟盤中的內容會被完全覆蓋掉)

$ dd if = net.i of = /dev/fd0 bs = 16384

2.4.6.將文件sfile拷貝到文件 dfile中。

$ dd if=sfile of=dfile

====================================================================================

提取MBR的信息

要看MBR的內容,請使用下面的命令

#從/dev/sda上讀取前512個字節的內容,并將其寫入mbr.bin文件中

root@www.linuxidc.com:/home/linux# dd if=/dev/sda of=mbr.bin bs=512 count=1

1+0 records in

1+0 records out

512 bytes (512 B) copied, 0.000798615 seconds, 641 kB/s

#以十六進制和ASCII碼格式打印這個二進制文件的內容

root@www.linuxidc.com:/home/linux# od -xa mbr.bin

0000000 48eb 1090 d08e 00bc b8b0 0000 d88e c08e

k? H dle dle? so? P? < nul? 0? 8 nul nul? so? X? so? @

0000020 befb 7c00 00bf b906 0200 a4f3 21ea 0006

{? > nul? |? ? nul ack? 9 nul stx? s? $? j? ! ack nul

0000040 be00 07be 0438 0b75 c683 8110 fefe 7507

nul? >? > bel? 8 eot? u? vt etx? F dle soh? ~? ~ bel? u

……

這個 dd 命令需要以 root 用戶的身份運行,它從 /dev/hda(第一個 IDE 盤) 上讀取前 512 個字節的內容,并將其寫入 mbr.bin 文件中。od 命令會以十六進制和 ASCII 碼格式打印這個二進制文件的內容。0b1331709591d260c1c78e86d0c51c18.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541715.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541715.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541715.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS 字體(font)實例

1、設置文本字體 font-family:"Times New Roman",Georgia,Serif font-family:Arial,Verdana,Sans-serif 2、設置字體尺寸 font-size: 100% 3、設置字體風格 font-style:normal font-style:italic font-style:oblique 4、設置字體的異體 font-variant:normal text-var…

Java Duration類| 帶示例的compareTo()方法

持續時間類compareTo()方法 (Duration Class compareTo() method) compareTo() method is available in java.time package. compareTo()方法在java.time包中可用。 compareTo() method is used to compare this Duration object to the given object. compareTo()方法用于將此…

linux定時任務執行url,科技常識:linux定時任務訪問url實例

今天小編跟大家講解下有關linux定時任務訪問url實例 &#xff0c;相信小伙伴們對這個話題應該也很關注吧&#xff0c;小編也收集到了有關linux定時任務訪問url實例 的相關資料&#xff0c;希望小伙伴會喜歡也能夠幫助大家。這次linux定時任務設置成功&#xff0c;也算是自己學習…

lcase和ucase_在SQL中使用UCASE(),LCASE()和MID()函數

lcase和ucaseUpper Case, Lower Case and MID functions are scalar functions which return a single value, based in the input value. 大寫&#xff0c;小寫和MID函數是標量函數&#xff0c;它們基于輸入值返回單個值。 As you all know sometimes different databases ha…

Maven的Settings.xml配置文件解釋

該配置用于單用戶配置和全局配置, 單用戶配置默認存放于 ${user.home}/.m2/目錄中. 全局配置默認存放于Maven安裝目錄下面的conf目錄中. 這兩個默認的位置都可以修改. <?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://m…

linux ntp手動授時,關于我校NTP授時服務的使用說明

校園網用戶&#xff1a;我中心于近期采購了GPS北斗授時服務設備&#xff0c;該設備可實現純GPS模式、純北斗模式和混合模式與衛星對時&#xff0c;同時實現對校內設備授時的功能。支持所有NTP協議的服務器、PC、嵌入式設備等&#xff0c;包括但不限于&#xff1a;Microsoft Win…

一串字符串轉換為ascii_將ASCII字符串(char [])轉換為C中的BYTE數組

一串字符串轉換為asciiGiven an ASCII string (char[]) and we have to convert it into BYTE array (BYTE[]) in C. 給定一個ASCII字符串(char [])&#xff0c;我們必須將其轉換為C語言中的BYTE數組(BYTE [])。 Logic: 邏輯&#xff1a; To convert an ASCII string to BYTE…

debugging Auto Layout:Logical Errors

Logical Errors邏輯錯誤 Logical errors are simply bugs. Somewhere, you have an assumption that is faulty. Perhaps it’s an assumption about how Auto Layout calculates the views’ frames. Perhaps it’s an assumption about the set of constraints that you’ve …

linux反序列化漏洞,思科多個產品Java反序列化漏洞(CVE-2015-6420)

思科多個產品Java反序列化漏洞(CVE-2015-6420)發布日期&#xff1a;2015-12-15更新日期&#xff1a;2015-12-17受影響系統&#xff1a;Cisco Unified ComputingCisco Voice and Unified Communications DevicesCisco Wireless描述&#xff1a;CVE(CAN) ID: CVE-2015-6420思科是…

密碼學替代技術_替代技術及其類型| 密碼學

密碼學替代技術As we already discussed what are the Substitution techniques and one of its type Ceasar Cipher? So we are not discussing it here for that please refer to Cryptography: CeasarCipher here: Cryptography: Caesar Cipher and its Python Implementat…

Flask+uwsgi+Nginx環境搭建

2019獨角獸企業重金招聘Python工程師標準>>> 開源軟件準備 需要的軟件列表&#xff1a; setuptools-33.1.1.zip Python-2.7.13.tgz pip-9.0.1.tar.gz nginx-1.10.3.tar.gz 軟件統一上傳到/usr/local/src/下&#xff0c;python是使用自己編譯的。Python安裝 先安裝以…

穿越迷宮c語言程序設計教程課后答案,實驗二 迷宮實驗.doc

#include #define ROW 11#define COLUMN 15typedef struct{ /*棧中的數據元素的類型定義*/int row; /*行下標*/int col; /*列下標*/int direction; /*下一步移動方向*/} DATA;Typedif struct node{ /* 棧類定義*/DATA data;Struct node *next;}LinkStack;Typedef struct{/*移動…

ofb模式_密碼學中的輸出反饋模式(OFB)

ofb模式This is an output feedback (OFB) mode is similar in structure to that of CFB in Cryptography. It is the output of the encryption function that is fed back to the shift register in OFB in the cryptography, whereas in CFB in the mode of blocks, the ci…

JavaScript0-閉包

1.閉包的概念&#xff1a;在JavaScript中局部作用域總是能夠訪問到全局作用域&#xff0c;即內部函數總是能夠訪問到外部函數的參數和變量&#xff0c;即使內部函數調用完畢。也就是指有權訪問到函數作用域里的變量。 function fn1() {var x 0;return function() {cosole.log(…

win8編程c語言,Win8系統怎么運行C語言 win8系統運行C語言的方法

C語言是一門通用計算機編程語言&#xff0c;是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言&#xff0c;但是許多win8系統用戶并不知道要怎么運行C語言&#xff0c;針對這個情況&#xff0c;小編就給大家分享一…

stack示例_C.示例中的Stack.CopyTo()方法

stack示例C&#xff03;Stack.CopyTo()方法 (C# Stack.CopyTo() method) Stack.CopyTo() method is used to copy the stack elements/objects to an existing array from the given index. Stack.CopyTo()方法用于將堆棧元素/對象從給定索引復制到現有數組。 Syntax: 句法&am…

Linux sudoers文件的寫法

2019獨角獸企業重金招聘Python工程師標準>>> 文件的組成 sudoers文件由三部分組成&#xff1a; sudoers的默認配置&#xff0c;主要設置sudo的一些缺省值&#xff08;本文不會對這些默認配置進行介紹&#xff0c;若有興趣可以自己man 5 sudoers然后搜defaults)alias…

if是什么c語言,這個C語言是什么(if(1))?

我在openssl源代碼中注意到一個奇怪的成語,here并重復如下&#xff1a;if ((in NULL) && (passwds NULL)) {if (1) { (* #ifndef OPENSSL_NO_UI/* build a null-terminated list */static char *passwds_static[2] { NULL, NULL };passwds passwds_static;if (in …

c#queue_帶有C#示例的Queue.CopyTo()方法

c#queueC&#xff03;Queue.CopyTo()方法 (C# Queue.CopyTo() method) Queue.CopyTo() method is used to copy the Queue elements/objects to an existing array from specified index. Queue.CopyTo()方法用于將Queue元素/對象從指定的索引復制到現有數組。 Syntax: 句法&a…

指針在c語言中的運用,怎么理解C語言中的指針,如何運用?

恰好我之前寫了一系列介紹 C 語言的文章&#xff0c;介紹了什么是指針&#xff0c;以及為什么要使用指針&#xff0c;下面摘錄一部分&#xff0c;感興趣的話&#xff0c;可以點我了解更多。什么是 C語言指針&#xff1f;不同的數據類型的主要區別在于占用的存儲空間不同。我們知…