HDD - Как преобразовать нестабильный сектор в бэд-блок?

Аватара пользователя
Grabber2006

Re: HDD - Как преобразовать нестабильный сектор в бэд-блок?

Сообщение Grabber2006 »

Цитата Nerdy:



Нет. Это возможный кандидат на попадание в список плохих секторов или позже стать обычным сектором.
HDD - Как преобразовать нестабильный сектор в бэд-блок?




Много воды…, но я внимательно прочитал этот топик…

Утверждаю,--- пендинг это bad.



В свою очерередь и Вам рекомендую к прочтению пусть старую, но на мой взгляд актуальную и хорошую статью Сергея Казанского. Это разработчик легендарной Вмктории…




Цитата:



Логические дефекты



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



Исправимые логические дефекты (софт-бэды): появляются, если контрольная сумма сектора не совпадает с контрольной суммой записанных в него данных. Например, из-за помех или отключения питания во время записи, когда винт уже записал в сектор данные, а контрольную сумму записать не успел (Рис. 1).



См.
BAD-секторы. Что это такое, с чем это едят и как от них избавиться




Это больше вопрос терминологический, но такое определение логического бэда (пусть и софтового, а не физического...) меня сполне устраивает….
Аватара пользователя
Nerdy

Re: HDD - Как преобразовать нестабильный сектор в бэд-блок?

Сообщение Nerdy »

Tau_0, Нет, pending это не bad.

И ваша цитата это подтверждает. И меня устраивает определения в моих ссылках.



На вопрос не ответите?


Цитата Nerdy:



Вопрос в том, почему HDD не знает как с ним поступить или как работает алгоритм определения плохих или нестабильных(weak) секторов?
HDD - Как преобразовать нестабильный сектор в бэд-блок?
Аватара пользователя
Tau_0

Re: HDD - Как преобразовать нестабильный сектор в бэд-блок?

Сообщение Tau_0 »

Цитата Nerdy:



Вопрос в том, почему HDD не знает как с ним поступить или как работает алгоритм определения плохих или нестабильных(weak) секторов? »
HDD - Как преобразовать нестабильный сектор в бэд-блок?




У разных производителей или даже у одного производителя на различных линейках причины могут сильно отличаться... Даже неотлаженные фирмвари (кои мы не обсуждаем, поскольку производитель закрыл документацию...) могут быть тому виной. Но и ежику понятно, что в общем случае при нестыковке по ECC хард не cможет принять однозначное решение..., --- сектор попадёт в G-List (Relo-List) и будет там болтаться, если его (хард) не простимулировать записью в этот сектор...



ЗЫ Вы бы лучше внимательнее базовую статью Сергея Казанского почитали...
Аватара пользователя
Nerdy

Re: HDD - Как преобразовать нестабильный сектор в бэд-блок?

Сообщение Nerdy »

Цитата Tau_0:



сектор попадёт в G-List (Relo-List) и будет там болтаться, если его (хард) не простимулировать записью в этот сектор...
HDD - Как преобразовать нестабильный сектор в бэд-блок?




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

Неужели у производителей нет таких жестких алгоритмов?
Аватара пользователя
IgNat

Re: HDD - Как преобразовать нестабильный сектор в бэд-блок?

Сообщение IgNat »

Цитата Tau_0:



хард не cможет принять однозначное решение..., --- сектор попадёт в G-List (Relo-List)
HDD - Как преобразовать нестабильный сектор в бэд-блок?




- причём здесь G-List HDD именно принял решение и переназначил данный сектор, что и соответствует 05 атрибуту SMART.
Аватара пользователя
mwz

Re: HDD - Как преобразовать нестабильный сектор в бэд-блок?

Сообщение mwz »

IgNat, я бы сформулировал чуток иначе, типа:

"Если HDD принял решение и переназначил сектор – то только в этом случае он попадает в G-List, что отмечается увеличением атрибута 05"
Аватара пользователя
Tau_0

Re: HDD - Как преобразовать нестабильный сектор в бэд-блок?

Сообщение Tau_0 »

Цитата IgNat:



- причём здесь G-List HDD именно принял решение и переназначил данный сектор,
HDD - Как преобразовать нестабильный сектор в бэд-блок?




При том, что не всё так просто…

В данном случае речь идёт о таком скользком понятии, как soft-bad. Если посмотреть дискуссии на том же хоботе, то получается, что производители хардов не используют это понятие, --- оно изобретено пользоватеоями…



Но давайте с самого начала…

Когда записывается сектор, то заполняется не только поле DATA, но и что очень важно поля CRC и ECC…

Посмотрите кратко для хардов WDC

ТехнологияAdvanced Format




или здесь…

Технология NO-ID и увеличение плотности записи дисковых накопителей




Для каждого сектора с данными имеется поле ECC, предназначенное для коррекции ошибок. При записи данных сектора высчитывается значение ECC и помещается в это поле. Этим делом занимается сам хард (его микрокод) и контроллер на аппаратном уровне. При последующем чтении сектора считанные данные проверяются и верифицирутся с помощью ECC. Так называемые коды Рида - Соломона (или другие техники) позволяют на лету скорректировать несколько ошибочных байтов в секторе с данными.



Но иногда случается, что хард по каким-то причинам не записывает верное значение в поле ECC. Что-то ему помешало это правильно сделать --- случайные сбои от перегрева, питания, магнитные поля, пылинка, тряски, луны Юпитера не так в линию стали… А так ничего более серьёзного и нет… Но самостоятельно хард с этой проблемой (нестыковкой по ECC) не справится. Но если записать в этот сектор какие-либо данные, то в этот раз данные запишутся правильно и поле ECC будет правильным (предполагается, что иных ошибок нет…). --- Сектор вернётся в строй. Это справедливо и для больших и для малых секторов…



ЗЫ В данном случае я хочу заострить внимание на моменте, когда поле ECC вне зависимости от конкретного места его нахождения вообще не записалось. Эту проблему сам хард решить не может…

Вот и ВСЁ.



Вот Вам напоследок цитата из статьи Сегея Казанского (разработчика Victoria…) ===>


Цитата:



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

Re: HDD - Как преобразовать нестабильный сектор в бэд-блок?

Сообщение mwz »

Цитата Tau_0:



Но если записать в этот сектор какие-либо данные, то в этот раз данные запишутся правильно и поле ECC будет правильным (предполагается, что иных ошибок нет…). --- Сектор вернётся в строй. Это справедливо и для больших и для малых секторов…
HDD - Как преобразовать нестабильный сектор в бэд-блок?




Поэтому к сожалению Victoria (и ряд других программ) принципиально не может справиться с длинными секторами: она [как всегда] пытается записать 512-байтный сектор, и даже может отрапортовать об успехе – в то время как надо писать 4К-сектор, выровняв запись по началу физического сектора диска. И в результате ошибка сектора остаётся – причём для Victoria эта ошибка может блуждать в пределах этих самых восьми 512-байтных эмулированных секторов, на которые логически порезан длинный сектор.
Аватара пользователя
Tau_0

Re: HDD - Как преобразовать нестабильный сектор в бэд-блок?

Сообщение Tau_0 »

Цитата mwz:



Поэтому к сожалению Victoria (и ряд других программ) принципиально не может справиться с длинными секторами: она [как всегда] пытается записать 512-байтный сектор
HDD - Как преобразовать нестабильный сектор в бэд-блок?




Это не такая уж большая беда, --- виктория позволит поймать LBA сбойных больших секторов. Когда их не слишком много, то эти секторы можно затереть или на худой конец переназначить записью в дисковом редакторе диапазона из восьми 512 байтовых в сектор с нативными 4096 байтами.



Я имел в виду другое --- если поле DATA записалось верно, а поля для верификаци данных (CRC и ECC вне зависимости от размера сектора и от того где бы они физически не находились) по какой-то причине не записались, то всегда будет нестыковка по ECC... И эту проблему хард сам никогда не решит.



По крайней мере так Tomset в своё время это дело толковал, а также обосновывал высщкую заполненность Relo-List и вынужденность "Slow responding" у хардов WDC...
Аватара пользователя
mwz

Re: HDD - Как преобразовать нестабильный сектор в бэд-блок?

Сообщение mwz »

Цитата Tau_0:



Это не такая уж большая беда, --- виктория позволит поймать LBA сбойных больших секторов
HDD - Как преобразовать нестабильный сектор в бэд-блок?




Угу. Собственно, наиболее распространённый метод нахождения этих секторов даже на AF-дисках – в Victoria, и с последующей блочной перезаписью уже в другой программе (например, в DMDE: чтение с игнорированием ошибок блока из 8 эмулированных секторов одного длинного сектора в промежуточный файл – запись этого блока обратно. Такое чтение/запись позволяет в т.ч. избежать уничтожения информации при неверном определении номера сектора: например, открыли диск как логический и стали записывать сектор 77777 от начала логического диска, в то время как Victoria показывает эти 77777 от начала физического диска).
Ответить

Вернуться в «Накопители (SSD, HDD, USB Flash)»