Что такое код hw_api_error >count

Содержание

Оцениваем состояние жёстких дисков при помощи S.M.A.R.T.

Оглавление

Современный жёсткий диск — уникальный компонент компьютера. Он уникален тем, что хранит в себе служебную информацию, изучая которую, можно оценить «здоровье» диска. Эта информация содержит в себе историю изменения множества параметров, отслеживаемых винчестером в процессе функционирования. Больше ни один компонент системного блока не предоставляет владельцу статистику своей работы! Вкупе с тем, что HDD является одним из самых ненадёжных компонентов компьютера, такая статистика может быть весьма полезной и помочь его владельцу избежать нервотрёпки и потери денег и времени.

Информация о состоянии диска доступна благодаря комплексу технологий, называемых общим именем S.M.A.R.T. (Self-Monitoring, Analisys and Reporting Technology, т. е. технология самомониторинга, анализа и отчёта). Этот комплекс довольно обширен, но мы поговорим о тех его аспектах, которые позволяют посмотреть на атрибуты S.M.A.R.T., отображаемые в какой-либо программе по тестированию винчестера, и понять, что творится с диском.

Отмечу, что нижесказанное относится к дискам с интерфейсами SATA и РАТА. У дисков SAS, SCSI и других серверных дисков тоже есть S.M.A.R.T., но его представление сильно отличается от SATA/PATA. Да и мониторит серверные диски обычно не человек, а RAID-контроллер, потому про них мы говорить не будем.

Итак, если мы откроем S.M.A.R.T. в какой-либо из многочисленных программ, то увидим приблизительно следующую картину (на скриншоте приведён S.M.A.R.T. диска Hitachi Deskstar 7К1000.С HDS721010CLA332 в HDDScan 3.3):

В каждой строке отображается отдельный атрибут S.M.A.R.T. Атрибуты имеют более-менее стандартизованные названия и определённый номер, которые не зависят от модели и производителя диска.

Каждый атрибут S.M.A.R.T. имеет несколько полей. Каждое поле относится к определённому классу из следующих: ID, Value, Worst, Threshold и RAW. Рассмотрим каждый из классов.

    >Этим мы сейчас и займёмся — разберём все наиболее используемые атрибуты S.M.A.R.T., посмотрим, о чём они говорят и что нужно делать, если они не в порядке.

Аттрибуты S.M.A.R.T.
01 02 03 04 05 07 08 09 10 11 12 183 184 187 188 189 190
0x 01 02 03 04 05 07 08 09 0A 0B 0C B7 B8 BB BC BD BE
191 192 193 194 195 196 197 198 199 200 201 202 203 220 240 254
0x BF С0 С1 С2 С3 С4 С5 С6 С7 С8 С9 СА CB DC F0 FE

Перед тем как описывать атрибуты и допустимые значения их поля RAW, уточню, что атрибуты могут иметь поле RAW разного типа: текущее и накапливающее. Текущее поле содержит значение атрибута в настоящий момент, для него свойственно периодическое изменение (для одних атрибутов — изредка, для других — много раз за секунду; другое дело, что в программах чтения S.M.A.R.T. такое быстрое изменение не отображается). Накапливающее поле — содержит статистику, обычно в нём содержится количество возникновений конкретного события со времени первого запуска диска.

Текущий тип характерен для атрибутов, для которых нет смысла суммировать их предыдущие показания. Например, показатель температуры диска является текущим: его цель — в демонстрации температуры в настоящий момент, а не суммы всех предыдущих температур. Накапливающий тип свойственен атрибутам, для которых весь их смысл заключается в предоставлении информации за весь период «жизни» винчестера. Например, атрибут, характеризующий время работы диска, является накапливающим, т. е. содержит количество единиц времени, отработанных накопителем за всю его историю.

Приступим к рассмотрению атрибутов и их RAW-полей.

Атрибут: 01 Raw Read Error Rate

Тип текущий, может быть накапливающим для WD и старых Hitachi
Описание содержит частоту возникновения ошибок при чтении с пластин

Для всех дисков Seagate, Samsung (начиная с семейства SpinPoint F1 (включительно)) и Fujitsu 2,5″ характерны огромные числа в этих полях.

Для остальных дисков Samsung и всех дисков WD в этом поле характерен 0.

Для дисков Hitachi в этом поле характерен 0 либо периодическое изменение поля в пределах от 0 до нескольких единиц.

Такие отличия обусловлены тем, что все жёсткие диски Seagate, некоторые Samsung и Fujitsu считают значения этих параметров не так, как WD, Hitachi и другие Samsung. При работе любого винчестера всегда возникают ошибки такого рода, и он преодолевает их самостоятельно, это нормально, просто на дисках, которые в этом поле содержат 0 или небольшое число, производитель не счёл нужным указывать истинное количество этих ошибок.

Таким образом, ненулевой параметр на дисках WD и Samsung до SpinPoint F1 (не включительно) и большое значение параметра на дисках Hitachi могут указывать на аппаратные проблемы с диском. Необходимо учитывать, что утилиты могут отображать несколько значений, содержащихся в поле RAW этого атрибута, как одно, и оно будет выглядеть весьма большим, хоть это и будет неверно (подробности см. ниже).

На дисках Seagate, Samsung (SpinPoint F1 и новее) и Fujitsu на этот атрибут можно не обращать внимания.

Атрибут: 02 Throughput Performance

Тип текущий
Описание содержит значение средней производительности диска и измеряется в каких-то «попугаях». Обычно его ненулевое значение отмечается на винчестерах Hitachi. На них он может изменяться после изменения параметров ААМ, а может и сам по себе по неизвестному алгоритму

Параметр не даёт никакой информации пользователю и не говорит ни о какой опасности при любом своём значении.

Атрибут: 03 Spin-Up Time

Тип текущий
Описание содержит время, за которое шпиндель диска в последний раз разогнался из состояния покоя до номинальной скорости. Может содержать два значения — последнее и, например, минимальное время раскрутки. Может измеряться в миллисекундах, десятках миллисекунд и т. п. — это зависит от производителя и модели диска

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

Кстати, винчестеры Fujitsu всегда имеют единицу в этом поле в случае отсутствия проблем с раскруткой шпинделя.

Практически ничего не говорит о здоровье диска, поэтому при оценке состояния винчестера на параметр можно не обращать внимания.

Атрибут: 04 Number of Spin-Up Times (Start/Stop Count)

Тип накапливающий
Описание содержит количество раз включения диска. Бывает ненулевым на только что купленном диске, находившемся в запаянной упаковке, что может говорить о тестировании диска на заводе. Или ещё о чём-то, мне не известном :)

При оценке здоровья не обращайте на атрибут внимания.

Атрибут: 05 Reallocated Sector Count

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

Поясним, что вообще такое «переназначенный сектор». Когда диск в процессе работы натыкается на нечитаемый/плохо читаемый/незаписываемый/плохо записываемый сектор, он может посчитать его невосполнимо повреждённым. Специально для таких случаев производитель предусматривает на каждом диске (на каких-то моделях — в центре (логическом конце) диска, на каких-то — в конце каждого трека и т. д.) резервную область. При наличии повреждённого сектора диск помечает его как нечитаемый и использует вместо него сектор в резервной области, сделав соответствующие пометки в специальном списке дефектов поверхности — G-list. Такая операция по назначению нового сектора на роль старого называется remap (ремап) либо переназначение, а используемый вместо повреждённого сектор — переназначенным. Новый сектор получает логический номер LBA старого, и теперь при обращении ПО к сектору с этим номером (программы же не знают ни о каких переназначениях!) запрос будет перенаправляться в резервную область.

Таким образом, хоть сектор и вышел из строя, объём диска не изменяется. Понятно, что не изменяется он до поры до времени, т. к. объём резервной области не бесконечен. Однако резервная область вполне может содержать несколько тысяч секторов, и допустить, чтобы она закончилась, будет весьма безответственно — диск нужно будет заменить задолго до этого.

Кстати, ремонтники говорят, что диски Samsung очень часто ни в какую не хотят выполнять переназначение секторов.

На счёт этого атрибута мнения разнятся. Лично я считаю, что если он достиг 10, диск нужно обязательно менять — ведь это означает прогрессирующий процесс деградации состояния поверхности либо блинов, либо головок, либо чего-то ещё аппаратного, и остановить этот процесс возможности уже нет. Кстати, по сведениям лиц, приближенных к Hitachi, сама Hitachi считает диск подлежащим замене, когда на нём находится уже 5 переназначенных секторов. Другой вопрос, официальная ли эта информация, и следуют ли этому мнению сервис-центры. Что-то мне подсказывает, что нет :)

Другое дело, что сотрудники сервис-центров могут отказываться признавать диск неисправным, если фирменная утилита производителя диска пишет что-то вроде «S.M.A.R.T. Status: Good» или значения Value либо Worst атрибута будут больше Threshold (собственно, по такому критерию может оценивать и сама утилита производителя). И формально они будут правы. Но кому нужен диск с постоянным ухудшением его аппаратных компонентов, даже если такое ухудшение соответствует природе винчестера, а технология производства жёстких дисков старается минимизировать его последствия, выделяя, например, резервную область?

Атрибут: 07 Seek Error Rate

Тип текущий
Описание содержит частоту возникновения ошибок при позиционировании блока магнитных головок (БМГ)

Описание формирования этого атрибута почти полностью совпадает с описанием для атрибута 01 Raw Read Error Rate, за исключением того, что для винчестеров Hitachi нормальным значением поля RAW является только 0.

Таким образом, на атрибут на дисках Seagate, Samsung SpinPoint F1 и новее и Fujitsu 2,5″ не обращайте внимания, на остальных моделях Samsung, а также на всех WD и Hitachi ненулевое значение свидетельствует о проблемах, например, с подшипником и т. п.

Атрибут: 08 Seek Time Performance

Тип текущий
Описание содержит среднюю производительность операций позиционирования головок, измеряется в «попугаях». Как и параметр 02 Throughput Performance, ненулевое значение обычно отмечается на дисках Hitachi и может изменяться после изменения параметров ААМ, а может и само по себе по неизвестному алгоритму

Не даёт никакой информации пользователю и не говорит ни о какой опасности при любом своём значении.

Атрибут: 09 Power On Hours Count (Power-on Time)

Тип накапливающий
Описание содержит количество часов, в течение которых винчестер был включён

Ничего не говорит о здоровье диска.

Атрибут: 10 (0А — в шестнадцатеричной системе счисления) Spin Retry Count

Тип накапливающий
Описание содержит количество повторов запуска шпинделя, если первая попытка оказалась неудачной

О здоровье диска чаще всего не говорит.

Основные причины увеличения параметра — плохой контакт диска с БП или невозможность БП выдать нужный ток в линию питания диска.

В идеале должен быть равен 0. При значении атрибута, равном 1-2, внимания можно не обращать. Если значение больше, в первую очередь следует обратить пристальное внимание на состояние блока питания, его качество, нагрузку на него, проверить контакт винчестера с кабелем питания, проверить сам кабель питания.

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

Атрибут: 11 (0B) Calibration Retry Count (Recalibration Retries)

Тип накапливающий
Описание содержит количество повторных попыток сброса накопителя (установки БМГ на нулевую дорожку) при неудачной первой попытке

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

Атрибут: 12 (0C) Power Cycle Count

Тип накапливающий
Описание содержит количество полных циклов «включение-отключение» диска

Не связан с состоянием диска.

Атрибут: 183 (B7) SATA Downshift Error Count

Тип накапливающий
Описание содержит количество неудачных попыток понижения режима SATA. Суть в том, что винчестер, работающий в режимах SATA 3 Гбит/с или 6 Гбит/с (и что там дальше будет в будущем), по какой-то причине (например, из-за ошибок) может попытаться «договориться» с дисковым контроллером о менее скоростном режиме (например, SATA 1,5 Гбит/с или 3 Гбит/с соответственно). В случае «отказа» контроллера изменять режим диск увеличивает значение атрибута

Не говорит о здоровье накопителя.

Атрибут: 184 (B8) End-to-End Error

Тип накапливающий
Описание содержит количество ошибок, возникших при передаче данных через кэш винчестера

Ненулевое значение указывает на проблемы с диском.

Атрибут: 187 (BB) Reported Uncorrected Sector Count (UNC Error)

Тип накапливающий
Описание содержит количество секторов, которые были признаны кандидатами на переназначение (см. атрибут 197) за всю историю жизни диска. Причём если сектор становится кандидатом повторно, значение атрибута тоже увеличивается

Ненулевое значение атрибута явно указывает на ненормальное состояние диска (в сочетании с ненулевым значением атрибута 197) или на то, что оно было таковым ранее (в сочетании с нулевым значением 197).

Атрибут: 188 (BC) Command Timeout

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

Такие ошибки могут возникать из-за плохого качества кабелей, контактов, используемых переходников, удлинителей и т. д., а также из-за несовместимости диска с конкретным контроллером SATA/РАТА на материнской плате (либо дискретным). Из-за ошибок такого рода возможны BSOD в Windows.

Ненулевое значение атрибута говорит о потенциальной «болезни» диска.

Атрибут: 189 (BD) High Fly Writes

Тип накапливающий
Описание содержит количество зафиксированных случаев записи при высоте полета головки выше рассчитанной — скорее всего, из-за внешних воздействий, например вибрации

Для того чтобы сказать, почему происходят такие случаи, нужно уметь анализировать логи S.M.A.R.T., которые содержат специфичную для каждого производителя информацию, что на сегодняшний день не реализовано в общедоступном ПО — следовательно, на атрибут можно не обращать внимания.

Атрибут: 190 (BE) Airflow Temperature

Тип текущий
Описание содержит температуру винчестера для дисков Hitachi, Samsung, WD и значение «100 − [RAW-значение атрибута 194]» для Seagate

Не говорит о состоянии диска.

Атрибут: 191 (BF) G-Sensor Shock Count (Mechanical Shock)

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

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

Вообще срабатывание датчика не является признаком удара. Может расти даже от позиционирования БМГ самим диском, особенно если его не закрепить. Основное назначение датчика — прекратить операцию записи при вибрациях, чтобы избежать ошибок.

Не говорит о здоровье диска.

Атрибут: 192 (С0) Power Off Retract Count (Emergency Retry Count)

Тип накапливающий
Описание для разных винчестеров может содержать одну из следующих двух характеристик: либо суммарное количество парковок БМГ диска в аварийных ситуациях (по сигналу от вибродатчика, обрыву/понижению питания и т. п.), либо суммарное количество циклов включения/выключения питания диска (характерно для современных WD и Hitachi)

Не позволяет судить о состоянии диска.

Атрибут: 193 (С1) Load/Unload Cycle Count

Тип накапливающий
Описание содержит количество полных циклов парковки/распарковки БМГ. Анализ этого атрибута — один из способов определить, включена ли на диске функция автоматической парковки (столь любимая, например, компанией Western Digital): если его содержимое превосходит (обычно — многократно) содержимое атрибута 09 — счётчик отработанных часов, — то парковка включена

Не говорит о здоровье диска.

Атрибут: 194 (С2) Temperature (HDA Temperature, HDD Temperature)

Тип текущий/накапливающий
Описание содержит текущую температуру диска. Температура считывается с датчика, который на разных моделях может располагаться в разных местах. Поле вместе с текущей также может содержать максимальную и минимальную температуры, зафиксированные за всё время эксплуатации винчестера

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

Атрибут: 195 (С3) Hardware ECC Recovered

Тип накапливающий
Описание содержит количество ошибок, которые были скорректированы аппаратными средствами ECC диска

Особенности, присущие этому атрибуту на разных дисках, полностью соответствуют таковым атрибутов 01 и 07.

Атрибут: 196 (С4) Reallocated Event Count

Тип накапливающий
Описание содержит количество операций переназначения секторов

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

Этот атрибут непосредственно связан с атрибутом 05. При росте 196 чаще всего растёт и 05. Если при росте атрибута 196 атрибут 05 не растёт, значит, при попытке ремапа кандидат в бэд-блоки оказался софт-бэдом (подробности см. ниже), и диск исправил его, так что сектор был признан здоровым, и в переназначении не было необходимости.

Если атрибут 196 меньше атрибута 05, значит, во время некоторых операций переназначения выполнялся перенос нескольких повреждённых секторов за один приём.

Если атрибут 196 больше атрибута 05, значит, при некоторых операциях переназначения были обнаружены исправленные впоследствии софт-бэды.

Атрибут: 197 (С5) Current Pending Sector Count

Тип текущий
Описание содержит количество секторов-кандидатов на переназначение в резервную область

Натыкаясь в процессе работы на «нехороший» сектор (например, контрольная сумма сектора не соответствует данным в нём), диск помечает его как кандидат на переназначение, заносит его в специальный внутренний список и увеличивает параметр 197. Из этого следует, что на диске могут быть повреждённые секторы, о которых он ещё не знает — ведь на пластинах вполне могут быть области, которые винчестер какое-то время не использует.

При попытке записи в сектор диск сначала проверяет, не находится ли этот сектор в списке кандидатов. Если сектор там не найден, запись проходит обычным порядком. Если же найден, проводится тестирование этого сектора записью-чтением. Если все тестовые операции проходят нормально, то диск считает, что сектор исправен. (Т. е. был т. н. «софт-бэд» — ошибочный сектор возник не по вине диска, а по иным причинам: например, в момент записи информации отключилось электричество, и диск прервал запись, запарковав БМГ. В итоге данные в секторе окажутся недописанными, а контрольная сумма сектора, зависящая от данных в нём, вообще останется старой. Налицо будет расхождение между нею и данными в секторе.) В таком случае диск проводит изначально запрошенную запись и удаляет сектор из списка кандидатов. При этом атрибут 197 уменьшается, также возможно увеличение атрибута 196.

Если же тестирование заканчивается неудачей, диск выполняет операцию переназначения, уменьшая атрибут 197, увеличивая 196 и 05, а также делает пометки в G-list.

Итак, ненулевое значение параметра говорит о неполадках (правда, не может сказать о том, в само́м ли диске проблема).

При ненулевом значении нужно обязательно запустить в программах Victoria или MHDD последовательное чтение всей поверхности с опцией remap. Тогда при сканировании диск обязательно наткнётся на плохой сектор и попытается произвести запись в него (в случае Victoria 3.5 и опции Advanced remap — диск будет пытаться записать сектор до 10 раз). Таким образом программа спровоцирует «лечение» сектора, и в итоге сектор будет либо исправлен, либо переназначен.

В случае неудачи чтения как с remap, так и с Advanced remap, стоит попробовать запустить последовательную запись в тех же Victoria или MHDD. Учитывайте, что операция записи стирает данные, поэтому перед её применением обязательно делайте бэкап!

Иногда от невыполнения ремапа могут помочь следующие манипуляции: снимите плату электроники диска и почистите контакты гермоблока винчестера, соединяющие его с платой — они могут быть окислены. Будь аккуратны при выполнении этой процедуры — из-за неё можно лишиться гарантии!

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

Если же значение атрибута 197 никакими манипуляциями не снижается до 0, следует думать о замене диска.

Атрибут: 198 (С6) Offline Uncorrectable Sector Count (Uncorrectable Sector Count)

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

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

Ненулевое значение говорит о неполадках на диске (точно так же, как и 197, не конкретизируя, кто виноват).

Атрибут: 199 (С7) UltraDMA CRC Error Count

Тип накапливающий
Описание содержит количество ошибок, возникших при передаче по интерфейсному кабелю в режиме UltraDMA (или его эмуляции винчестерами SATA) от материнской платы или дискретного контроллера контроллеру диска

В подавляющем большинстве случаев причинами ошибок становятся некачественный шлейф передачи данных, разгон шин PCI/PCI-E компьютера либо плохой контакт в SATA-разъёме на диске или на материнской плате/контроллере.

Ошибки при передаче по интерфейсу и, как следствие, растущее значение атрибута могут приводить к переключению операционной системой режима работы канала, на котором находится накопитель, в режим PIO, что влечёт резкое падение скорости чтения/записи при работе с ним и загрузку процессора до 100% (видно в Диспетчере задач Windows).

В случае винчестеров Hitachi серий Deskstar 7К3000 и 5К3000 растущий атрибут может говорить о несовместимости диска и SATA-контроллера. Чтобы исправить ситуацию, нужно принудительно переключить такой диск в режим SATA 3 Гбит/с.

Моё мнение: при наличии ошибок — переподключите кабель с обоих концов; если их количество растёт и оно больше 10 — выбрасывайте шлейф и ставьте вместо него новый или снимайте разгон.

Можно считать, что о здоровье диска атрибут не говорит.

Атрибут: 200 (С8) Write Error Rate (MultiZone Error Rate)

Тип текущий
Описание содержит частоту возникновения ошибок при записи

Ненулевое значение говорит о проблемах с диском — в частности, у дисков WD большие цифры могут означать «умирающие» головки.

Атрибут: 201 (С9) Soft Read Error Rate

Тип текущий
Описание содержит частоту возникновения ошибок чтения, произошедших по вине программного обеспечения

Влияние на здоровье неизвестно.

Атрибут: 202 (СА) Data Address Mark Error

Тип неизвестно
Описание содержание атрибута — загадка, но проанализировав различные диски, могу констатировать, что ненулевое значение — это плохо

Атрибут: 203 (CB) Run Out Cancel

Тип текущий
Описание содержит количество ошибок ECC

Влияние на здоровье неизвестно.

Атрибут: 220 (DC) Disk Shift

Тип текущий
Описание содержит измеренный в неизвестных единицах сдвиг пластин диска относительно оси шпинделя

Влияние на здоровье неизвестно.

Атрибут: 240 (F0) Head Flying Hours

Тип накапливающий
Описание содержит время, затраченное на позиционирование БМГ. Счётчик может содержать несколько значений в одном поле

Влияние на здоровье неизвестно.

Атрибут: 254 (FE) Free Fall Event Count

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

Влияние на здоровье неизвестно.

Подытожим описание атрибутов. Ненулевые значения:

  • атрибутов 01, 07, 195 — вызывают подозрения в «болезни» у некоторых моделей дисков;
  • атрибутов 10, 11, 188, 196, 199, 202 — вызывают подозрения у всех дисков;
  • и, наконец, атрибутов 05, 184, 187, 197, 198, 200 — прямо говорят о неполадках.

При анализе атрибутов учитывайте, что в некоторых параметрах S.M.A.R.T. могут храниться несколько значений этого параметра: например, для предпоследнего запуска диска и для последнего. Такие параметры длиной в несколько байт логически состоят из нескольких значений длиной в меньшее количество байт — например, параметр, хранящий два значения для двух последних запусков, под каждый из которых отводится 2 байта, будет иметь длину 4 байта. Программы, интерпретирующие S.M.A.R.T., часто не знают об этом, и показывают этот параметр как одно число, а не два, что иногда приводит к путанице и волнению владельца диска. Например, «Raw Read Error Rate», хранящий предпоследнее значение «1» и последнее значение «0», будет выглядеть как 65536.

Надо отметить, что не все программы умеют правильно отображать такие атрибуты. Многие как раз и переводят атрибут с несколькими значениями в десятичную систему счисления как одно огромное число. Правильно же отображать такое содержимое — либо с разбиением по значениям (тогда атрибут будет состоять из нескольких отдельных чисел), либо в шестнадцатеричной системе счисления (тогда атрибут будет выглядеть как одно число, но его составляющие будут легко различимы с первого взгляда), либо и то, и другое одновременно. Примерами правильных программ служат HDDScan, CrystalDiskInfo, Hard Disk Sentinel.

Продемонстрируем отличия на практике. Вот так выглядит мгновенное значение атрибута 01 на одном из моих Hitachi HDS721010CLA332 в неучитывающей особенности этого атрибута Victoria 4.46b:

А так выглядит он же в «правильной» HDDScan 3.3:

Плюсы HDDScan в данном контексте очевидны, не правда ли?

Если анализировать S.M.A.R.T. на разных дисках, то можно заметить, что одни и те же атрибуты могут вести себя по-разному. Например, некоторые параметры S.M.A.R.T. винчестеров Hitachi после определённого периода неактивности диска обнуляются; параметр 01 имеет особенности на дисках Hitachi, Seagate, Samsung и Fujitsu, 03 — на Fujitsu. Также известно, что после перепрошивки диска некоторые параметры могут установиться в 0 (например, 199). Однако подобное принудительное обнуление атрибута ни в коем случае не будет говорить о том, что проблемы с диском решены (если таковые были). Ведь растущий критичный атрибут — это следствие неполадок, а не причина.

При анализе множества массивов данных S.M.A.R.T. становится очевидным, что набор атрибутов у дисков разных производителей и даже у разных моделей одного производителя может отличаться. Связано это с так называемыми специфичными для конкретного вендора (vendor specific) атрибутами (т. е. атрибутами, используемыми для мониторинга своих дисков определённым производителем) и не должно являться поводом для волнения. Если ПО мониторинга умеет читать такие атрибуты (например, Victoria 4.46b), то на дисках, для которых они не предназначены, они могут иметь «страшные» (огромные) значения, и на них просто не нужно обращать внимания. Вот так, например, Victoria 4.46b отображает RAW-значения атрибутов, не предназначенных для мониторинга у Hitachi HDS721010CLA332:

Нередко встречается проблема, когда программы не могут считать S.M.A.R.T. диска. В случае исправного винчестера это может быть вызвано несколькими факторами. Например, очень часто не отображается S.M.A.R.T. при подключении диска в режиме AHCI. В таких случаях стоит попробовать разные программы, в частности HDD Scan, которая обладает умением работать в таком режиме, хоть у неё и не всегда это получается, либо же стоит временно переключить диск в режим совместимости с IDE, если есть такая возможность. Далее, на многих материнских платах контроллеры, к которым подключаются винчестеры, бывают не встроенными в чипсет или южный мост, а реализованы отдельными микросхемами. В таком случае DOS-версия Victoria, например, не увидит подключённый к контроллеру жёсткий диск, и ей нужно будет принудительно указывать его, нажав клавишу [Р] и введя номер канала с диском. Часто не читаются S.M.A.R.T. у USB-дисков, что объясняется тем, что USB-контроллер просто не пропускает команды для чтения S.M.A.R.T. Практически никогда не читается S.M.A.R.T. у дисков, функционирующих в составе RAID-массива. Здесь тоже есть смысл попробовать разные программы, но в случае аппаратных RAID-контроллеров это бесполезно.

Если после покупки и установки нового винчестера какие-либо программы (HDD Life, Hard Drive Inspector и иже с ними) показывают, что: диску осталось жить 2 часа; его производительность — 27%; здоровье — 19,155% (выберите по вкусу) — то паниковать не стоит. Поймите следующее. Во-первых, нужно смотреть на показатели S.M.A.R.T., а не на непонятно откуда взявшиеся числа здоровья и производительности (впрочем, принцип их подсчёта понятен: берётся наихудший показатель). Во-вторых, любая программа при оценке параметров S.M.A.R.T. смотрит на отклонение значений разных атрибутов от предыдущих показаний. При первых запусках нового диска параметры непостоянны, необходимо некоторое время на их стабилизацию. Программа, оценивающая S.M.A.R.T., видит, что атрибуты изменяются, производит расчёты, у неё получается, что при их изменении такими темпами накопитель скоро выйдет из строя, и она начинает сигнализировать: «Спасайте данные!» Пройдёт некоторое время (до пары месяцев), атрибуты стабилизируются (если с диском действительно всё в порядке), утилита наберёт данных для статистики, и сроки кончины диска по мере стабилизации S.M.A.R.T. будут переноситься всё дальше и дальше в будущее. Оценка программами дисков Seagate и Samsung — вообще отдельный разговор. Из-за особенностей атрибутов 1, 7, 195 программы даже для абсолютно здорового диска обычно выдают заключение, что он завернулся в простыню и ползёт на кладбище.

Обратите внимание, что возможна следующая ситуация: все атрибуты S.M.A.R.T. — в норме, однако на самом деле диск — с проблемами, хоть этого пока ни по чему не заметно. Объясняется это тем, что технология S.M.A.R.T. работает только «по факту», т. е. атрибуты меняются только тогда, когда диск в процессе работы встречает проблемные места. А пока он на них не наткнулся, то и не знает о них и, следовательно, в S.M.A.R.T. ему фиксировать нечего.

Таким образом, S.M.A.R.T. — это полезная технология, но пользоваться ею нужно с умом. Кроме того, даже если S.M.A.R.T. вашего диска идеален, и вы постоянно устраиваете диску проверки — не полагайтесь на то, что ваш диск будет «жить» ещё долгие годы. Винчестерам свойственно ломаться так быстро, что S.M.A.R.T. просто не успевает отобразить его изменившееся состояние, а бывает и так, что с диском — явные нелады, но в S.M.A.R.T. — всё в порядке. Можно сказать, что хороший S.M.A.R.T. не гарантирует, что с накопителем всё хорошо, но плохой S.M.A.R.T. гарантированно свидетельствует о проблемах. При этом даже с плохим S.M.A.R.T. утилиты могут показывать, что состояние диска — «здоров», из-за того, что критичными атрибутами не достигнуты пороговые значения. Поэтому очень важно анализировать S.M.A.R.T. самому, не полагаясь на «словесную» оценку программ.

Хоть технология S.M.A.R.T. и работает, винчестеры и понятие «надёжность» настолько несовместимы, что принято считать их просто расходным материалом. Ну, как картриджи в принтере. Поэтому во избежание потери ценных данных делайте их периодическое резервное копирование на другой носитель (например, другой винчестер). Оптимально делать две резервные копии на двух разных носителях, не считая винчестера с оригинальными данными. Да, это ведёт к дополнительным затратам, но поверьте: затраты на восстановление информации со сломавшегося HDD обойдутся вам в разы — если не на порядок-другой — дороже. А ведь данные далеко не всегда могут восстановить даже профессионалы. Т. е. единственная возможность обеспечить надёжное хранение ваших данных — это делать их бэкап.

Напоследок упомяну некоторые программы, которые хорошо подходят для анализа S.M.A.R.T. и тестирования винчестеров: HDDScan (работает в Windows, бесплатная), CrystalDiskInfo (Windows, бесплатная), Hard Disk Sentinel (платная для Windows, бесплатная для DOS), HD Tune (Windows, платная, есть бесплатная старая версия).

И наконец, мощнейшие программы для тестирования: Victoria (Windows, DOS, бесплатная), MHDD (DOS, бесплатная).

Что такое код hw_api_error >count

1.2
Кнопка инж. меню только для mtk
Улучшено определение устройств

1.3
Улучшено определение устройств rockchip и qualcom

1.5
Вкладки
Для mtk на 2 вкладке инфа из ProjectConfig.mk
Разметка rockchip и mt6752 (берет из /proc/partinfo)
Адреса устройств i2c (вкл. в настройках)

1.6 Upload test
Разметка теперь и на mt6589 и др.
Определение чипа wifi на rockchip.
Исправление ошибок
В тестовом режиме загрузка характеристик в БД

1.7
Улучшено определение устройств по данным БД
Базовая поддержка samsung
Обновлен сайт и форма загрузки данных

1.8
Определение камер на платформе qualcom (требуется root)
Определение датчиков через Android API (если не нашли)
На mt6735+ показываем только активные камеры
Подписи вкладок

1.9
+ Добавлена возможность обновить базу определения компонентов из программы (в меню about)
Правила определения устройств вынесены в отдельный файл git components
+ Улучшено определение устройств
+ При изменении настроек, они сразу применяются

2.0 (release candidate 3)

rc1
Добавлена новая вкладка с информацией:
— CPU (Кол-во ядер, семейство, частота, говернор)
— GPU (модель, частота, версия OpenGL)
— Память

Начальная поддержка CPU из нескольких кластеров.

На qcom root запрашивает только, если включен в настройках. (Для определения моделей камер)

rc2
Релизная версия, добавил свою подпись для приложения

rc3
Повышена стабильность
На mtk вкладка config показывается только при наличии файла

2.1
Фикс загрузки инфы (upload)
версия java vm

1) Добавлены новые вкладки:

1. Система
2. Память (озу, диски, пути монтирования)
3. Камера
аппаратные характеристики: пытаюсь определить производителя, разрешение
программные характеристики: через Android API (для android P20 / P20 series / P25 / P25 series

— Обновлены компоненты обнаружения.
— ZTE, BQ qcom: пробуем определить камеры (на sd820 есть).
— Новый метод определения компонентов для устройств с 7.0/7.1, где запрещено чтение sysfs (qcom, hisi).

— Обновлены компоненты обнаружения. Улучшено определение компонентов для 7.0/7.1
— Для некоторых устройств добавлен размер ПЗУ.
— Исправление ошибок.

— Обновлены компоненты обнаружения.
— Улучшена поддержка Galaxy S9 (exynos9810, sdm845)
— qcom: улучшено определение поддерживаемых камер
(для новых устройств msm8996/sdm6xx на конце ‘_cust’ для наиболее вероятных)
— qcom: для определения имен разделов не требуется root (для устройств на 5.1 и др).
— Исправление ошибок.

— Обновлены компоненты обнаружения.
— Исправлен детектор компонентов для sdm6xx на 7.x
— Названия разделов для mt65xx на 4.4
— Обнаружение датчика отпечатка по spi
— Пробное обнаружение wi-fi, ethernet для amlogic и др.
— Исправлено зависание при вкл. root на M6 Note
— Определение камер на некоторых устройствах OnePlus
— Исправлены ошибки

— Обновлены компоненты обнаружения.
— qcom: Новый метод определения камер (не требует root)
Должен работать на 5,6 и 7.0+ где не заблокировано чтение.
— Определение кол-ва ядер mali gpu для некоторых устройств
— mt6763: теперь должны определиться все камеры
— Дополнительная инфа о камере (программно)
— Исправление ошибок

— Обновлены компоненты обнаружения.
— qcom: Новый метод определения камер с root для 7.x/8.x
— mtk: Новый метод определения дисплея для ядер 3.18
На 6.0 и большинстве 7.0 без root
— exynos: Новый метод определения частоты gpu, чипа ufs для новых моделей (проверено на galaxy s9+)
— Улучшено определение ЦП для rockchip, amlogic
— Исправлено определение kirin 970
— Исправление ошибок

— Обновлены компоненты обнаружения.
— Определение устройств ввода теперь и для 8.x
— Для 7.1 и ниже список монтирования разделов. На вкладке разметка нажать на заголовок.
На новых можно увидеть схему system a/b
— Для 7.x/8.x с root доступно больше информации
— Для 7.x/8.x добавлен экспериментальный детектор компонентов.
Для qcom:
— Новый метод определения частоты gpu без root на 7.x/8.x sdmXXX
— Улучшен метод определения модели батареи
— Новый метод определения поддерживаемых камер для sdmXXX
— Исправление ошибок

Версия 4.14.x 280818

— Определение поддерживаемых камер для sdm845
— При активации camera2 api доступны значение апертуры и iso.
— Для mtk 7.0+ у кого заблокировано чтение поддерживаемых камер, можно скопировать библиотеку libcameracustom.so в папку программы, будет считывать оттуда.

Версия 4.15.x 041018

— Обновлены компоненты обнаружения экспер. детектора для 7.x/8.x без root. По результатам тех, кто заливал в базу.
— Если включен root на 7.0+ вернется вкладка драйверы (но будут все, не только активные, с root слишком медленно)
— Для Spreadtrum 7.0+ у кого заблокировано чтение поддерживаемых камер, можно скопировать библиотеку camera.PLATFORM.so (sc8830 и др.) в папку программы, будет считывать оттуда.
— Исправление ошибок
[PRO]
Улучшен отчет:
— Добавлена инфа c вкладок устройства ввода и wi-fi
— Добавлена кнопка отправить, позволяет отправить отчет на почту (в виде файла)
— В низу приписывается, какой версией программы был создан отчет
— Исправлена кодировка, заголовок страницы

Версия 4.16.x 051118
— Обновлены компоненты обнаружения
— Улучшена поддержка памяти для новых cpu
— Добавлена вкладка кодеки
— На 8.x Определение звуковой карты без root (qcom, hisi)
— kirin980 определение архитектуры

Версия 4.17.x 011218
— galaxy s9 sdm845 дисплей, поддерживаемые камеры
— Для Qualcomm добавлено определение названия датчиков температуры, требуется root и включить в настройках эту функцию.
У меня, например, заменяет tsens_tz_sensor12 на gpu, и 5 датчиков для cpu.

Версия 4.18.x 17012020

— Обновлены компоненты обнаружения
— HiSi: определение дисплея с root kirin960+
— HiSi: определение типа дисплея oled/amoled или ips/lcd
— HiSi: поддерживаемые камеры kirin970+
— sdm845: Определение дисплея для lg, xiaomi где не заблокировано.
— Начато улучшение определения компонентов для x86 ноутбуков
[PRO]
— HiSi: определение модели камеры по данным из фото (exif).
В меню инфо-центр выбрать фото, покажет инфу. Можно выделить и скопировать данные.

Версия 4.19 04032020

— Обновлены компоненты обнаружения
— Улучшено определение snapdragon 855, exynos9820, Helio P70
— kirin970+ определение поддерживаемых камер
— Исправление ошибок

Версия 4.20 29032020

Улучшена поддержка snapdragon 855, 712, 675; exynos9820, Helio P70

Новая версия 4.21 27052020 — 27062020

— Обновлены компоненты обнаружения
— На вкладке система, теперь выпуск android (соответствует API) Бывают фейковые версии android прописывают.
— Для xiaomi sdm855 c root, у кого определялось 2 камеры из 4, должны все показываться.
— Попытался немного оптимизировать
— sdm730

— Улучшено определение устройств для android 9.
— Snapdragon 855+, 665. Добавлен Кэш L3 для ЦП
— Добавлены характеристики камеры camera 2 api:
Размер пикселя (у кого неправильное разрешение, то на полученное значение не смотрите)
Угол обзора (горизонтальный)
Цветовой фильтр (Color Filter Arrangment)

— Обновление до sdk28, также в списке приложений добавлена версия sdk.
— На 8.0+ (у кого недоступна разметка), вместо нее пути монтирования (+добавлен размер).
kirin
Новый метод для определения дисплея с root для kirin970+
Тестовый метод определения производителя дисплея huawei mate 20 pro, где старый заблокирован на emui 9.1
mtk
Поддерживаемые камеры для новый устройств (проверено на 9.0 mt6771)
qcom
Поддерживаемые камеры, исправлен метод для msm8996 — sdm6xx на 8.0+

— Исправлены ошибки, исправлена работа на Redmi K20 Pro

Сообщение отредактировал ANDR7E — 08.11.19, 13:03

Ошибки Installous – API Error

Используя приложение Installous, некоторые пользователи сталкиваются с ошибками, периодически выдаваемыми программой. Часто происходит, что ошибки сопровождаются полным отказом работы Installous. Сегодня мы рассмотрим ошибки API (API Error).

API Error – API unavailable
Ошибка приложения – «недоступный API» означает, что программа Installous не может обратиться к серверу Apptrackr.org. Для тех, кто не знает, Apptrackr это сетевая версия Installous, которая позволяет загружать IPA-файлы непосредственно на Ваш настольный компьютер.

Причины возникновения ошибки:
• Слабый сигнал точки доступа Wi-Fi
• Ваш поставщик услуг Интернета заблокировал доступ к сайту Apptrackr, таким образом, оградив Вас от неофициальных приложений
• Сервер Apptrackr перегружен, т.е. временно не доступен из-за большого количества посетителей.

API Error – Permission denied
Ошибка приложения – «Доступ запрещен» означает, что ваш IP-адрес был заблокирован представителями Apptrackr. Блокировка может временной или постоянной. Блок может быть вызван многочисленными запросами к Installous API

Что такое код hw_api_error >count

Статьи » Расшифровка кодов ошибок POST (ПОСТ) карты

Расшифровка кодов ошибок POST (ПОСТ) карты

Award BIOS 6.0: полная загрузка

Данная таблица содержит POST-коды, которые отображаются при полной процедуре POST.

  • CF Определяется тип процессора и тестируется чтение/запись CMOS
  • C0 Предварительно инициализируется чипсет и L1-, L2-кэш, программируется контроллер прерываний, DMA, таймер
  • C1 Детектируется тип и объем оперативной памяти
  • C3 Код BIOS распаковывается во временную область оперативной памяти
  • 0С Проверяются контрольные суммы BIOS
  • C5 Код BIOS копируется в теневую память и управление передается модулю Boot Block
  • 01 Модуль XGROUP распаковывается по физическому адресу 1000:0000h
  • 02 Инициализация процессора. Устанавливаются регистры CR и MSR
  • 03 Определяются ресурсы ввода/вывода (Super I/O)
  • 05 Очищается экран и флаг состояния CMOS
  • 06 Проверяется сопроцессор
  • 07 Определяется и тестируется контроллер клавиатуры
  • 08 Определяется интерфейс клавиатуры
  • 09 Инициализация контроллера Serial ATA
  • OA Определяется клавиатура и мышь, которые подключены к портам PS/2
  • 0B Устанавливаются ресурсы звукового контроллера AC97
  • OE Тестируется сегмент памяти F000h
  • 10 Определяется тип flash-памяти
  • 12 Тестируется CMOS
  • 14 Устанавливаются значения для регистров чипсета
  • 16 Первично инициализируется тактовый генератор
  • 18 Определяется тип процессора, его параметры и объемы кэша L1 и L2
  • 1B Инициализируется таблица векторов прерываний
  • 1С Проверяются контрольные суммы CMOS и напряжение питания аккумулятора
  • 1D Определяется система управления питанием Power Management
  • 1F Загружается матрица клавиатуры (для ноутбуков)
  • 21 Инициализируется система Hardware Power Management (для ноутбуков)
  • 23 Тестируется математический сопроцессор, дисковод, инициализация чипсета
  • 24 Обновляется микрокод процессора. Создается карта распределения ресурсов устройств Plug and Play
  • 25 Начальная инициализация PCI: перечисляются устройства, поиск адаптера VGA, запись VGA BIOS по адресу C000:0
  • 26 Устанавливается тактовая частота по CMOS Setup. Отключается синхронизация неиспользуемых слотов DIMM и PCI. Инициализируется система мониторинга (H/W Monitor)
  • 27 Разрешается прерывание INT 09h. Снова инициализируется контроллер клавиатуры
  • 29 Программируются регистры MTRR, инициализируется APIC. Программируется контроллер IDE. Измеряется частота процессора. Вызывается расширение BIOS видеосистемы
  • 2B Поиск BIOS видеоадаптера
  • 2D Отображается заставка Award, информация о типе процессора и его скорости
  • 33 Сбрасывается клавиатура
  • 35 Тестируется первый канал DMA
  • 37 Тестируется второй канал DMA
  • 39 Тестируются страничные регистры DMA
  • 3C Настраивается контроллер 8254 (таймер)
  • 3E Проверка контроллера прерываний 8259
  • 43 Проверяется контроллер прерываний
  • 47 Тестируются шины ISA/EISA
  • 49 Вычисляется объем оперативной памяти. Настраиваются регистры для процессора AMD K5
  • 4E Программируются регистры MTRR для процессоров Syrix. Инициализируются кэш L2 и APIC
  • 50 Определяется шина USB
  • 52 Тестируется ОЗУ с отображением результатов. Очищается расширенная память
  • 53 Если выполнена очистка CMOS, то сбрасывается пароль на вход в систему
  • 55 Отображается количество процессоров (для многопроцессорных платформ)
  • 57 Отображается логотип EPA. Начальная инициализация устройств ISA PnP
  • 59 Определяется система защиты от вирусов
  • 5B Вывод подсказки для запуска обновления BIOS с дискеты
  • 5D Запускается контроллер Super I/O и интегрированный аудиоконтроллер
  • 60 Вход в CMOS Setup, если была нажата клавиша Delete
  • 65 Инициализируется мышь PS/2
  • 69 Включается кэш L2
  • 6B Настраиваются регистры чипсета согласно BIOS Setup
  • 6D Назначаются ресурсы для устройств ISA PnP и COM-порты для интегрированных устройств
  • 6F Инициализируется и настраивается контроллер гибких дисков
  • 75 Детектируются и устанавливаются IDE-устройства: жесткие диски, CD/DVD, LS-120, ZIP и др.
  • 76 Выводится информация об обнаруженных IDE-устройствах
  • 77 Инициализируются последовательные и параллельные порты
  • 7A Сбрасывается и готовится к работе математический сопроцессор
  • 7C Определяется защита от несанкционированной записи на жесткие диски
  • 7F При наличии ошибок выводится сообщение и ожидается нажатие клавиш Delete и F1
  • 82 Выделяется память для управления питанием и заносятся изменения в таблицу ESCD.
  • Убирается заставка с логотипом EPA. Запрашивается пароль, если нужен
  • 83 Все данные сохраняются из временного стека в CMOS
  • 84 Вывод на экран сообщения Initializing Plug and Play Cards
  • 85 Завершается инициализация USB
  • 87 Создаются таблицы SYSID в области DMI
  • 89 Устанавливаются таблицы ACPI. Назначаются прерывания для PCI-устройств
  • 8B Вызывается BIOS дополнительных ISA- или PCI-контроллеров, за исключением видеоадаптера
  • 8D Устанавливаются параметры контроля четности ОЗУ по CMOS Setup. Инициализируется APM
  • 8F IRQ 12 разрешается для «горячего» подключения мыши PS/2
  • 94 Завершение инициализации чипсета. Отображение таблицы распределения ресурсов. Включение кэша L2. Установка режима перехода на летнее/зимнее время
  • 95 Устанавливается частота автоповтора клавиатуры и состояния Num Lock
  • 96 Для многопроцессорных систем настраиваются регистры (для процессоров Cyrix). Создается таблица ESCD. Устанавливается таймер DOS Time по показаниям часов RTC CMOS. Сохраняются разделы загрузочных устройств для использования встроенным антивирусом. Динамик оповещает об окончании POST. Создается таблица MSIRQ FF Выполняется прерывание BIOS INT 19h. Поиск загрузчика в первом секторе загрузочного устройства

Award BIOS 6.0: сокращенная загрузка

Сокращенная процедура выполняется при установке в BIOS параметра Quick Power On Self Test.

  • 65 Сбрасывается видеоадаптер. Инициализируются звуковой контроллер, устройства ввода/вывода,тестируется клавиатура и мышь. Проверяется целостность BIOS
  • 66 Инициализируется кэш-память. Создается таблица векторов прерываний. Инициализируется система управления питанием
  • 67 Проверяется контрольная сумма CMOS и тестируется батарейка питания. Настраивается чипсет на основе параметров CMOS
  • 68 Инициализируется видеоадаптер
  • 69 Настраивается контроллер прерываний
  • 6A Тестируется оперативная память (ускоренно)
  • 6B Отображается логотип EPA, результаты тестов процессора и памяти
  • 70 Отображается подсказка для входа в BIOS Setup. Инициализируется мышь, подключенная к PS/2 или USB
  • 71 Инициализируется контроллер кэш-памяти
  • 72 Настраиваются регистры чипсета. Создается список устройств Plug and Play.& Инициализируется контроллер дисковода
  • 73 Инициализируется контроллер жестких дисков
  • 74 Инициализируется сопроцессор
  • 75 Если нужно, жесткий диск защищается от записи
  • 77 Если нужно, запрашивается пароль и выводятся сообщения Press F1 to continue, DEL to enter Setup
  • 78 Инициализируются платы расширения с собственной BIOS
  • 79 Инициализируются ресурсы платформы
  • 7A Генерируются корневая таблица RSDT, таблицы устройств DSDT, FADT и т. п.
  • 7D Собирается информациия о разделах загрузочных устройств
  • 7E BIOS готовится к загрузке операционной системы
  • 7F Состояние индикатора NumLock устанавливается в соответствии с настройками
  • BIOS Setup
  • 80 Вызывается INT 19 и запускается операционная система
  • FF Загрузка операционной системы

Что такое код hw_api_error >count

Ошибки и коды ответов

API использует информирование при помощи HTTP кодов ответов, которые приложение должно корректно обрабатывать.

Помимо кода ответа, в теле ответа выдаётся дополнительная информация, позволяющая разработчику понять причину ошибки.

Ошибки выдаются в формате:

Ключ type присутствует в каждом объекте и содержит текстовый идентификатор класса ошибки. Ключ value опционален и конкретизирует данные об ошибке.

При отправке POST/PUT запросов, которые подразумевают отправку форм, в объекте ответа с ошибкой может присутствовать объект fields с человекочитаемой информацией об ошибке:

Если сервис не может обработать запрос, то в ответ придёт 500 Internal Server Error и поле type будет содержать server_error .

В редких случаях ошибки с 5xx кодами могут возвращаться с телом не содержащим валидный JSON. Приложение должно в таких случаях ориентироваться только на код ответа.

Общие ошибки запроса

HTTP code type value описание
400 bad_user_agent заголовок User-Agent не передан

Ошибки использования авторизации

Если совершается авторизованный запрос в API, а предоставленная авторизация не действительна, вернётся ошибка с type oauth и одним из перечисленных value :

HTTP code type value описание
401 oauth bad_authorization токен авторизации не существует или не валидный
401 oauth token_expired время жизни access_token завершилось, необходимо выполнить обновление access_token
401 oauth token_revoked токен отозван пользователем, приложению необходимо запросить новую авторизацию
  • © 2020 GitHub , Inc.
  • Terms
  • Privacy
  • Security
  • Status
  • Help

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Как решить проблему «CHECK CERT: HW key is failed!»

При попытке запуска персонального сервера видеоконференций TrueConf Server , а также TrueConf Server Free вы можете обнаружить, что по окончанию процесса запуска он раз за разом переходит в статус

В этой статье мы разберём наиболее частую причину возникновения такой проблемы

Что делать при остановке зарегистрированного сервера

Первое, что стоит предпринять в данной ситуации – это проверить журнал сервера, который доступен в панели управления сервером при нажатии на кнопку Система → Журнал сервера в верхнем правом углу.

Логи в журнале сервера будут содержать максимальное количество информации, если в разделе Панель управления > Настройки включить опцию Подробное логирование.

Скорее всего, причиной остановки TrueConf Server является наличие в журнале следующей строки:

07/02/2020 18:54:08|0| 2354| UNKNOWN| CHECK CERT: HW key is failed!

Что такое HW key и как его исправить

Аппаратный ключ HW key представляет собой “слепок” (контрольную сумму) конфигурации вашего компьютера или виртуальной машины. При изменении этой конфигурации (например, вследствии редактирования информации о процессоре, MAC-адреса сетевой карты или переустановки операционной системы) ваш аппаратный ключ может “сломаться”, и, как следствие, TrueConf Server будет остановлен и перестанет запускаться. Остановка сервера в этом случае делается его службой безопасности во избежание несанкционированного использования его копии.

Исправление аппаратного ключа, к которому привязана ваша лицензия, производится технической поддержкой TrueConf совершенно бесплатно. Для этого вам нужно отправить заявку, в которой необходимо указать были ли изменения в аппаратном обеспечении вашего сервера и тип виртуальной машины (в случае ее использования). После того, как техническая поддержка исправит аппаратный ключ, перерегистрируйте сервер.

Перед сбросом регистрации обязательно убедитесь, что у вас имеется регистрационный ключ, который вводили на этом сервере в предыдущий раз. Его можно найти среди писем на электронной почте, куда было прислано письмо о регистрации, с помощью ID cервера.

Для устранения возможности поломки аппаратного ключа на виртуальной машине зафиксируйте такие параметры работы вашего компьютера:

  • размер жесткого диска компьютера;
  • серийный номер (SMART);
  • MAC-адрес сетевой карты (MAC);
  • размер физической памяти (MEM).

Ответы при ошибках

Стандартные ответы при возникновении ошибки

После успешной обработки запроса Core Reporting API возвращает в теле ответа код статуса 200 . В случае ошибки API возвращает в ответе соответствующий код статуса HTTP и сведения о ее причине. Кроме того, в теле ответа подробно описывается, что привело к ошибке. Пример:

Таблица ошибок

Код Причина Описание Рекомендуемые действия
400 invalidParameter Параметр запроса имеет неверное значение. В полях locationType и location ответа приводятся сведения о недопустимом значении. Прежде чем повторить попытку, устраните проблему. Указанному в ответе параметру должно быть присвоено допустимое значение.
400 badRequest Неверный запрос. Возможно, отсутствует идентификатор родительского элемента, или запрошена недопустимая комбинация параметров и показателей. Прежде чем повторить попытку, устраните проблему. Внесите необходимые изменения в запрос к API.
401 invalidCredentials Неверный или устаревший токен аутентификации. Прежде чем повторить попытку, устраните проблему. Получите новый токен аутентификации.
403 insufficientPermissions У пользователя нет разрешения на работу с объектом, указанным в запросе. Прежде чем повторить попытку, устраните проблему. Получите необходимые разрешения для работы с указанным объектом.
403 dailyLimitExceeded Пользователь превысил дневную квоту для проекта или профиля. Прежде чем повторить попытку, устраните проблему (исчерпана дневная квота). Подробнее об ограничениях и квотах в API…
403 userRateLimitExceeded Превышена квота запросов в течение 100 секунд на одного пользователя. Квота по умолчанию – 100 запросов за 100 секунд. Ее можно увеличить до 1000 запросов в Google API Console. Попробуйте применить алгоритм экспоненциальной выдержки, чтобы снизить скорость отправки запросов.
403 rateLimitExceeded Превышена квота запросов в течение 100 секунд на один проект. Попробуйте применить алгоритм экспоненциальной выдержки, чтобы снизить скорость отправки запросов.
403 quotaExceeded Достигнуто ограничение в 10 параллельных запросов к Core Reporting API на один профиль. Попробуйте применить алгоритм экспоненциальной выдержки, предварительно дождавшись, пока будет завершен хотя бы один выполняемый запрос.
500 internalServerError Непредвиденная ошибка сервера. Не выполняйте этот запрос повторно.
503 backendError Ошибка сервера. Не выполняйте этот запрос повторно.

Обработка ответов на ошибки 500 и 503

Ошибки 500 и 503 могут возникнуть при высокой нагрузке или сложных запросах. Если вы используете длинный запрос, сократите период, за который требуется получить данные. Кроме того, вы можете применить алгоритм экспоненциальной выдержки. Частота возникновения ошибок зависит от представления (профиля) и объема связанных с ним данных. Поэтому в одном представлении (профиле) запрос может заканчиваться ошибкой 500 или 503 , а в другом выполняться корректно.

Реализация алгоритма экспоненциальной выдержки

В рамках алгоритма экспоненциальной выдержки клиент постепенно увеличивает интервалы между попытками выполнить ошибочный запрос. Это стандартная стратегия обработки ошибок в сетевых приложения является обязательной для клиентов Core Reporting API. Кроме того, она позволяет более эффективно использовать пропускную способность, сократить количество запросов, необходимое для получения успешного ответа, а также увеличить количество параллельно выполняемых в среде запросов.

Простейший алгоритм экспоненциальной выдержки реализуется следующим образом.

  1. Выполняется запрос к API.
  2. Возвращается ответ с кодом ошибки и информацией для повторного выполнения.
  3. Реализуется задержка величиной 1 + random_number_milliseconds с.
  4. Запрос повторяется.
  5. Возвращается ответ с кодом ошибки и информацией для повторного выполнения.
  6. Реализуется задержка величиной 2 + random_number_milliseconds с.
  7. Запрос повторяется.
  8. Возвращается ответ с кодом ошибки и информацией для повторного выполнения.
  9. Реализуется задержка величиной 4 + random_number_milliseconds с.
  10. Запрос повторяется.
  11. Возвращается ответ с кодом ошибки и информацией для повторного выполнения.
  12. Реализуется задержка величиной 8 + random_number_milliseconds с.
  13. Запрос повторяется.
  14. Возвращается ответ с кодом ошибки и информацией для повторного выполнения.
  15. Реализуется задержка величиной 16 + random_number_milliseconds с.
  16. Запрос повторяется.
  17. Если запрос по-прежнему не удается выполнить, повторные попытки прекращаются, и регистрируется ошибка.

Атрибут random_number_milliseconds определяет случайную задержку величиной не более 1000 мс и позволяет предотвратить ошибки блокировки в некоторых параллельных реализациях. Значение атрибута random_number_milliseconds переопределяется после каждого периода ожидания.

Примечание. Величина задержки всегда определяется по формуле (2^n) + random_number_milliseconds , где n – это целое число, которое изначально равно 0 и монотонно увеличивается на 1 после каждой итерации, то есть после каждого запроса.

По умолчанию выполнение алгоритма прекращается при n=5, которое соответствует общей задержке около 32 с. Это ограничение позволяет предотвратить бесконечные попытки выполнить запрос и свидетельствует о наличии неустранимой ошибки.

Ниже приведен пример реализации этого алгоритма на языке Python для обработки ошибок в методе makeRequest .

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

XXXIX. Функции Hyperwave API

Hyperwave был разработан IICM в Graz. Он начинался как Hyper-G и сменил название на Hyperwave при коммерциализации (насколько помню, это было в 1996).

Hyperwave это не бесплатная программа. Текущая версия, 5.5, доступна на www.hyperwave.com. Можно запросить оценочную версию с ограниченным временем использования (30 дней).

Hyperwave это информационная система, аналогичная database (HIS, Hyperwave Information Server). Она сфокусирована на хранении и обслуживании документов. Документом может быть любой блок данных, которые могут сохраняться в файле. Каждый документ сопровождается записью объекта. Запись объекта/object record содержит метаданные документа. Метаданные это список атрибутов, который может быть расширен пользователем. Некоторые атрибуты всегда устанавливаются Hyperwave-сервером, другие могут модифицироваться пользователем.

С 2001 г. доступен Hyperwave SDK. Он поддерживает Java, JavaScript и C++. Данное расширение PHP базируется на интерфейсе C++. Чтобы активировать поддержку hwapi в PHP, вы должны сначала установить Hyperwave SDK и сконфигурировать PHP с опцией —with-hwapi= .

API, предоставляемый расширением HW_API, является полностью объектно-ориентированным. Он очень похож на интерфейс C++ Hyperwave SDK. Он состоит из следующих классов.



Некоторые базовые классы вроде HW_API_String , HW_API_String_Array , etc., которые имеются в Hyperwave SDK, не реализованы, поскольку PHP имеет для них полноценную замену.

Каждый класс имеет метод, имя которого идентично имени его двойника из Hyperwave SDK. Передача аргументов такой функции отличается от всех других расширений PHP и напоминает C++ API пакета HW SDK. Вместо передачи различных параметров, они все помещаются в ассоциативный массив и передаются как один параметр. Имена ключей идентичны именам, задокументированным в HW SDK. Общие параметры перечислены ниже. Если необходимы другие параметры, они будут документированы, если это необходимо.


objectIdentifier — имя или id объекта, например, «rootcollection», «0x873A8768 0x00000002».

parentIdentifier — имя или id объекта, который считается родительским.

object — экземпляр класса HW_API_Object.

parameters — экземпляр класса HW_API_Object.

version — версия объекта.

mode — целочисленное значение — способ выполнения операции.

attributeSelector — массив строк, каждая из которых содержит имя атрибута. Это используется, если вы запрашиваете запись объекта и хотите включить некоторые атрибуты.

objectQuery — запрос на выбор определённого объекта из списка объектов. Используется для уменьшения количества объектов, выдаваемых функциями вроде hw_api->children() или hw_api->find() .

Интеграция с Apache и, возможно, другими серверами уже описана в модуле Hyperwave Modul, который был первым расширением для соединения с Hyperwave Server.

REST API error code 500 handling

We are building a new REST API.

I was arguing that error code 500 (Internal Server Error) should never be returned.

Now, of course if you know the client’s params are wrong or something you have everything under control and can return some appropriate error code (e.g. 422).

So if an unexpected error occurs the server could:

  1. NOT catch unexpected errors so that 500 bubbles up to the client
  2. Catch any unexpected errors and return some error code signaling an «unexpected situation» (honestly I couldn’t find any such error code!)

Are there other options?

5 Answers 5

It is a server error, not a client error. If server errors weren’t to be returned to the client, there wouldn’t have been created an entire status code class for them (i.e. 5xx).

You can’t hide the fact that you either made a programming error or some service you rely on is unavailable, and that certainly isn’t the client’s fault. Returning any other range of code in those cases than the 5xx series would make no sense.

The 5xx (Server Error) class of status code indicates that the server is aware that it has erred or is incapable of performing the requested method.

This is exactly the case. There’s nothing «internal» about the code «500 Internal Server Error» in the sense that it shouldn’t be exposed to the client.

The real question is why does it generate a 500 error. If it is related to any input parameters, then I would argue that it should be handled internally and returned as a 400 series error. Generally a 400, 404 or 406 would be appropriate to reflect bad input since the general convention is that a RESTful resource is uniquely identified by the URL and a URL that cannot generate a valid response is a bad request (400) or similar.

If the error is caused by anything other than the inputs explicitly or implicitly supplied by the request, then I would say a 500 error is likely appropriate. So a failed database connection or other unpredictable error is accurately represented by a 500 series error.

You suggested «Catching any unexpected errors and return some error code signaling «unexpected situation» » but couldn’t find an appropriate error code.

Guess what: That’s what 5xx is there for.

Generally speaking, 5xx response codes indicate non-programmatic failures, such as a database connection failure, or some other system/library dependency failure. In many cases, it is expected that the client can re-submit the same request in the future and expect it to be successful.

Yes, some web-frameworks will respond with 5xx codes, but those are typically the result of defects in the code and the framework is too abstract to know what happened, so it defaults to this type of response; that example, however, doesn’t mean that we should be in the habit of returning 5xx codes as the result of programmatic behavior that is unrelated to out of process systems. There are many, well defined response codes that are more suitable than the 5xx codes. Being unable to parse/validate a given input is not a 5xx response because the code can accommodate a more suitable response that won’t leave the client thinking that they can resubmit the same request, when in fact, they can not.

To be clear, if the error encountered by the server was due to CLIENT input, then this is clearly a CLIENT error and should be handled with a 4xx response code. The expectation is that the client will correct the error in their request and resubmit.

It is completely acceptable, however, to catch any out of process errors and interpret them as a 5xx response, but be aware that you should also include further information in the response to indicate exactly what failed; and even better if you can include SLA times to address.

I don’t think it’s a good practice to interpret, «an unexpected error» as a 5xx error because bugs happen.

It is a common alert monitor to begin alerting on 5xx types of errors because these typically indicate failed systems, rather than failed code. So, code accordingly!

API Error Codes

When you run a query against the eNom API, the response includes a numeric code and a corresponding text message. This allows us to standardize our responses and make them more specific; it also allows our international resellers to translate API responses to their local language.

Please note that the numeric codes are the stable standard on which you should build. The catalog of numeric codes will grow, but any individual code will remain stable once it is created. You are free to create your own text messages—in fact, we encourage you to do so—using the tables below as a guideline.

The numerical response codes are six-digit numbers that indicate the system, type of error, and parameter that are the subjects of this response.

  • The first digit in each six-digit error code indicates the system that is generating the message. For example, error codes that begin with 4 indicate authentication errors. This first digit is referred to as the system bit.
  • The second and third digits in an error code indicate the nature of the error. For example, x04xxx indicates inval >System bit

The first digit in each six-digit error code indicates the system that is generating the message. This first digit is referred to as the system bit.

Error bit Definition
x00xxx Does not apply
x01xxx Missing
x02xxx Duplicate
x03xxx Out of range
x04xxx Invalid
x05xxx Type mismatch
x06xxx Policy violation
x07xxx Connection failed
x08xxx Failed to retrieve
x09xxx Failed to add
x10xxx Failed to update
x11xxx Failed to delete
x12xxx Disabled
x13xxx Unauthorized
x14xxx Declined
x15xxx Not available
x16xxx Not found
x17xxx Expired
x18xxx Down for maintenance
x19xxx Failed to deduct
x20xxx Failed to send
x99xxx Unknown

The last three digits in an error code indicate the parameter that is failing. These digits are referred to as the

Илон Маск рекомендует:  Что такое код scalewindowext
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL