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

dd: 데이터 복사 및 변환 (디스크 복제/USB 제작)

파일을 블록 단위로 복사하거나 변환하는 강력한 도구입니다. 부팅 USB 만들기, 디스크 백업(이미지 덤프), 파일 생성 등에 사용되지만, 출력 대상을 잘못 지정하면 데이터를 모두 날릴 수 있어 'Disk Destroyer'라는 별명이 있습니다.

dd란 무엇인가?

dd는 'Data Description' 또는 'Disk Dump'의 약자로 알려져 있습니다. 일반적인 복사(`cp`)와 달리 하드웨어 장치(디스크, USB)를 직접 다루거나 원본 데이터를 비트(Bit) 단위로 그대로 복제할 때 사용합니다.

핵심 문법 구조

옵션 앞에 대시(-)를 붙이지 않고 `키=값` 형태로 사용합니다.

  • if (Input File): 입력 대상입니다. (원본 파일, ISO 이미지, 읽어올 디스크 장치 등)
  • of (Output File): 출력 대상입니다. (복사될 위치, USB 장치, 백업 파일 등) **가장 주의해야 할 옵션입니다.**
  • bs (Block Size): 한 번에 읽고 쓸 데이터 크기입니다. (예: 4M, 1G). 속도에 영향을 줍니다.

⚠️ 경고: 사용 전 확인 필수

`of=`(출력 대상)에 실수로 시스템 하드디스크를 지정하면 운영체제와 데이터가 순식간에 사라집니다. `lsblk` 명령어로 장치 경로(예: `/dev/sdb`)를 반드시 확인하세요.

주요 옵션 (Shell)

dd는 옵션 순서가 중요하지 않지만, 보통 `if` > `of` > `bs` > `status` 순으로 작성합니다.

1. 입출력 지정 (필수)

2. 크기 및 속도 제어

3. 데이터 변환 및 제어

생성된 명령어:

명령어를 조합해 보세요.

설명:

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

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

사용 시나리오 예시

실무에서 자주 사용하는 dd 명령어 패턴입니다.

부팅 USB 만들기

sudo dd if=ubuntu-22.04.iso of=/dev/sdb bs=4M status=progress

ISO 파일을 USB 장치(`/dev/sdb`라고 가정)에 굽습니다. `bs=4M`은 속도 향상을 위함입니다.

디스크 전체 백업 (이미지 생성)

sudo dd if=/dev/sda of=~/backup.img bs=64K status=progress

`/dev/sda` 디스크 전체를 `backup.img` 파일로 만듭니다.

디스크 완전 삭제 (Wiping)

sudo dd if=/dev/urandom of=/dev/sdX bs=1M status=progress

디스크(`/dev/sdX`)를 무작위 데이터로 덮어씌워 복구 불가능하게 만듭니다.

특정 용량의 빈 파일 만들기

dd if=/dev/zero of=testfile_1GB bs=1G count=1

테스트용으로 1GB짜리 빈 파일(0으로 채워진)을 생성합니다.

팁 & 주의사항

유용한 팁

  • sudo 권한: 하드웨어 장치(/dev/...)를 다룰 때는 반드시 `sudo`가 필요합니다.
  • /dev/zero 와 /dev/urandom: `if=/dev/zero`는 무한히 0을 출력하고, `if=/dev/urandom`은 무한히 무작위 데이터를 출력하는 특수 파일입니다.
  • USB 장치 찾기: USB를 꽂기 전후로 `lsblk` 명령어를 입력해 새로 생긴 장치 이름(예: sdb, sdc)을 정확히 파악해야 합니다.

관련 명령어

기능적으로 유사하거나 함께 자주쓰이는 명령어들입니다.



동일 카테고리 명령어