275

Ответ на пост «Продолжение поста про жёсткий диск и бз-бз-бз»

1) HDD - это самостоятельное устройство, которое коммуницирует с хост-контроллером в ПК по протоколам описанных в АТА стандарте. (t13.org)
2) На стартовой инициализации после включения ПК BIOS по всем портам ловит признак наличия устройства в виде наличия флажка BUSY. И обнаружив этот флажок ожидает некоторое время, когда диск выйдет в готовность.
2.1). Если диск за заданный промежуток не выйдет в готовность или флажок BUSY не будет снят, то в BIOS отобразится "none"
3) Если диск успевает выйти в готовность (т.е. снять флаг BUSY) и показать готовность принять команды (установленными флагами DRD + DSC), то код в BIOS отправит команду 0xEC (identify device).
4) Диск приняв команду запроса паспорта (0xEC) должен отдать блок 512 байт, в котором при корректной инициализации будет содержатся информация о производителе, модели, серийном номере, емкости, поддерживаемых режимов работы и т.п.
4.1) Диск который на старте корректно прогрузил свою микропрограмму и нигде не "споткнулся" на инициализации системы трансляции отдаст корректный паспорт.
4.2) Диск который не вышел в готовность (не снял флаг BUSY) ничего не отдаст, так как банально не примет команду со стороны интерфейса
4.3) Диск который на инициализации вывалился в аварийный режим может обслуживать некоторые команды (без ABR - отказа в обслуживании), но реагировать совсем не так как ожидается.

Вот этот случай с BzBz - говори о том, что микропрограмма диска в ответ на команду выдала блок 512 байт заполненный однородным двухбайтным паттерном. Закладывал ли разработчик микропрограммы диска какой-то сакральный смысл в эти два байта доподлинно неизвестно. Чтобы это установить необходимо знать производителя, модель и версию микропрограммы, тогда по результатам реверс-инжиниринга можно будет установить являются ли эти два байта кодами ошибки или некий случайный паттерн.

Кроме этого необходимо исследовать BIOS материнской платы на предмет того что и откуда он читает в случае ошибки. Возможно данным паттерном эти 512 байт в ОЗУ, куда должны быть приняты паспортные данные HDD, заполнены еще до попытки чтения паспорта диска. Возможна ситуация, что HDD выдав по регистрам готовность, но будучи в аварийном режиме выдает ABR запрос паспорта, а код BIOS не учитывает ошибку и все равно пытается разобрать те 512 байт в ОЗУ куда паспорт не был принят.

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества