> 패키지 및 시스템 관리 > dd

dd: 파일 변환 및 복사

dd 명령어는 파일을 변환하고 복사하는 데 사용되는 강력한 유틸리티입니다. 주로 디스크 이미지 생성, 파티션 백업 및 복원, 부팅 가능한 USB 드라이브 생성, 파일 내용 삭제 등 저수준 데이터 조작에 활용됩니다. 잘못 사용하면 데이터 손실을 초래할 수 있으므로 매우 주의해야 합니다.

개요

dd는 'disk dump' 또는 'data duplicator'의 약어로 알려져 있으며, 블록 단위로 데이터를 읽고 쓰는 방식으로 작동합니다. 입력 파일(if)에서 데이터를 읽어 출력 파일(of)로 복사하며, 이 과정에서 다양한 변환(conv) 및 블록 크기(bs) 옵션을 적용할 수 있습니다.

주요 기능

  • 디스크/파티션 이미지 생성 및 복원
  • 부팅 가능한 미디어 생성
  • 파일 크기 조정 및 내용 초기화
  • 데이터 변환 (예: 대소문자 변환)

주요 옵션

dd 명령어는 다양한 옵션을 통해 정교한 데이터 조작이 가능합니다. 특히 입력(if)과 출력(of) 파일 지정이 중요하며, 블록 크기(bs)와 복사할 블록 수(count)를 통해 작업 범위를 제어합니다.

입력/출력 지정

블록 크기 및 수

변환 및 상태

생성된 명령어:

명령어를 조합해 보세요.

설명:

`dd` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

dd 명령어는 강력하지만, 잘못된 사용은 심각한 데이터 손실을 초래할 수 있습니다. 아래 예시들은 일반적인 사용법을 보여주지만, 실제 시스템 디스크에 적용할 때는 반드시 백업을 수행하고 신중하게 접근해야 합니다.

100MB 더미 파일 생성

dd if=/dev/zero of=dummy.img bs=1M count=100

/dev/zero에서 1MB 블록 100개를 읽어 'dummy.img' 파일을 생성합니다.

디스크 파티션 백업 (주의 필요)

dd if=/dev/sda1 of=sda1_backup.img bs=4M status=progress

/dev/sda1 파티션의 전체 내용을 'sda1_backup.img' 파일로 백업합니다. 'status=progress'로 진행 상황을 표시합니다. **대상 장치 경로를 매우 신중하게 확인하세요.**

파일 내용 0으로 채우기 (보안 삭제)

dd if=/dev/zero of=myfile.txt bs=1M count=1 conv=notrunc

기존 'myfile.txt' 파일의 내용을 0으로 덮어씁니다. 'conv=notrunc'는 파일 크기를 유지합니다.

ISO 이미지로 부팅 가능한 USB 드라이브 생성 (매우 주의)

dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress conv=fsync

'ubuntu.iso' 파일을 '/dev/sdb' USB 드라이브에 복사하여 부팅 가능하게 만듭니다. **'of'에 지정하는 장치 경로를 반드시 확인하세요. 잘못 지정하면 시스템 디스크가 손상됩니다.** 'conv=fsync'는 모든 데이터를 디스크에 완전히 기록하도록 합니다.

파일의 특정 부분 복사

dd if=input.txt of=output.txt bs=1 count=100 skip=50 seek=0

'input.txt' 파일의 51번째 바이트부터 100바이트를 읽어 'output.txt' 파일의 시작 부분에 복사합니다. (bs=1이므로 skip/seek은 바이트 단위)

팁 & 주의사항

dd 명령어는 매우 강력하므로 사용 시 각별한 주의가 필요합니다. 특히 `if`와 `of` 옵션에 잘못된 장치나 파일을 지정하면 시스템 데이터가 손상될 수 있습니다.

핵심 주의사항

  • **대상 확인**: `if`와 `of`에 지정하는 경로를 여러 번 확인하세요. 특히 `/dev/sda`와 같은 장치 파일은 치명적일 수 있습니다.
  • **진행 상황**: `status=progress` 옵션을 사용하여 작업 진행 상황을 실시간으로 확인하세요. 대용량 작업 시 유용합니다.
  • **블록 크기**: `bs` 옵션은 성능에 큰 영향을 미칩니다. 일반적으로 1M, 4M, 8M 등이 효율적입니다.
  • **데이터 손실 위험**: `dd`는 경고 없이 데이터를 덮어쓸 수 있으므로, 중요한 데이터가 있는 디스크나 파티션에 사용할 때는 반드시 백업을 먼저 수행하세요.

pv 명령어와 함께 사용

`dd` 명령어 자체는 진행률 표시가 제한적입니다. `pv` (Pipe Viewer) 명령어를 함께 사용하면 더 상세한 진행률, 전송 속도, 예상 완료 시간 등을 확인할 수 있습니다. `pv`가 설치되어 있지 않다면 먼저 설치해야 합니다. (예: `sudo apt install pv` 또는 `sudo yum install pv`) **사용 예시:** `dd if=/dev/sda | pv -pteb | dd of=/dev/sdb`


동일 카테고리 명령어