Я хочу знать, будет ли команда dd записывать данные в поврежденный блок флэш-чипа nand.

Наша файловая система - ubifs, и она основана на слое MTD. И dd будет читать и записывать файл устройства /dev /mtdblock2. Как я знаю, ubifs будет обрабатывать плохой блок / сектор, а MTD - нет. Так что я считаю, что dd на флеш-чипе nand с ubifs может записывать данные в поврежденный блок / сектор, правильно?

Спасибо!

2 ответа2

2

Как я знаю, ubifs будет обрабатывать плохой блок / сектор, а MTD - нет.

Неверно, MTD также знает о плохих блоках и поддерживает таблицу плохих блоков.
См. Поддержка таблиц блоков MTD и драйверов /mtd /nand /bbt.c.

Так что я считаю, что dd на флеш-чипе nand с ubifs может записывать данные в поврежденный блок / сектор, правильно?

Ваша предпосылка о МПД неверна, но вывод верен.
Также наличие UBIFS не имеет значения, поскольку dd работает на блочном устройстве, а не на файловой системе.

Команда dd получает доступ к блочному устройству, которым не является MTD, поэтому необходимо использовать mtdblock (который имеет уровень флэш-трансляции).

В FAQ по MTD есть это явное предупреждение относительно использования mtdblock и NAND:

But think twice before using mtdblock in read-write mode.  
And don't try to use it on NAND flash as it is does not handle bad eraseblocks. 

IOW проблема не в программе dd , а в использовании устройства mtdblock.

В MTD FAQ рекомендуется использовать программы с блокировкой, такие как mtd-utils.

0

Команда dd попытается записать в сектор, плохой или плохой. dd к устройству не будет заботиться о файловой системе, которая может присутствовать на этом устройстве. Но если запись будет успешной, сектор не будет плохим, так как с флеш-памятью наиболее распространенной ошибкой является то, что блоки не могут быть очищены / записаны.

С магнитным диском перезапись может сделать ранее нечитаемый блок снова читаемым, но я бы не стал доверять важные данные сектору, в котором ранее возникали проблемы.

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