Не могу понять, глючит ли мой USB-накопитель

Если вы классифицируете завершение цикла как «безуспешное», когда цикл завершается, тогда да, когда это произойдет, код выхода будет равен 1.

Сценарий, который вы написали, завершается с кодом выхода 1. Если он зацикливается вечно, то вы, очевидно, никогда не получите код выхода 1.

Все, что делает код выхода, это говорит вам об успешности последнего запуска. команда.

Если сценарий в вашем сообщении заканчивает цикл и завершается, попробуйте запустить это сразу после этого:

echo $?

Затем снова запустите echo $?. Что ты видишь? Как вы думаете, почему он изменился? Вы, вероятно, уже поняли: тот факт, что вы выполнили успешную команду (в данном случае echo, это могло быть почти что угодно) изменил состояние выхода на ноль.

0
10.03.2016, 22:51
2 ответа

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

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

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

PS. Убедитесь, что ваш накопитель всегда получает достаточно энергии USB во время записи, например, если он подключен к концентратору, используйте концентратор с питанием. Вы можете купить дешевые встроенные измерители мощности USB, которые показывают вам вольт / ампер, поступающие на устройство, если вы беспокоитесь.

2
28.01.2020, 02:27

Если на вашем флеш-накопителе не возникла особая проблема (например, ошибка прошивки), весьма вероятно, что механизм выравнивания износа пытался предотвратить ошибки так долго, как только мог, балансируя количество записей всех доступных секторов флеш-памяти. К тому времени, когда вы получаете плохие блоки на носителе, некоторые секторы превышают свой лимит, чтобы обрабатывать больше записей, в то время как другие находятся на пути к пределу. Вероятно, со временем вы будете получать все больше и больше ошибок.

Прежде чем флеш-сектор станет полностью непригодным для использования, он часто показывает сокращенное время хранения (запись чего-либо и обратное чтение работают сразу же, но обратное чтение через несколько недель не удается), так что да, перезапись неисправных блоков может показаться «исправлением» их только не долго.

Также возможно, что неисправные сектора были заменены резервными, как описано выше. Однако главное по-прежнему актуально: другие секторы вашего флеш-драйвера, скорее всего, находятся на пути к отказу.

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

1
28.01.2020, 02:27

Теги

Похожие вопросы