개요
리눅스 환경에서 디스크 복제, 백업, 더미 파일 생성에 필수적인 dd 명령어의 핵심 옵션과 실무 활용법을 알아봅니다. bs, count, status=progress, conv, oflag 등 자주 쓰이는 옵션을 실제 터미널 실습을 통해 비교 분석합니다.
1. dd 기초 사용법: if, of와 블록 크기(bs, count) 제어
dd 명령어 실습을 안전하게 진행할 전용 디렉터리를 생성하고 이동하기 위해 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).

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

2. 대용량 작업 시 진행률 모니터링: status=progress 옵션
이전 실습을 진행했던 작업 디렉터리로 이동하기 위해 cd /tmp/dd_demo 명령어를 실행합니다.

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

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

3. 데이터 변환 및 안전한 복사: conv 옵션 활용법
dd 명령어 실습을 이어가기 위해 작업 디렉터리로 이동하는 cd /tmp/dd_demo 명령어를 실행합니다.

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

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

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

4. 디스크 I/O 쓰기 성능 측정: oflag=direct 옵션과 정리
디스크 I/O 벤치마크 실습을 진행하기 위해 작업 디렉터리로 이동하는 cd /tmp/dd_demo 명령어를 실행합니다.

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

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

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