Почему флеш требует специальных ФС? Краткая физикаКоллеги, флеш-память (NAND/eMMC) — основа современных телевизоров, приставок и другой электроники. Но данные здесь не хранятся "как на жёстком диске". Обычные ФС (FAT, NTFS) быстро убивают флеш из-за износа и особенностей записи. Специальные файловые системы решают эти проблемы: распределяют нагрузку, управляют bad blocks, используют ECC и пишут последовательно.
Сегодня — полный разбор основных ФС, которые вы встречаете в дампах. От теории к практике: как они устроены, где применяются и как это помогает в ремонте. Всё на основе реальных данных из embedded-разработки, анализа дампов и документации производителей.
Флеш-ячейки выдерживают ограниченное число перезаписей (1000–10 000 циклов). Плюс:
- Стирание блоками: Нельзя изменить байт — стирается весь блок (128–512 КБ).
- Износ (wear leveling): Нужно равномерно распределять запись, иначе блок "сгорит".
- Bad blocks: Дефекты от завода или износа — ФС должна их помечать и обходить.
- ECC: Ошибки чтения — нужны коды коррекции.
- Garbage collection: Старые данные помечаются, блок стирается и переиспользуется.
Основные файловые системы для флеш: детальный обзор
1. YAFFS2 (Yet Another Flash File System 2)
• Годы: 2002–2012, первая массовая для NAND.
• Структура: Log-structured, теги в OOB (out-of-band) для каждой страницы.
• Плюсы: Простота, встроенное управление bad blocks и ECC, надёжность на маленьких NAND.
• Минусы: Медленно на больших объёмах (сканирует OOB при монтировании), нет compression.
• Где в ремонте: Старые MTK TV, Android до 2012, некоторые китайские приставки.
• В дампе: Ищите теги в OOB (sequence number, object ID).
2. JFFS2 (Journalling Flash File System 2)
• От Linux (2001).
• Структура: Log-structured с nodes (clean/dirty markers), compression (zlib).
• Плюсы: Compression экономит место, journal для надёжности, garbage collection.
• Минусы: Медленный mount (сканирует весь флеш), плохой wear leveling на больших объёмах.
• Где: Embedded Linux, роутеры, старые TV на Realtek/MStar.
3. UBIFS (Unsorted Block Images FS)
• Над UBI-layer (управление NAND).
• Структура: B-tree индекс, journal, compression (LZO/zlib).
• Плюсы: Отличный wear leveling (через UBI), масштабируемость, быстрый mount.
• Минусы: Сложнее, требует UBI.
• Где: Современные Linux-embedded, некоторые MTK/HiSilicon TV.
4. F2FS (Flash-Friendly File System)
• От Samsung (2012).
• Структура: Log-structured с multi-head logging, cleaning в фоне.
• Плюсы: Высокая скорость, отличный wear leveling, адаптация под SSD/eMMC.
• Минусы: Сложнее для маленьких NAND.
• Где: Android с 2014, Samsung Tizen TV, некоторые LG WebOS.
5. SquashFS
• Read-only, compression (gzip/xz/lzo/lzma).
• Структура: Блоки с метаданными, inode/table.
• Плюсы: Маленькие образы, быстрое чтение, надёжность.
• Минусы: Только чтение — для rootfs/recovery.
• Где: Почти все embedded-прошивки (Samsung, LG, Sony).
6. CramFS
• Read-only, compression (zlib).
• Структура: Простая, блоки 4 КБ.
• Плюсы: Очень маленький размер, быстрое чтение.
• Минусы: Устарела, нет journal.
• Где: Старые embedded (до 2010).
7. RomFS
• Read-only, без compression.
• Структура: Простая линейная.
• Плюсы: Минимализм, быстро.
• Минусы: Нет wear leveling (не для записи).
• Где: Bootloader'ы, старые системы.
8. LogFS
• Альтернатива JFFS2, tree-based.
• Плюсы: Лучше масштабируется.
• Минусы: Не получила распространения.
• Где: Редко, экспериментальные.
9. NILFS (New Implementation of a Log-structured File System)
• Log-structured с snapshots.
• Плюсы: Continuous snapshot, garbage collection.
• Минусы: Редко в embedded.
• Где: Некоторые Linux-TV.
10. exFAT
• От Microsoft, для SD/eMMC.
• Плюсы: Большие файлы, простота.
• Минусы: Не лучший wear leveling.
• Где: SD-карты в TV, некоторые userdata разделы.
11. VDFS (Vertically Deliberate File System) — proprietary Samsung
• Вертикальная организация для минимизации записи.
• Плюсы: Быстрая загрузка, защита от износа, виртуальные руты (images, calib).
• Минусы: Proprietary, сложно reverse.
• Где: Tizen TV Samsung (QLED, NU/JU серии).
Что реализовано в TermOS на текущий момент
В Dump Analyzer:
- Автоматическое детектирование: YAFFS2 (теги OOB), JFFS2 (nodes), UBIFS (UBI header), F2FS (checkpoint), SquashFS (magic), CramFS, exFAT.
- Распознавание EXT2/3/4.
- Маркировка в дереве: тип ФС, параметры (блок размер, compression).
- Тестировано на 250+ дампах: точность >95% для типовых (MTK, Samsung, Realtek).
К чему стремимся
- Полная поддержка VDFS (Samsung Tizen) — парсинг и виртуальное монтирование.
- Автоматическое восстановление повреждённых ФС (bad blocks, bit flips).
- AI для предсказания типа ФС по паттернам.
- Экспорт/монтирование как виртуального диска — извлечение calib одним кликом.
- Поддержка редких (LogFS, NILFS) по вашим дампам.
Знаете ФС на редком шасси? Присылайте дампы в тему сложных кейсов — добавим детектор.
Поддержать проект
Если статья полезна и вы хотите ускорить развитие (новые детекторы, облако, AI) — присоединяйтесь к экосистеме. Ключ к TermOS Lite — ваш вход в закрытый круг, обновления и будущие модули.
Альфа-тестирование и приоритетные фичи — для спонсоров на раннем этапе.
Вместе превратим дамп в понятную схему, где ремонт — точная работа.
Команда TermOS
Вместе превратим дамп в понятную схему, где ремонт — точная работа.
Команда TermOS
