|
|
SD카드/USB를 이미지 파일(.img) 로 그대로 뜨는 방식
대표 명령:
dd if=/dev/sdX of=backup.img bs=4M status=progress
👉 결과
부트로더 + 커널 + 루트파일시스템까지 전부 포함
완전히 동일한 복제본 생성
👉 특징
✔ 가장 확실함
❌ 용량 그대로 (예: 32GB → 32GB 이미지)
2️⃣ 파일 시스템만 추출 (부분 export)
루트 파일시스템만 따로 빼는 방법입니다.
mount /dev/sdX2 /mnt tar czvf rootfs.tar.gz -C /mnt .
👉 결과
/bin, /etc, /lib 등 리눅스 파일들만 추출
👉 특징
✔ 커스터마이징 분석에 좋음
❌ 부트로더, 파티션 정보는 빠짐
3️⃣ “패키징 구조”로 재구성 (난이도 높음)
이건 사용자가 말한 **“제품 맞춤 패키지 → 다시 만들기”**에 해당합니다.
필요한 것:
부트로더 (예: U-Boot)
커널 이미지 (zImage / uImage)
디바이스 트리 (dtb)
루트 파일시스템
👉 문제점
제조사가 커스터마이징한 내용
드라이버 / 설정 / 스크립트 구조
빌드 시스템 (예: Buildroot, Yocto Project)
➡️ 이런 건 이미지에서 바로 “원래 패키지 형태로” 복원은 거의 불가능
(소스 기반 빌드 구조는 사라져 있음)
🔥 핵심 정리
방법가능 여부특징
| 통째 이미지 복제 (dd) | ✅ 매우 쉬움 | 완전 동일 복제 |
| 파일만 추출 | ✅ 쉬움 | 분석용 |
| 원래 패키지 구조로 복원 | ⚠️ 거의 불가능 | 빌드환경 필요 |
💡 현실적인 사용 시나리오
백업 → 👉 dd 사용
분석/수정 → 👉 mount + tar
제품 재개발 → 👉 Buildroot / Yocto로 재구성
⚠️ 중요한 포인트
SD카드에 있는 건 “결과물”이지 “소스”가 아닙니다
즉, 컴파일된 리눅스 → 다시 개발환경으로 되돌리는 건 어렵다
원하시면
👉 “실제 SD카드 구조가 어떻게 생겼는지 (부트, 루트 분리 구조)”
👉 “임베디드 리눅스가 부팅되는 전체 흐름”
이걸 PLC/장비 기준으로 현실적으로 설명해 드릴게요.