본문 바로가기 대메뉴 바로가기

테크니컬 스토리

아이티마야의 새로운 기술 뉴스를 만나보세요.
Linux dd 명령어를 사용해 보자.
등록일
2023.11.02
첨부파일
Linux의 중요한 명령어 dd를 알아보자.
Linux dd 명령어를 사용해 보자.
  • Ubuntu dd 명령어란

리눅스 시스템에서 중요한 명령어 중 하나이며, 이 명령어를 사용하여 디스크나 파티션의 복사, 이미지 파일 생성, 디스크의 작업 등 다양한 작업을 수행할 수 있다.

  • dd 명령어 옵션

bs [Bytes] = 한 번에 읽고 쓸 최대 바이트 크기 지정

cbs [Bytes] = 한 번에 변환 작업이 가능한 바이트 크기 지정

count [Number Blocks] = 지정한 블록 수 만큼 복사

ibs [Bytes] = 한번에 읽어오는 입력단위 바이트 지정

obs [Bytes] = 한번에 작성되는 출력단위 바이트 지정

if [File] = 지정한 파일을 입력대상으로 설정

iflag [FLAGS] = 표준 출력 파일에 사용되는 flag 옵션

flag가 direct 시, Output 파일에 Buffer Cache를 사용하지 않고 다이렉트로 I/O를 한다

of [File] = 지정한 파일을 출력대상으로 설정

oflag [FLAGS] = 표준 출력 파일에 사용되는 flag 옵션

flag가 direct 시, Output 파일에 Buffer Cache를 사용하지 않고 다이렉트로 I/O를 한다

seek [Number] = 지정한 단위만큼 obs 크기를 건너뛰고 출력을 시작

skip [Number] = 지정한 단위만큼 ibs크기를 건너뛰고 입력을 시작

conv = 기호목록에 따라 파일을 변환

ascii : EBCDIC코드를 ASCII코드로 변환

ebcdic : ASCII코드를 EBCDIC코드를 변환

ibm : ASCII코드를 EBCDIC코드로 EBCDIC코드를 ASCII코드로 변환

block : cbs 단위로 변환할 때 줄 바꿈 문자를 공백으로 변환

unblock : cbs단위로 변환할 때 공백문자를 줄 바꿈 문자로 변환

lcase : 영어 대문자를 소문자로 변환

ucase : 영어 소문자를 대문자로 변환

swab : 입력되는 두 바이트의 순서를 변경

sync : ibs크기와 obs크기가 차이가 있을 경우 NULL 문자로 대체

excl : 출력파일이 이미 존재하면 수행하지 않음

nocreat : 출력파일이 존재해야 수행함

notrunc : 출력파일을 자르지 않고 출력함

noerror : 입력데이터를 읽을 때 에러가 발생하여도 계속 진행함

  • dd의 입출력 시에 사용되는 단위

c = Character [1bytes]

w = Word [2bytes]

k = Kilo Bytes [1024bytes]

b = Block [512bytes]

  • dd 명령어 사용방법 예시 [Ubuntu기준]
  • Disk부하 확인 명령어
  • # sudo apt install sysstat
  • # sudo iostat -d 1 10 [1초에 10번씩 Disk사용량 확인]
  • 읽고 쓰기
  • # dd if=/var/log/syslog of=test bs=1024 count=5
  • if= 입력대상 of= 출력대상
  • bs= 읽고 쓸 최대 크기 count= 지정 수 많큼 복사
  • [/var/log/syslog내용을 읽고, test파일에 쓰는것을 1024크기로 5번 반복]
  • 디스크 복제 [꼭 목적지 디스크는 언마운트 후, 진행해 주세요]
  • # sudo umount sdc1
  • # dd if=/dev/sdb1 of=/dev/sdc1 bs=1024
  • if= 입력대상 of= 출력대상
  • bs= 읽고 쓸 최대 크기
  • 디스크 파티션 삭제
  • # dd if=/dev/zero of=/dev/sda count=1 bs=512
  • if= 입력대상 of= 출력대상
  • 읽고 쓸 최대 크기 count= 지정 수 많큼 복사
  • 디스크 초기화
  • # dd if=/dev/zero of=/dev/sdb1
  • if= 입력대상[/dev/zero는 고정]
  • of= 출력대상
  • dd 명령어는 매우 유용하지만, 조심해서 사용해야 합니다. 잘못 사용하면 데이터의 손실이 발생할 수 있으므로, 사용하기 전에 명령어의 옵션과 동작을 충분히 이해해야 합니다.
PLEASE WAIT WHILE LOADING...