메뉴 건너뛰기

Hodol's Blog

dd 명령을 이용한 백업 및 복구

목차
여는 말
백업/복구 과정에서 백업/복구 대상은 unmount해야하므로, 루트 파일 시스템을 백업한다면 Live CD로 부팅하여 작업하도록 한다. 여기서는 sda장치를 백업하여 sdb1 파티션에 이미지 파일로 저장하고 이를 다시 복구하는 예제를 생각해본다.
Backup
백업데이터가 저장될 디스크를 마운트 한다.
# mount /dev/sdb1 /mnt/
파티션 데이블을 백업한다.
# sfdisk -d /dev/sda > /mnt/sda-partition-table
파티션을 파일로 복사한다.
# dd if=/dev/sda1 of=/mnt/sda1-image bs=1K
위의 방식은 빈 영역도 용량에 포함되기 때문에 다음과 같이 압축하여 용량을 줄일 수 있다.
# dd if=/dev/sda1 bs=1K | gzip -c > /mnt/sda1-image.gz
생성된 이미지는 다음과 같이 마운트하여 내용을 보거나 수정할 수 있다.
# mount -o loop sda1-image /mnt
파일 시스템 검사도 할 수 있다.
# e2fsck -f sda1-image
Restore
백업 이미지가 저장되어 있는 디스크를 마운트한다.
# mount -o ro /dev/sdb1 /mnt
파티션 테이블을 복구한다.
# sfdisk /dev/sda < /mnt/sda-partition-table
파티션을 복구한다.
# dd if=/mnt/sda1-image of=/dev/sda1 bs=1K
또는, 압축을 하였다면 다음과 같이 복구한다.
# gzip -cd /mnt/sda1-image.gz | dd of=/dev/sda1 bs=1K
참고
  • http://zeper.tistory.com/276
  • http://srackham.wordpress.com/2010/06/25/minimalist-machine-clone/
  • http://blogs.gnome.org/muelli/2012/10/loopback-monting-huge-gzipped-file/
  • http://www.ubuntu.or.kr/viewtopic.php?f=18&t=11774