1

Есть ли какой-нибудь способ / инструмент / утилита для исправления плохого блока на устройстве 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 бэдблоков.

Видя все это, нужно ли беспокоиться о проблемах при проектировании системы? Требуется ли обрабатывать это из пространства пользователя? Если не на активном разделе, это необходимо сделать на резервных разделах?

Любые предложения / указатели приветствуются,

Заранее спасибо.

1 ответ1

0

Вам не нужно обрабатывать плохие блоки в пользовательском пространстве. При монтировании раздела соответствующий тип файловой системы имеет соответствующую реализацию для обработки поврежденных блоков. Следовательно, вам не нужно беспокоиться об обработке этого в активных / резервных разделах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .