Отличить софт-бэд от аппаратного я знаю только один

Отличить софт-бэд от аппаратного я знаю только один способ: если при записи в проблемный сектор произошло переназначение из резервной области (тогда у винта на 1 увеличится RAW-поле аттрибута Reallocated sectors count при просмотре S.M.A.R.T.), то бэд был аппаратный, в противном случае программный.

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

Посыпался ST312002