우분투 dd 명령어 완벽 정리: 옵션별 실습부터 디스크 벤치마크까지

개요

리눅스 환경에서 디스크 복제, 백업, 더미 파일 생성에 필수적인 dd 명령어의 핵심 옵션과 실무 활용법을 알아봅니다. bs, count, status=progress, conv, oflag 등 자주 쓰이는 옵션을 실제 터미널 실습을 통해 비교 분석합니다.

1. dd 기초 사용법: if, of와 블록 크기(bs, count) 제어

dd 명령어 실습을 안전하게 진행할 전용 디렉터리를 생성하고 이동하기 위해 mkdir -p /tmp/dd_demo && cd /tmp/dd_demo 명령어를 실행합니다.

mkdir -p /tmp/dd_demo && cd /tmp/dd_demo

dd 명령어는 파일이나 블록 디바이스 데이터를 블록 단위로 복사하고 변환하는 도구입니다.
/dev/zero로부터 데이터를 읽어 1MB 크기 블록을 10회 복사하여 정확히 10MB 용량의 sample_10m.img 더미 파일을 생성합니다.
⚙️ [주요 옵션]

if=FILE : 데이터를 읽어올 입력 파일 또는 장치 경로를 지정합니다.
of=FILE : 데이터를 기록할 출력 파일 또는 장치 경로를 지정합니다.
bs=BYTES : 한 번에 읽고 쓸 블록 크기를 바이트 단위로 지정합니다.
count=N : 복사할 입력 블록의 총 개수를 지정합니다.
status=LEVEL : 전송 진행 상태나 통계 정보 출력 여부를 제어합니다(예: progress).
conv=CONVS : 데이터 복사 과정에서 적용할 변환 또는 동기화 방식을 지정합니다(예: sync, fdatasync).

dd if=/dev/zero of=sample_10m.img bs=1M count=10

생성된 더미 파일이 10MB 크기로 올바르게 만들어졌는지 확인하기 위해 ls -lh sample_10m.img 명령어를 실행합니다.

ls -lh sample_10m.img

2. 대용량 작업 시 진행률 모니터링: status=progress 옵션

이전 실습을 진행했던 작업 디렉터리로 이동하기 위해 cd /tmp/dd_demo 명령어를 실행합니다.

cd /tmp/dd_demo

dd 명령어에 status=progress 옵션을 지정하여 실시간 복사 진행률과 전송 속도를 확인하면서 100MB 크기의 sample_100m.img 더미 파일을 생성합니다.
진행 상태를 화면에 지속적으로 출력하므로 대용량 파일 복사나 디스크 복제 작업 시 유용합니다.

dd if=/dev/zero of=sample_100m.img bs=1M count=100 status=progress

생성된 sample_100m.img 파일이 100MB 용량으로 올바르게 기록되었는지 상세 정보를 확인하기 위해 ls -lh sample_100m.img 명령어를 실행합니다.

ls -lh sample_100m.img

3. 데이터 변환 및 안전한 복사: conv 옵션 활용법

dd 명령어 실습을 이어가기 위해 작업 디렉터리로 이동하는 cd /tmp/dd_demo 명령어를 실행합니다.

cd /tmp/dd_demo

텍스트 변환 실습에 사용할 영문 소문자 문자열이 포함된 input.txt 파일을 생성하기 위해 echo 'hello linux ubuntu dd command tutorial' > input.txt 명령어를 실행합니다.

echo ‘hello linux ubuntu dd command tutorial’ > input.txt

dd 명령어의 conv=ucase 옵션을 지정하여 입력 파일의 모든 알파벳 소문자를 대문자로 변환한 뒤 output_upper.txt 파일로 복사합니다.
status=none 옵션을 함께 사용하여 불필요한 전송 통계 출력을 숨기고 변환된 파일만 생성합니다.

dd if=input.txt of=output_upper.txt conv=ucase status=none

변환 결과 파일의 내용이 모두 대문자로 정상 기록되었는지 확인하기 위해 cat output_upper.txt 명령어를 실행합니다.

cat output_upper.txt

4. 디스크 I/O 쓰기 성능 측정: oflag=direct 옵션과 정리

디스크 I/O 벤치마크 실습을 진행하기 위해 작업 디렉터리로 이동하는 cd /tmp/dd_demo 명령어를 실행합니다.

cd /tmp/dd_demo

dd 명령어에 oflag=direct 옵션을 지정하여 운영체제 버퍼 캐시를 우회하고 스토리지 장치에 직접 50MB 데이터를 기록합니다.
status=progress 옵션을 함께 사용하여 캐시 간섭이 없는 실제 디스크의 순수 I/O 쓰기 전송 속도를 실시간으로 측정합니다.

dd if=/dev/zero of=bench_test.img bs=1M count=50 oflag=direct status=progress

모든 실습을 마친 후 테스트에 사용했던 임시 디렉터리와 생성된 파일들을 모두 정리하기 위해 rm -rf /tmp/dd_demo 명령어를 실행합니다.

rm -rf /tmp/dd_demo

지금까지 우분투 환경에서 dd 명령어의 주요 옵션별 실습과 디스크 벤치마크 측정 방법까지 간단하게 살펴보았습니다.
강력한 도구인 만큼 대상 드라이브 경로(of)를 항상 꼼꼼하게 확인하시어 안전하고 유용하게 활용해 보시기 바랍니다.