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)을 정확히 파악해야 합니다.