raw flash와 관리형 저장장치는 출발점이 다릅니다
| raw flash의 대표 경로 | 관리형 저장장치의 대표 경로 |
|---|---|
| 파일 → UBIFS → UBI → MTD → raw NAND/NOR | 파일 → ext4 등 → block layer → eMMC·SSD 등의 controller |
| 운영체제가 erase block·bad block 등 raw flash 특성을 고려합니다. | 내부 controller와 FTL이 flash 물리를 감추고 block I/O를 제공합니다. |
UBIFS는 UBI volume 위에서 동작하는 파일 시스템입니다. UBI는 파일 이름·디렉터리를 관리하는 파일 시스템 자체가 아닙니다. JFFS2는 UBI를 필수로 거치지 않고 MTD 위에서 동작합니다. eMMC 안에 NAND가 있다는 이유만으로 /dev/mmcblk 장치를 UBIFS의 일반 대상이라고 보면 안 됩니다. UBIFS와 MTD·UBI의 관계
LEB와 PEB의 크기는 장치와 배치에 따라 달라집니다
PEB는 물리 erase block, LEB는 UBI가 제공하는 논리 erase block입니다. UBI는 헤더와 데이터 offset 등을 고려해 PEB 일부를 관리용으로 사용합니다. 예전 예제의 “PEB 128 KiB, LEB 126 KiB”는 특정 조건의 숫자이지 UBI의 보편적인 상수가 아닙니다.
- UBIFS의 논리 데이터
파일 시스템이 UBI volume의 LEB 번호와 내부 offset을 사용합니다.
UBI가 현재 대응하는 PEB를 찾습니다.
- UBI의 매핑
wear leveling·bad block 처리 등에 따라 물리 배치가 바뀔 수 있습니다.
MTD에 필요한 I/O를 요청합니다.
- MTD와 flash driver
장치의 page·erase 단위와 오류 상태를 처리합니다.
화살표는 주소 해석과 I/O 요청의 계층입니다. 파일이 바뀔 때 항상 전체 flash를 순서대로 복사한다는 뜻은 아닙니다.
UBIFS의 superblock·master node 위치에 대한 설명을 UBI 전체의 일반 volume 규칙과 혼동하지 않습니다. 어느 계층의 구조를 설명하는지 이름을 붙여야 합니다. Linux MTD 프로젝트의 UBI 설명
파일 시스템 이미지와 UBI 이미지는 다릅니다
| 산출물 | 담는 것 | 맞춰야 하는 정보 |
|---|---|---|
| UBIFS image | UBIFS 파일 시스템 내용 | minimum I/O, LEB 크기, 최대 LEB 수 등 대상 설정 |
| UBI image | UBI volume 배치와 각 volume의 내용 | PEB 크기·헤더 offset·volume 구성 등 |
| ext4 image | block 장치 위의 ext4 파일 시스템 | 대상 block 공간·feature 지원·마운트 구성 |
확장자만 보고 기록 방법을 선택하지 않습니다. rootfs.ubifs를 raw flash 전체용 이미지처럼 취급하거나 UBI 헤더가 포함된 이미지를 일반 파일 시스템 이미지처럼 마운트하면 계층이 맞지 않습니다. 이미 사용 중인 volume의 갱신과 flash 초기화도 다른 작업입니다.
지우기 전에 현재 geometry부터 읽습니다
cat /proc/mtd
cat /sys/class/mtd/mtd0/erasesize
cat /sys/class/mtd/mtd0/writesize
ubinfo -a관찰용 명령 예입니다. mtd0이라는 장치가 실제로 존재하는지 먼저 확인해야 하며 ubinfo는 도구 설치와 UBI 장치 상태에 따라 결과가 달라집니다. 여기서는 erase·format·raw write 명령을 예제로 실행하지 않습니다. 장치 정보와 이미지 생성 설정을 맞추는 것이 먼저입니다.
| 증상 | 나누어 볼 원인 |
|---|---|
| attach 실패 | 잘못된 flash 영역, 헤더·geometry 불일치, 손상, 지원 설정 등을 확인합니다. |
| UBI는 보이지만 mount 실패 | volume 종류와 내용, UBIFS 형식·기능, mount 대상 이름을 확인합니다. |
| 전원 차단 뒤 문제 | write 완료·commit·업데이트 절차와 실제 오류 로그를 봅니다. “journal이 있으니 모든 작업이 보존된다”고 가정하지 않습니다. |