dd命令詳解

dd命令: convert and copy a file
用法:
  dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
   bs=#: block size, 復制單元大小
   count=#:復制多少個bs
   of=file 寫到所命名的文件而不是到標準輸出
   if=file 從所命名文件讀取而不是從標準輸入
   bs=size 指定塊大小(既是ibs也是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 把小寫字符轉換為大寫字符
    nocreat 不創建輸出文件
    noerror 出錯時不停止
    notrunc 不截斷輸出文件
    sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊  
備份:
  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指令輸出中所顯示的命令執行時間,即可確定系統最佳的block size大小
測試硬盤讀寫速度
  dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
  dd if=/root/1Gb.file bs=64k | dd of=/dev/null
  通過上兩個命令輸出的執行時間,可以計算出測試硬盤的寫/讀/速度
修復硬盤
  dd if=/dev/sda of=/dev/sda
   當硬盤較長時間(比如1,2年)放置不使用后,磁盤上會產生消磁點。當磁頭讀到這些區域時會遇到困難,并可能導致I/O錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死回生,且這個過程是安全高效的。
示例:
  1.備份MBR:
       [root@anonymous ~]#dd if=/dev/sda1 of=/tmp/mbr.bak bs=512
        count=11+0 records in
       1+0 records out
       512 bytes (512 B) copied, 0.000160395 s, 3.2 MB/s

  2.有一個大于2K的二進制文件fileA?,F在想從第64個字節位置開始讀取,需要讀取的大小是128Byts。又有fileB, 想把上面讀取到的128Bytes寫到第32個字節開始的位置,替換128Bytes,請問如何實現?
       [root@anonymous ~]#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
       128+0 records in
       128+0 records out
       128 bytes (128 B) copied, 0.000421017 s, 304 kB/s

  3.創建一個2G的文件系統,塊大小為2048byte,預留1%可用空間,文件系統ext4,卷標為TEST,要求此分區開機后自動掛載至/test目錄,且默認有acl掛載選項

       [root@anonymous ~]#dd if=/dev/zero of=test bs=1M count=2048
       2048+0 records in
       2048+0 records out
       2147483648 bytes (2.1 GB) copied, 121.521 s, 17.7 MB/s
       [root@anonymous ~]#mkfs.ext4 -b 2048 -L ‘TEST’ -m 1 test
       mke2fs 1.41.12 (17-May-2010)
       test is not a block special device.
       Proceed anyway? (y,n) y
       Filesystem label=TEST
       OS type: Linux
       Block size=2048 (log=1)
       Fragment size=2048 (log=1)
       Stride=0 blocks, Stripe width=0 blocks
       131072 inodes, 1048576 blocks
       10485 blocks (1.00%) reserved for the super user
       First data block=0
       Maximum filesystem blocks=537919488
       64 block groups
       16384 blocks per group, 16384 fragments per group
       2048 inodes per group
       Superblock backups stored on blocks:
        16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816

       Writing inode tables: done                           
       Creating journal (32768 blocks): done
       Writing superblocks and filesystem accounting information: done
       This filesystem will be automatically checked every 35 mounts or
       180 days, whichever comes first.  Use tune2fs -c or -i to override.
       [root@anonymous ~]#tune2fs -o acl test
       tune2fs 1.41.12 (17-May-2010)
       [root@anonymous ~]#echo ‘/root/test /mnt/test  ext4  defaults,loop  0 0’ >> /etc/fstab
       [root@anonymous ~]#mount -a 

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

(2)
mrlapugamrlapuga
上一篇 2017-03-19
下一篇 2017-03-19

相關推薦

  • LVM 2 介紹以及怎么使用?

    一、 LVM是什么? LVM利用Linux內核的device-mapper來實現存儲系統的虛擬化(系統分區獨立于底層硬件)。 通過LVM,你可以實現存儲空間的抽象化并在上面建立虛擬分區(virtual partitions),可以更簡便地擴大和縮小分區,可以增刪分區時無需擔心某個硬盤上沒有足夠的連續空間, without getting caught up …

    Linux干貨 2017-01-06
  • find命令使用練習

    1、  查找/var目錄下屬主為root,且屬組為mail的所有文件   2、  查找/var目錄下不屬于root、lp、gdm的所有文件   3、  查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件   4、  查找當前系統上沒有屬主或屬組,且最…

    Linux干貨 2016-08-15
  • NFS 實現wordpress同步

    NFS 0x00 NFS概述 0x01 NFS實現原理 0x02 NFS 相關配置及命令 0x03 NFS實踐作業(一) 實驗要求: 實驗環境: 實驗步驟: 0x04 NFS實踐作業(二) 實驗要求: 實驗環境: 實驗步驟: 0x05 常見問題 0x00 NFS概述 網絡文件系統(英語:Network File System,縮寫為NFS)是一種分布式文件系…

    2017-04-30
  • 往死里苦練腳本啊啊啊啊啊啊啊~~~~~~~~~~~~~~~~

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #腳本內容 [root@centos script]# cat week9_title1.sh  #!/bin/bash #Author …

    Linux干貨 2017-02-16
  • Centos6基于虛擬主機的Lamp配置bbs、Blog、PhpMyAdmin應用程序

    Centos6實現基于虛擬主機的各應用程序搭建: 一、配置三個基于名稱的虛擬主機;       虛擬主機一、discuzX       虛擬主機二、wordpress       虛擬主機三…

    2017-06-01
  • N25第1周作業

    1.計算機的組成及功能 地址:博客園http://www.cnblogs.com/qingyangzi/p/6133274.html 2.linux主要的發行版及其區別和聯系 地址:博客園http://www.cnblogs.com/qingyangzi/p/6135801.html 3.linux哲學思想 地址:博客園http://www.cnblogs.…

    Linux干貨 2016-12-05
欧美性久久久久