dd工具

dd

    dd命令:convert and copy a file

    用法:
        ddif=/PATH/FROM/SRC of=/PATH/TO/DEST
        bs=#:block size, 復制單元大小
        count=#:復制多少個bs

    of=file寫到所命名的文件而不是到標準輸出
    if=file從所命名文件讀取而不是從標準輸入
    bs=size指定塊大?。仁鞘莍bs也是obs)
        ibs=size一次 讀 size個byte
        obs=size 一次 寫 size個byte

    cbs=size 一次轉化size個byte
    skip=blocks從開頭忽略blocks個ibs大小的塊
    seek=blocks從開頭忽略blocks個obs大小的塊
    count=n只拷貝n個記錄
    conv=conversion[,conversion…] 用指定的參數轉換文件。
    轉換參數:
        ascii 轉換EBCDIC 為ASCII。
        ebcdic 轉換ASCII 為EBCDIC。
        block 轉換為長度為cbs 的記錄,不足部分用空格填充。
        unblock 替代cbs長度的每一行尾的空格為新行。
        lcase 把大寫字符轉換為小寫字符。
        ucase 把小寫字符轉換為大寫字符。
        swab 交換輸入的每對字節。
    nocreat 目標文件不存在則,報錯,不會自動創建文件
    noerror 出錯時不停止。
    notrunc 不截短輸出文件。  直接替換內容而不是給短輸出文件,不改變文件大小
    sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊

注意:skip=xxx是在備份時對if 后面的部分也就是原文件跳過多少塊再開始備份;seek=xxx則是在備份時對of 后面的部分也就是目標文件跳過多少塊再開始寫。

    磁盤拷貝:
        dd if=/dev/sdaof=/dev/sdb

    備份MBR:
        dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

    破壞MBR中的bootloader:
        dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446

    有二進制文件fileA,size>2K?,F在想從第64個字節位置開始讀取,需要讀取的大小是128Byts。又有fileB, 想把上面讀取到的128Bytes寫到第32個字節開始的位置,替換128Bytes,請問如何實現?
        #dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
            notrunc 不截短輸出文件。  直接替換內容而不是給短輸出文件,不改變文件大小

    備份:
        dd if=/dev/sdx of=/dev/sdy
        將本地的/dev/sdx整盤備份到/dev/sdy  設備對拷

        dd if=/dev/sdx of=/path/to/image
        將/dev/sdx全盤數據備份到指定路徑的image文件  將整個設備里的二進制內容保存為一個文件

        dd if=/dev/sdx | gzip >/path/to/image.gz
        備份/dev/sdx全盤數據,并利用gzip工具進行壓縮,保存到指定路徑

    恢復:
        dd if=/path/to/image of=/dev/sdx
        將備份文件恢復到指定盤
        gzip -dc /path/to/image.gz | dd of=/dev/sdx
        將壓縮的備份文件恢復到指定盤

    
    拷貝內存資料到硬盤
        dd if=/dev/mem of=/root/mem.bin bs=1024
        將內存里的數據拷貝到root目錄下的mem.bin文件

    從光盤拷貝iso鏡像
        dd if=/dev/cdrom of=/root/cd.iso
        拷貝光盤數據到root文件夾下,并保存為cd.iso文件

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

    得到最恰當的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大小

    測試硬盤讀寫速度
        dd if=/root/1Gb.file bs=64k | dd of=/dev/null
        dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
        通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度

    修復硬盤
    dd if=/dev/sda of=/dev/sda

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

創建設備文件
mknod DEVNAME TYPE MAIN MI
mknod  設備名 b 1 1

如果和/dev下的設備的主次設備號都相同。則就是同一設備

原創文章,作者:yyw,如若轉載,請注明出處:http://www.www58058.com/42650

(1)
yywyyw
上一篇 2016-09-02 08:48
下一篇 2016-09-02 08:48

相關推薦

  • LVS 之 初識LVS

    LVS 之 初識LVS LVS 之 初識LVS 0x00 概述 0x01 LVS拓撲結構圖: lvs集群類型中的術語 : 0x02 lvs-type lvs-nat lvs-dr lvs-tun lvs-fullnat : 0x03 調度算法(scheduler) 0x00 概述 LVS : Linux Virtual Server lvs 工作在 IOS …

    2017-05-11
  • N22-℡浮生.若夢 ╮第一周作業

    1.描述計算機的組成及其功能  組成:     硬件       (1).CPU: 是計算機的主要設備之一,功能主要是解釋計算機指令以及處理計算機軟件中的數據.       (2).存儲器:內存,硬盤,存儲器的功能是存儲程序、數據和各種信號…

    Linux干貨 2016-09-19
  • FTP部署及簡單應用

    文件服務: ftp:應用層,C/S,文件共享;file transfer protocol; nfs,cifs:文件系統接口,網絡文件系統;     nfs:network file system     cifs:common …

    Linux干貨 2016-10-19
  • N26-博客作業-week6

    vim:Vi IMprove 基本模式:編輯模式,命令模式輸入模式末行模式 打開文件: vim [option] [file…] +#:打開文件后,直接讓光標處于第#行的行首+/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首 模式轉換:編輯模式:默認模式編輯模式 –> 輸入模式:i:insert…

    Linux干貨 2017-03-12
  • httpd

      httpd http服務器程序:   httpd (apache) nginx lighttpd httpd的特性:   高度模塊化: core + modules DSO:dynamic shared object(模塊的動態加載) MPM:Multipath processing Modules (多路處理模塊) &nb…

    Linux干貨 2017-06-04
  • 【】

         

    Linux干貨 2016-10-30
欧美性久久久久