dd (Data Description) 명령어

블록 단위로 파일을 복사하거나 변환


용도

  • 데이터 전송
  • 마스터 부트 레코드 백업 및 복원
  • 데이터 수정
  • 디스크 완전 소거
  • 데이터 복구
  • 드라이브 성능 벤치마크
  • 랜덤 데이터로 파일 생성
  • 파일을 대문자로 변환 등

 

dd 명령어 옵션

1. dd 명령어 주요 옵션

  • bs=BYTES : 한 번에 BYTES씩 읽어 들이고 출력. ibs와 obs를 한 번에 지정한 것과 같다.
  • cbs=BYTES : 한 번에 BYTES씩 변환 작업을 한다.
  • conv=CONVS : ,로 분리된 단어들을 파일로 변환한다.
    • ascii : EBCDIC 코드를 ASCII 코드로 변환한다.
    • ebcdic : ASCII 코드를 EBCDIC 코드로 변환한다.
    • ibm : ASCII 코드를 EBCDIC 코드로, EBCDIC 코드를 ASCII 코드로 변환한다.
    • block : cbs로 변환 작업과정에서 입력문자내에 있는 개행 문자들을 공백문자로 변환한다.
    • unblock : block와는 반대로 cbs로 변환 작업과정에서 입력 문자내에 있는 공백 문자들을 개행 문자로 변환한다.
    • lcase : 영문 대문자를 영문 소문자로 변환한다.
    • ucase : 영문 소문자를 영문 대문자로 변환한다.
    • swap : 입력된 두 바이트를 바꾼다.
    • nocreate : 출력 파일이 존재해야 수행합니다.
    • excl : 출력 파일이 이미 존재 하면 수행하지 않습니다.
    • notrunc : 출력 파일을 자르지 않고 출력한다.
    • noerror : 입력 데이터를 읽을 때에 에러가 발생하더라도 계속 진행한다.
    • sync : 입력된 ibs와 출력하는 obs 사이에 차이가 있을 경우 그 여백공간을 NULL 문자로 채운다.
  • count=BLOCKS : 입력 블록의 ibs 크기만큼만 복사한다.
  • ibs=BYTES : 입력 단위로 한 번에 BYTES 단위로 읽어 들인다.
  • if=FILE : 표준입력대신 지정한 파일을 입력으로 받는다.
  • obs=BYTES : 출력 단위로 한번에 BYTES 단위로 출력한다.
  • of=FILE : 표준 출력대신 지정된 파일에 출력한다.
  • seek=BLOCKS : 출력 시작시 지정된 BLOCKS의 단위만큼 obs 크기를 건너뛰고 출력을 시작한다.
  • skip=BLOCKS : 입력 시작시 지정된 BLOCKS의 단위만큼 ibs 크기를 건너뛰고 입력을 시작한다.

 

2. BYTES 단위

  • c : Character, 1byte
  • w : Word, 2byte
  • b : Block, 512byte
  • kB : 1000byte
  • k : Kilo Bytes, 1024byte
  • MB : 1000*1000
  • M : 1024*1024
  • GB : 100010001000
  • G : 102410241024
  • 기타 : T, P, E, Z, Y

 

3. 사용 예

  •  부팅 디스크 제작
# fdformat /dev/<포맷할장치> //포맷
# dd if=/boot/vmlinuz of=/dev/장치 //부팅디스크 제작
  • 원본파일에서 1024바이트를 제외하고 복사
# dd if=real.eml of=real2 bs=1024 skip=1
  • /var/log/dmesg파일에서 1024바이트로 10번 읽어서 대문자로 변환한 후 test파일에 쓰기
# dd if=/var/log/dmesg of=./test bs=1024 count=10 conv=ucase
10+0 records in
10+0 records out
10240 bytes (10 kB) copied, 0.000163 seconds, 62.8 MB/s

# head -3 test
LINUX VERSION 2.6.18-274.EL5 (MOCKBUILD@BUILDER10.CENTOS.ORG) (GCC VERSION 4.1.2 20080704 (RED HAT 4.1.2-50)) #1 SMP FRI JUL 22 04:43:29 EDT 2011
COMMAND LINE: RO ROOT=LABEL=/ RHG

 

출처

+ Recent posts