Есть ли какой-нибудь способ / инструмент / утилита для исправления плохого блока на устройстве NAND?
У нас есть специальная плата на базе beaglebone, но вместо MMC у нас есть NAND flash. MTD разделы на NAND следующие:
mtd0:MLO
mtd1:MLO
mtd2:MLO
mtd3:MLO
mtd4: U-Boot
mtd5: резервное копирование u-boot
mtd6: ядро
mtd7: Резервное копирование ядра
mtd8: RFS
RFS имеет два тома UBI rootfs & rootfs2 и одновременно используется для загрузки платы.
Теперь, когда используется флэш-память NAND, на чипе NAND может возникнуть бэдблок или со временем может возникнуть бэдблок. UBIFS обрабатывает плохой блок, резервируя место для плохого блока. UBI отображает плохой блок в зарезервированный блок. Так что там есть обработка плохих блоков.
Но как насчет других разделов, что если в этих разделах есть плохие блоки?
есть ли способ обнаружить и исправить плохие блоки на этих разделах,
1. Прежде всего без потери данных ИЛИ
2. С потерей данных
Я искал в сети и обнаружил, что для файловых систем ext есть утилита под названием " badblocks ", но есть ли версия для флэш-памяти?
Есть ли другой способ исправить бадблок на устройстве.
Я понимаю, что драйверы mtd также имеют некоторое управление блокировкой, они пропускают блоки во время записи и чтения, но достаточно ли этого?
Я также знаю, что производитель чипов NAND также гарантирует, что у чипа не будет больше X бэдблоков.
Видя все это, нужно ли беспокоиться о проблемах при проектировании системы? Требуется ли обрабатывать это из пространства пользователя? Если не на активном разделе, это необходимо сделать на резервных разделах?
Любые предложения / указатели приветствуются,
Заранее спасибо.