PhotoRec로 USB 30GB 복구 — 공인인증서, 장부 엑셀, 사진까지
포맷도 안 했는데 USB가 안 읽힌다. PhotoRec 한 번이면 거의 다 살린다.
목차
가족 USB가 갑자기 안 읽힌다고 들고 왔다. 포맷 안 했고, 안 떨어뜨렸고, 평소처럼 빼고 꽂았을 뿐.
Mac에 꽂으면:
"이 디스크는 이 컴퓨터에서 읽을 수 없습니다"
[초기화] [무시] [꺼내기]
당연히 [초기화] 누르면 안 됨. PhotoRec 깔고 30분이면 끝.
PhotoRec이 뭐냐
PhotoRec은 30년 된 데이터 복구 도구. 파일시스템이 깨졌어도 파일 시그니처(magic bytes) 기반으로 직접 스캔해서 복구.
- JPEG →
FF D8 FF E0 ... FF D9패턴 - PDF →
%PDF-...%%EOF - Office → ZIP 컨테이너 시그니처 + 내부 XML
- …
지원 포맷 480개 이상. 한국에서 자주 만나는 것:
| 포맷 | 시그니처 | 복구 가능 |
|---|---|---|
| JPEG/PNG | 표준 매직 | ✓ |
| HWP | 한컴 헤더 | ✓ |
| HWPX | ZIP 기반 | ✓ |
| 공인인증서 (.crt, .key) | DER/PEM | ✓ |
| 엑셀 .xlsx | ZIP 기반 | ✓ |
| MP4/MOV | ftyp 박스 | ✓ |
설치 (macOS)
brew install testdisk
testdisk 패키지 안에 photorec이 들어있음 (같은 개발자).
디스크 식별
USB가 안 읽힌다고 해서 장치 노드가 없는 건 아니다. 운영체제는 디스크 자체는 인식하는데 파일시스템이 깨진 것.
$ diskutil list
/dev/disk0 (internal):
...
/dev/disk4 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *32.0 GB disk4
1: Microsoft Basic Data 32.0 GB disk4s1
/dev/disk4 가 그 USB. 파티션은 보이지만 마운트 안 됨 = 파일시스템 메타데이터 손상.
PhotoRec 실행
sudo photorec /dev/disk4
대화형 TUI. 단계별 선택:
PhotoRec 7.2 (Feb 2024)
1. 디스크 선택 → /dev/disk4
2. 파티션 테이블 → Intel/PC partition (USB 기본)
3. 파티션 선택 → No name (32GB) ← "no name"으로 표시되는 게 정상
4. 파일시스템 → Other (FAT/NTFS/exFAT/HFS/...) ← 자동 감지 안 되면 Other
5. 영역 → Whole: extract files from whole partition
6. 출력 디렉터리 → 외장 SSD에 새 폴더 (USB 자기 자신은 안 됨)
진행 화면
Pass 1 - Reading sector 234567/62500000
Files saved: 1247
jpg: 450
png: 89
hwp: 23
xlsx: 12
pdf: 31
...
Estimated time to completion: 18 minutes
30GB USB는 약 30분. 전 영역 스캔이라 빈 영역도 다 읽어봄.
결과
복구된 파일은 recup_dir.1, recup_dir.2, … 폴더에 1000개씩 분배.
output/
├── recup_dir.1/
│ ├── f0000001.jpg
│ ├── f0000002.jpg
│ ├── ...
│ └── f0000999.hwp
├── recup_dir.2/
│ ├── f0001000.xlsx
│ └── ...
└── ...
파일명은 다 잃는다. 시그니처로 발견한 거니 원본 파일명은 메타데이터에 없음. 확장자만 알 수 있음.
분류 노가다
이 단계가 사실 진짜 작업. 천 개 jpg 중 어느 게 작년 가족여행이고 어느 게 인터넷 캐시인지 골라야 함.
자동화 팁:
1) 미리보기 일괄 생성
# macOS Finder 미리보기로 일괄 보기
open output/recup_dir.1/
# Cmd+A → 스페이스로 빠르게 훑기
2) 크기 기반 필터링
# 100KB 이하 jpg는 보통 캐시/썸네일
find output/ -name "*.jpg" -size -100k -delete
3) EXIF 날짜로 분류
# 날짜별 폴더로 자동 분류
exiftool -d "%Y-%m-%d" '-Directory<DateTimeOriginal' -r output/
4) 중복 제거
brew install fdupes
fdupes -r output/ -dN # 중복 자동 삭제
실제 살린 것들 (가족 USB)
- 사진 약 4,000장 (대부분 캐시 썸네일, 진짜는 800장 정도)
- 한컴 .hwp 23개 (이력서, 발표 자료, 문서)
- 엑셀 .xlsx 12개 (가계부, 장부)
- 공인인증서 1세트 (.crt + .key) — 이게 진짜 중요
가족 입장에선 “다행이다” + “그동안 백업 안 한 게 미안하다”.
안 살아나는 케이스
- 포맷 후 다시 쓴 영역: 한 번 새 데이터로 덮으면 시그니처도 사라짐
- 암호화 디스크: 키 없으면 복호화 못 함
- 물리적 손상 (낙하, 침수): 디스크 노드 자체가 안 잡히면 PhotoRec도 무력. 데이터 복구 업체로.
USB가 인식은 되는데 마운트만 안 되는 경우 = 거의 다 살릴 수 있다.
만들면서 알게 된 것들
파일시스템과 데이터는 별개다. 파일시스템 메타(파일 위치, 이름, 디렉터리 구조)가 깨져도 데이터 자체는 디스크에 그대로 있다. 시그니처로 직접 찾을 수 있음.
무조건 출력은 다른 디스크로. 같은 USB에 출력하면 복구하면서 원본 덮어쓰는 모순. 외장 SSD/HDD 또는 본 컴퓨터 디스크로.
“초기화하시겠습니까?”는 절대 누르지 말 것. OS가 권하는 초기화는 파일시스템 재생성 = 메타데이터 새로 씀 = 복구 가능성 ↓.
PhotoRec는 30년 된 도구다. 인터페이스는 90년대지만 그래서 안정적이고 모든 OS에서 돈다. testdisk + photorec 조합이 데이터 복구 첫 도구.
한 줄 결론
USB/외장하드가 갑자기 안 읽혀도 절대 초기화 누르지 말고 PhotoRec 한 번. 30분 + 외장 디스크 + 분류 노가다 이틀이면 거의 다 살림.