Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Надо прочитать soft-bad sector, Работая с порушенным винтом 
:(
    Опции темы
Горо
Дата 22.6.2004, 10:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











ПРоблема! На винте куча soft-bad-ов, и некоторое количество их на файловой таблице. Для того чтобы попытаться восстановить тома на винте, я хочу сначала слить образ диска один-в-один на здоровый винт, а уже там восстанавливать тома стандартным Acronis-ом или еще чем! Так проблема в том, что сливать не получается. Бэды не дают. Надумал я написать небольшую прогу, которая бы могла БЭДы абы как считать, пусть неправильно, пусть с ошибками, но чтобы перелилось это на другой девайс. Стандартные же проги на БЭДАх зависают пытаясь прочесть. Я бы прошелся по бэдам ремапером, но они именно в файловой таблице, которую ремапер исправлять не желает.
Так можно ли считать сектор в любом случае, или содержимое сектора мне доступно только когда не произошло ошибок чтения?
  Вверх
Akina
Дата 22.6.2004, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Ты, похоже, плохо понимаешь, что означают применяемые тобой термины.
Soft-bad - это сектор (кластер, блок), помеченный в файловой системе как поврежденный, но не имеющий повреждений. Соответственно ошибка CRC или дефект поверхности - это НЕ soft-bad. Кстати, на ФАТ12/16/32 софт-бэд по определению не может быть в таблице ФАТ или (для ФАТ12/16) корневом каталоге.
Впрочем, неважно.
По сабжу. Хард-бэды прекрасно игнорирует например Norton Ghost. Просто копию надо делать даже по смыслу процедуры не логического раздела, а физической области на винте. Ну и сказать что вместо дефектных секторов надо писАть нули - см. настройки.
Софт, читающий остатки данных из физически дефектных секторов винта, существует. Однако об этом забудь - рядовому (и не очень) юзеру он просто недоступен.

Это сообщение отредактировал(а) Akina - 22.6.2004, 12:44


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Guest
Дата 22.6.2004, 15:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Ты, похоже, плохо понимаешь, что означают применяемые тобой термины.
Soft-bad - это сектор (кластер, блок), помеченный в файловой системе как поврежденный, но не имеющий повреждений.

Я ОЧЕНЬ ХОРОШО ПОНИМАЮ. ЕСТЬ HARD-BAD - это плохой сектор, который обусловлен повреждением поверхности. ЕСТЬ SOFT-BAD - это "плохой" сектор, который появляется в тех случаях, когда в время записи сектора, от головка теряет питание, и сектор не дописывается. В итоге начало сектора новое, окончание старое и соответственно контрольное число не соответствует сектору. Потеря питания головкой может быть: отвалились сигналы от контроллера (например иголки в винтах IBM), отвалилось питание вообще.
А вот файловая система метит у себя сектора плохими, не взирая на то, hard это или soft.
Почему называется HARD: это не лечится.
Почему называется SOFT: это лечится. сектор просто форматируется на низком уровне, функциональностьюсамого контроллера.

Цитата
Кстати, на ФАТ12/16/32 софт-бэд по определению не может быть в таблице ФАТ или (для ФАТ12/16) корневом каталоге.

В связи с вышеизложенным ты глубоко ошибаешься. Может. И никто ему не помешает. Кстати прочитай свое сообщение и поймешь, что сам себе противоречишь.
Цитата
Norton Ghost
.
За это спасибо. Может быть поможет!

Цитата
Софт, читающий остатки данных из физически дефектных секторов винта, существует. Однако об этом забудь - рядовому (и не очень) юзеру он просто недоступен.


Ой! Ну не смешите ви мои тапочки! Если существует софт, то и Я могу его написать! Соответственно вернемся к моему сообщению: Как я могу в своей программе получить доступ к данным в поврежденном секторе? ВИ МЕНЯ ПОНЯТЬ
  Вверх
oleg1973
Дата 22.6.2004, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



через порты контролера smile.gif
читая всю дорожку вместе с межсекторными метками (raw data)



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Akina
Дата 22.6.2004, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Цитата
Я могу его написать! Соответственно вернемся к моему сообщению: Как я могу в своей программе получить доступ к данным в поврежденном секторе?

Так в чем проблема? Команда "считывание без контроля" класс 7 опкод 5. Выдает сырые данные без обработки, многократное чтение позволяет рассчитать область повреждения и слабые биты. Удачи!


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
oleg1973
Дата 22.6.2004, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



такимже макаром и записать можно smile.gif
совсем однако нестандартный формать будет smile.gif


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Ruterian
Дата 11.7.2004, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 9.1.2004
Где: Вязьма, Минск

Репутация: нет
Всего: нет



Блин, вот усложнили-то!!!

Есть 4 стандартных АТА-команды для чтения сектора/блока из HDD.

20h - чтение с повторами при ошибке
21h - чтение без повторов
22h - длинное чтение с повторами
23h - длинное чтение без повторов

Команду 20h использует ОС и BIOS при стандартной работе с диском (ее генерирует соответствующая функция int13, или драйвер HDD). Команды длинного чтения в настоящее время устарели и поддерживаются не всеми дисками. Т.е. формально они поддерживаются (возвращают блок данных), но его содержимое ПРИ ОШИБКЕ (!!!) НЕ ОБЯЗАНО соответствовать содержимому сектора. Тут все зависит от модели винчестера. Например, на винчестерах IBM, некоторых моделях Quantum, оно работает, а на старых ноутбучных HITACHI - нет (выдает мусор).

Для спасения информации с винта, у которого в секторах имеется нарушение CRC блока данных, нужно:
1) Узнать модель HDD и провести эксперимент - посмотреть, как винт будет читать блок, если его "испортить" - например, длинной записью (32h).
2) Если команда длинного чтения не работает на данном типе HDD - замещать БЭДы нулями или сигнатурой.

3) Если работает - писать софт, читающий трек обычным чтением (20h), а при обнаружении БЭДа - читать (только) его через 22h несколько раз и статистически обрабатывать. Процесс этот очень длительный (обычно от 0.5 до нескольких сек на ОДИН сектор).

4) Если винчестер зависает на бэд-блоках (не снимает бит BUSY) - посылать в контроллер софт-ресет (через порт 3х6 в соответствии со стандартом АТА), по таймауту, затем читать следующий блок.

5) Если возиться влом - отдать винт грамотному ремонтнику, у которого этот софт уже есть.
PM MAIL WWW ICQ   Вверх
Jin X
Дата 27.7.2004, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 5.3.2004

Репутация: 1
Всего: 1



Цитата(Guest @ 22.6.2004, 17:50)
Цитата
Кстати, на ФАТ12/16/32 софт-бэд по определению не может быть в таблице ФАТ или (для ФАТ12/16) корневом каталоге.

В связи с вышеизложенным ты глубоко ошибаешься. Может. И никто ему не помешает.

Он имеет в виду то, что если в FAT появится плохой сектор, то его негде будет отмечать как плохой, и никто никогда не узнает об этом (о том, что он плохой), пока ни попытается его прочитать biggrin.gif
--------------------
Бойся своей мечты, ибо она осуществима!
PM MAIL   Вверх
BAHO
Дата 5.8.2004, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 5.8.2004

Репутация: нет
Всего: нет



Мужики, помогите ламеру! т.е. мне. Киньте ссылочку или татейку про АТА команды и как общаться с большими дисками (~80Gb) через порты контроллера.
Заранее спасибо
PM MAIL   Вверх
Jin X
Дата 6.8.2004, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 5.3.2004

Репутация: 1
Всего: 1



См. соседнюю тему.
--------------------
Бойся своей мечты, ибо она осуществима!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0649 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.