Добрый день! Я на форуме новичек. Может уже обсуждался вопрос - не пинайте больно
Вопрос по поводу опции быстрого форматирования.
Как известно при высокоуровневом форматировании помимо создания всех служебных записей и таблиц происходит верификация области данных, т.е. проверка пов-ти накопителя на наличие ошибок кластеров.
Очевидно, что при быстром формате этот этап пропускается.
Так вот существо вопроса - КАК именно происходит эта верификация?
Как она происходит при полном ф. и как при быстром?
Что происходит физически? Ведь м. головки в принципе умеют делать только 2ве вещи:
1. намагнитить участок блина (сделать запись)
2. считать заранее записанную инфу.
Т.е. верификация принципиально возможна как процесс чтения заранее записанной информации. (это только дядя Петя (Нортон) придумал елозить по дискам с большой лупой )
Далее - имеем новый девственно чистый винч.
Создаем раздел.
Форматим по быстрому (без предварит. верификации).
Начинаем писать данные.
Что происходит при записи данных? Не могут же данные писаться на обум-лазаря в непроверенные кластера? Значит - перед записью данных в конкретный кластер происходит его проверка - как? - путем записи-считывания-стирания какой-то служебной информации? А потом уже данные?
Вопрос не праздный ради любопытства. Если я форматирую новый винт объемом в неск. сотен гиг по-полному - я вынужден ждать завершения процесса иногда час, а то и более.
Если я форматирую по-быстрому - процесс записи данных по логике должен замедлиться раза в два минимум, поскольку предварит. происходит та же верификация, а потом только запись данных.
В связи с выше-изложенным - как все-таки лучше поступать с новыми винтами?
Проходить процедуру полного формата для пущей уверенности в целостности винта и тратить на это часы?
Или достаточно быстрого? Но опять-таки с тормозами при первичной записи инфы и потенциальной возможностью поиметь проблемы с винтом при уже записанной инфе?
Особой необходимости полного форматирования нет.
Если только под особо ответственную работу, то лучше проверить.
При записи хард не проверяет записанное, кроме секторов которые попали в логи диагностики.
У каждого производителя и семейства процесс проверки организрван по своему, нюансы вам врядли кто сможет рассказать, кроме разработчиков.
В целом проверка поверхности осуществляется двумя методами и происходит приблизительно так:
При любом позицианировании, хард если не пишет, то читает треки данных с низким уровнем коррекции ошибок.
Все сектора, которые при этом не прочитались, попадают в специальные логи дигностики. Как только записей в логе набирается около трети всего лога. Хард начинает проверять эти подозртельные сектора. На современных хардах частенько прямо во время основной работы.
Головки даже в покое не стоят на однм месте, каждые 2-3 ms меняется их положение, это чтобы поверхность и головки не перегрелись.
Таким образом постепенно проверяется основная часть поверхности.
Кроме того каждые 50-100 часов работы, в простое, запускается офлайн смарт тест, который проверяет всю поверхность. Если в это время происходит обращение, то офлайн тест прерывается, с запоминанием последнего проверенного адреса, и через 20-30 секунд, после последнего обращения продолжается дальше. Все подозрительные сектора переписываютсю и проверяются чтением.
Спасибо, ценная информация.
Вот только остался неясным все же один момент:
Tomset писал(а):
...При любом позицианировании, хард если не пишет, то читает треки данных с низким уровнем коррекции ошибок.
Все сектора, которые при этом не прочитались, попадают в специальные логи дигностики.
...читает треки данных... - если винт новый, абсолютно чистый, только отформатированный быстрым форматом - что же он читает?
Читать ведь еще нечего.. Значит должно что-то писаться, чтобы тут же прочитать? Какие-то диагностические метки, данные?
Или как?
В этом была суть исходного вопроса.
Паралельно с этим есть еще вопрос, касаемый той же проблемы:
В утилите HDDSCAN есть два режима проверки поверхности (erase не будем рассматривать)
- Verify
- Read
В чем разница между ними? Ведь в обоих случаях чтобы проверить - надо что-то прочитать? Хорошо если есть заранее записанные данные. А если нет? Если опять-таки винт новый?
Все-таки - КАК ФИЗИЧЕСКИ и ТЕХНОЛОГИЧЕСКИ происходит процесс проверки поверхности?
Точнее, читать всегда есть чего. Харду все равно, что в секторе - нули или еще что, читает одинаково, ЕСС коррекцию отрабатывает и т.п. независимо от содержимого.
Цитата:
КАК ФИЗИЧЕСКИ и ТЕХНОЛОГИЧЕСКИ происходит процесс проверки поверхности?
Чтение, штатным образом с коррекцией ошибок. Если ATA командой чтения - то данные передаются на интерфейс, если командой верификации (как в "полном формате"), то не передаются, передается только ошибка (если есть). Если тестовой программой - то запись паттерна, потом чтение и сравнение, но это уже на уровне программы, не "физическом".
Точнее, читать всегда есть чего. Харду все равно, что в секторе - нули или еще что, читает одинаково...
Спасибо, ребята!
Еще один момент разъясните, плиз -нули в секторах всегда наличиствуют от рождения харда?
Или все-же их надо туда принудительно писать?
Опять я к своим баранам Если я отформатил в "быстром" режиме - вся рабочая область все равно уже заполнена нулями?
[
...В процессе рождения туда много раз разные паттерны пишутся. В конце процесса - переписываются нулями обычно.
..Заполнена тем, что там было раньше. Если были нули - значит нулями .
Ага, понятно.Стало быть расклад такой, что новый винт лучше все-таки форматировать полным форматом с учетом транспортно-разгрузочных нагрузок.
То что было записано фирмой-изготовителем до транспортировки - ну прочитает он потом.
А возможные дефекты поверхности после - лучше все-таки проверить полным форматом.