Ubuntu btrfs 시스템에서 부트로더까지 포함한 완전한 디스크 백업을 만들고, 문제 발생 시 빠르게 복구하는 방법을 소개합니다. Recovery Mode와 Live USB 환경에서의 최적화된 백업/복구 전략을 다룹니다.
시스템 환경
- OS: Ubuntu 25.04 (Kubuntu)
- 파일시스템: btrfs (서브볼륨 구조)
- 디스크: NVMe SSD (/dev/nvme0n1)
- 백업 저장소: NAS (NFS/SMB 지원)
백업 전략 개요
이 가이드는 두 가지 상황에 대응합니다:
- 정상 상황에서의 백업: Recovery Mode + NFS
- 시스템 복구: Live USB + SMB
각각 최적화된 방법을 사용하여 호환성과 효율성을 극대화했습니다.
1. 전체 디스크 백업 (Recovery Mode 사용)
왜 Recovery Mode인가?
- 대부분의 시스템 서비스가 중지되어 안전한 백업 환경 제공
- 기존 네트워크 설정과 마운트 정보 그대로 활용 가능
- Live USB 없이도 빠른 백업 수행
Step 1: Recovery Mode 진입
# 시스템 재부팅
sudo reboot
GRUB 메뉴에서:
- "Advanced options for Ubuntu" 선택
- "Ubuntu, with Linux X.X.X-XX-generic (recovery mode)" 선택
- Recovery Menu에서 "Enable networking" 선택
- "Drop to root shell prompt" 선택
Step 2: NAS 마운트
# 마운트 디렉토리 생성
mkdir -p /home/username/nas
# NFS로 NAS 마운트 (기존 fstab 설정 활용)
mount -t nfs YOUR_NAS_IP:/volume1/nas /home/username/nas
# 마운트 확인
df -h | grep nas
# 백업 디렉토리 생성
mkdir -p /home/username/nas/images
Step 3: 압축 백업 수행 (권장)
# 압축 백업 - 시간과 용량 모두 절약
dd if=/dev/nvme0n1 bs=1M status=progress | gzip > /home/username/nas/images/nvme0n1-backup-$(date +%Y%m%d-%H%M%S).img.gz
# 일반 백업 (압축 없음) - 복구 시 더 빠름
dd if=/dev/nvme0n1 of=/home/username/nas/images/nvme0n1-backup-$(date +%Y%m%d-%H%M%S).img bs=1M status=progress
Step 4: 백업 완료 확인
# 백업 파일 확인
ls -lh /home/username/nas/images/nvme0n1-backup-*
# 파일 크기 확인
du -h /home/username/nas/images/nvme0n1-backup-*
# 마운트 해제 후 정상 부팅
umount /home/username/nas
reboot
2. 디스크 복구 (Live USB 사용)
언제 Live USB를 사용하나?
- 시스템이 부팅되지 않는 경우
- 부트로더가 손상된 경우
- 하드웨어 문제로 Recovery Mode 진입 불가능한 경우
Step 1: Live USB 준비 및 부팅
- Ubuntu Live USB 생성
- Live USB로 부팅
- "Try Ubuntu without installing" 선택
Step 2: SMB로 NAS 연결
# SMB 클라이언트 설치
sudo apt update
sudo apt install cifs-utils
# 마운트 디렉토리 생성
sudo mkdir -p /mnt/nas
# SMB로 NAS 마운트 (Live 환경에서 호환성 최고)
sudo mount -t cifs //YOUR_NAS_IP/nas /mnt/nas -o username=YOUR_USERNAME,password=YOUR_PASSWORD
# 마운트 확인
df -h | grep nas
ls /mnt/nas/images/
Step 3: 디스크 확인
# 디스크 목록 확인
lsblk
# 타겟 디스크 확인 (매우 중요!)
sudo fdisk -l /dev/nvme0n1
# 파티션 구조 확인
sudo parted /dev/nvme0n1 print
Step 4: 이미지 복원
# ⚠️ 주의: 복원하면 현재 디스크의 모든 내용이 삭제됩니다
# 복원할 이미지 파일 확인
ls -lh /mnt/nas/images/nvme0n1-backup-*
# 일반 이미지 복원
sudo dd if=/mnt/nas/images/nvme0n1-backup-YYYYMMDD-HHMMSS.img of=/dev/nvme0n1 bs=1M status=progress
# 압축된 이미지 복원
gunzip -c /mnt/nas/images/nvme0n1-backup-YYYYMMDD-HHMMSS.img.gz | sudo dd of=/dev/nvme0n1 bs=1M status=progress
Step 5: 복원 완료
# 복원 완료 후 동기화
sync
# 마운트 해제
sudo umount /mnt/nas
# 시스템 재부팅
sudo reboot
3. 빠른 롤백 (Recovery Mode 복구)
디스크와 부트로더는 정상이지만 시스템 설정 문제로 롤백이 필요한 경우, Live USB 없이도 빠르게 복구할 수 있습니다.
사용 시나리오
- 시스템 업데이트 후 문제 발생
- 설정 변경으로 인한 시스템 불안정
- 소프트웨어 충돌로 인한 부팅 문제
복구 과정
# Recovery Mode 진입 (위와 동일)
# Enable networking → Drop to root shell prompt
# 루트 파일시스템을 읽기/쓰기로 재마운트
mount -o remount,rw /
# NAS 마운트
mount -t nfs YOUR_NAS_IP:/volume1/nas /home/username/nas
# 이미지 복원
gunzip -c /home/username/nas/images/nvme0n1-backup-YYYYMMDD-HHMMSS.img.gz | dd of=/dev/nvme0n1 bs=1M status=progress
# 완료 후 재부팅
sync
umount /home/username/nas
reboot
4. 백업 최적화 팁
압축 vs 비압축
압축 백업 (권장):
- ✅ 용량: 1TB → 10-20GB (빈 공간 압축률 높음)
- ✅ 전송: NAS 업로드 시간 단축
- ✅ 저장: 여러 백업 보관 가능
- ❌ 속도: CPU 압축 연산으로 속도 감소
비압축 백업:
- ✅ 속도: 최대 전송 속도로 백업
- ✅ 복구: 압축 해제 과정 없이 바로 복원
- ❌ 용량: 전체 디스크 크기만큼 필요
- ❌ 전송: 네트워크 전송 시간 오래 걸림
백업 파일 관리
# 파일명 규칙
nvme0n1-backup-YYYYMMDD-HHMMSS.img.gz
# 예시
nvme0n1-backup-20250720-143000-stable.img.gz # 안정 버전
nvme0n1-backup-20250720-200000-before-update.img.gz # 업데이트 전
5. 트러블슈팅
일반적인 문제들
디스크 경로 오류:
# 올바른 경로 확인
lsblk
ls /dev/nvme*
# 정확한 경로 사용 (/dev/nvme0n1)
dd if=/dev/nvme0n1 ... # ✅ 올바름
dd if=dev/nvme0n1 ... # ❌ 슬래시 빠짐
NFS 마운트 실패:
# 네트워크 확인
ping YOUR_NAS_IP
# SMB 대안 사용
mount -t cifs //YOUR_NAS_IP/nas /mnt/nas -o username=USER,password=PASS
권한 문제:
# Recovery Mode에서 root 권한 확인
whoami # root 출력되어야 함
# Live USB에서 sudo 사용
sudo dd if=/dev/nvme0n1 ...
Recovery Mode 특수 상황
디바이스 파일 누락:
# udev 재시작
udevadm trigger
udevadm settle
# 디바이스 파일시스템 재마운트
mount -t devtmpfs devtmpfs /dev
6. 보안 고려사항
백업 파일 보호
- 백업 이미지에는 모든 개인정보와 시스템 설정이 포함됨
- NAS 접근 권한을 적절히 제한
- 중요한 백업은 암호화 고려
네트워크 보안
# SMB 연결 시 자격증명 파일 사용 (권장)
echo "username=YOUR_USERNAME" > /tmp/creds
echo "password=YOUR_PASSWORD" >> /tmp/creds
chmod 600 /tmp/creds
sudo mount -t cifs //YOUR_NAS_IP/nas /mnt/nas -o credentials=/tmp/creds
결론
이 가이드를 통해 Ubuntu btrfs 시스템의 완전한 백업과 복구 시스템을 구축할 수 있습니다. Recovery Mode를 활용한 백업과 Live USB를 통한 복구의 조합으로 거의 모든 상황에 대응할 수 있으며, 각각의 환경에 최적화된 방법을 사용하여 효율성과 안정성을 극대화했습니다.
정기적인 백업을 통해 시스템 실험과 업데이트를 안심하고 진행할 수 있으며, 문제 발생 시 빠른 복구로 다운타임을 최소화할 수 있습니다.
'개발일지와 메모사이 > Ubuntu' 카테고리의 다른 글
| [WSL] 우분투에 NFS 프로토콜로 Synology NAS 마운트하기(AUTH_SYS 인증방식) (0) | 2023.09.05 |
|---|---|
| Ubuntu에 SMB 네트워크 드라이브 마운트 (0) | 2023.09.04 |
| Ubuntu에 SSH 서버 설치 (0) | 2023.09.01 |