Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung /IBM /Hitachi /HGST /Western Digital)
- led178
- Advanced Member
- Сообщения: 2420
- Зарегистрирован: 26.09.2018,10:59
- Откуда: Россия
- Поблагодарили: 3 раза
-
Вклад в сообщество
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
В общем MHDD при задаче ремапа ST351A/X действительно только ставит пометку (флаг).
Этот флаг видят и HDDSCAN (uncorrectable ecc or crc до и bad sector flag detected после) и checkit (marked when formatted).
Но при этом все, включая format (trying to recover allocation unit) и scandisk в эти сектора лезут с кучей попыток.
Причём у format даже опция есть "/C Test clusters that are currently marked "bad."
Но она походу работает только если кластер помечен как плохой в FAT.
Вопрос - нахрена? Какие программы действительно учитывали этот флаг?
Этот флаг видят и HDDSCAN (uncorrectable ecc or crc до и bad sector flag detected после) и checkit (marked when formatted).
Но при этом все, включая format (trying to recover allocation unit) и scandisk в эти сектора лезут с кучей попыток.
Причём у format даже опция есть "/C Test clusters that are currently marked "bad."
Но она походу работает только если кластер помечен как плохой в FAT.
Вопрос - нахрена? Какие программы действительно учитывали этот флаг?
- led178
- Advanced Member
- Сообщения: 2420
- Зарегистрирован: 26.09.2018,10:59
- Откуда: Россия
- Поблагодарили: 3 раза
-
Вклад в сообщество
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
А как винты ALPS были? Гуано али нет?
Попался DR311C901A на сотню мегабайт.
Попался DR311C901A на сотню мегабайт.
-
i8088
- Advanced Member
- Сообщения: 4864
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
- Поблагодарили: 48 раз
-
Конкурсы
Вклад в сообщество
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
Нет - это широко известное заблуждение:)led178 писал(а): 06.09.2023,15:05 Блин, обнаружил дырку в знаниях.
1. Как устроена работа с дефектами у MFM?
При форматировании или вручную сектор помечается как дефектный, далее format при проверке считывает эту метку и помечает в fat, верно?
Но при этом пытается перепроверить все помеченные сектора и снести метку? Или нет?
У MFM и ранних ATA дисков обычно есть варианты.
Вот описание Format Track из раннего ATA стандарта, bad-ы видны только при коде 80h
Код: Выделить всё
9.8 Format track
The implementation of the Format Track command is vendor specific. The
actions may be a physical reformatting of a track, initializing the data field
contents to some value, or doing nothing.
The Sector Count Register contains the number of sectors per track.
The track address is specified in the Cylinder High and Cylinder Low
Registers, and the number of sectors is specified in the Sector Count
Register. When the command is accepted, the drive sets the DRQ bit and waits
for the host to fill the sector buffer. When the sector buffer is full, the
drive clears DRQ, sets BSY and begins command execution.
The contents of the sector buffer shall not be written to the media, and may
be either ignored or interpreted as follows:
+=============-=============-=============-==========================+
|DD15 ---- DD0| |DD15 ---- DD0| |
|-------------| |-------------+--------------------------|
| First sector| | Last sector | Remainder of buffer |
| descriptor | : : : : : : | descriptor | filled with zeros |
+====================================================================+
One 16-bit word represents each sector, the words being contiguous from the
start of a sector. Any words remaining in the buffer after the representation
of the last sector are filled with zeros. DD15-8 contain the sector number.
If an interleave is specified, the words appear in the same sequence as they
appear on the track. DD7-0 contain a descriptor value defined as follows:
00h - Format sector as good;
20h - Unassign the alternate location for this sector;
40h - Assign this sector to an alternate location;
80h - Format sector as bad.
NOTES
9 - Some users of the ATA drive expect the operating system partition table to
be erased on a Format command. It is recommended that a drive which does not
perform a physical format of the track, write a data pattern of all zeros to the
sectors which have been specified by the Format Track command.
10 - It is recommended that implementors resassign data blocks which show
repeated errors.
посмотреть pdf по древним WD, cойдет и 8-битный, на 16-битные я не нашел.
Я писал собственную утилиту форматирования mfmformat для FreeBSD в ~2016 с
обычным 16-bit WD контроллером, все работало и дефекты успешно скрывались - я
сам удивился:) Но это делается только при форматировании, ни о каком remap-е
на ходу речь не идет. Довольно увлекательны были и эксперименты с interleaving
factor, там тоже не все так просто.
PS. Там вообще есть загадки, сейчас уже детали подзабылись. Но помню, что пока резерва хватало, фактически смещалась физическая адресация и диск отдавал
полную емкость. Но опять-таки, все может зависеть от конкретного контроллера,
тк диск сам по себе ничего не делает. Я экспериментировал с типовым 16-bit WD.
- led178
- Advanced Member
- Сообщения: 2420
- Зарегистрирован: 26.09.2018,10:59
- Откуда: Россия
- Поблагодарили: 3 раза
-
Вклад в сообщество
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
i8088, я совсем запутался.
Т.е. есть два варианта форматирования -
через прерывание INT 13h, 05h и 06h (Format Track и Format Track Set Bad Sector Flags),
и через PIO 50h?
Я правда не программист и не фига не понимаю
Т.е. есть два варианта форматирования -
через прерывание INT 13h, 05h и 06h (Format Track и Format Track Set Bad Sector Flags),
и через PIO 50h?
Я правда не программист и не фига не понимаю
-
Dinozavr
- Advanced Member
- Сообщения: 633
- Зарегистрирован: 29.12.2018,04:53
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
~"Программы можешь не писать,
Но в общем понимать обязан."
-
i8088
- Advanced Member
- Сообщения: 4864
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
- Поблагодарили: 48 раз
-
Конкурсы
Вклад в сообщество
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
led178, int13h - это интерфейс BIOS, для работы с HDD/FDD. Грубо говоря,
программы-оболочки, изолирующие программиста от тонкостей физической
реализации устройств.
Команда же ATA_FORMAT_TRACK (0x50) - это команда непосредственно ATA устройства,
доставшаяся по наследству от MFM.
программы-оболочки, изолирующие программиста от тонкостей физической
реализации устройств.
Команда же ATA_FORMAT_TRACK (0x50) - это команда непосредственно ATA устройства,
доставшаяся по наследству от MFM.
- led178
- Advanced Member
- Сообщения: 2420
- Зарегистрирован: 26.09.2018,10:59
- Откуда: Россия
- Поблагодарили: 3 раза
-
Вклад в сообщество
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
i8088, т.е. int 13h, 06h (Format Track Set Bad Sector Flags) работает через ATA_FORMAT_TRACK 50h, 80h (Format sector as bad)?
А в теории может работать и через 50h, 40h (Assign this sector to an alternate location)? Может есть DOS программы кто точно может работать с MFM через 50h, 40h?
А в теории может работать и через 50h, 40h (Assign this sector to an alternate location)? Может есть DOS программы кто точно может работать с MFM через 50h, 40h?
-
i8088
- Advanced Member
- Сообщения: 4864
- Зарегистрирован: 30.01.2015,17:06
- Откуда: г. Баку, Азербайджан
- Поблагодарили: 48 раз
-
Конкурсы
Вклад в сообщество
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
Можно конечно, но нюансы работы разных реализаций int13h-format_track (и DOS утилит дляled178 писал(а): 09.09.2023,09:43 i8088, т.е. int 13h, 06h (Format Track Set Bad Sector Flags) работает через ATA_FORMAT_TRACK 50h, 80h (Format sector as bad)?
А в теории может работать и через 50h, 40h (Assign this sector to an alternate location)? Может есть DOS программы кто точно может работать с MFM через 50h, 40h?
форматирования) я не сравнивал. Но при форматировании MFM диска через BIOS, как правило дается
возможность маркировать как BAD только весь track целиком. Причем никаких bad-ов после этого
пользователю не видно. В принципе, int13h с обычной функцией 05h использует ту же структуру для
форматирования трека, так что особых проблем с реализацией я не вижу.
- led178
- Advanced Member
- Сообщения: 2420
- Зарегистрирован: 26.09.2018,10:59
- Откуда: Россия
- Поблагодарили: 3 раза
-
Вклад в сообщество
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
Я знаю что MFM диск "привязан" к своему контроллеру и по сути это магнитофон. Получается что есть контроллеры, которые не умеют пропускать плохие сектора/треки, они помечают их флагом (иногда совсем своим) и потом при чтении отдают BBK (0Ah).
Но при этом есть контроллеры, которые умеют гораздо больше. А не встречал ли ты списка этих интересных контроллеров, и не знаешь ли ты как их отличить на вид?
PS: Вот я думаю - получается что на дорожке еще остаётся место, и можно отформатировать не 17, а 18 секторов?
PPS: Ааа, скрывается (переносится) весь трек. Тогда я вообще не понимаю как это без транслятора работает.
PPPS: А может ты знаешь какие-нибудь справочники годов 85..90. Мой возбуждённый мозг хочет учиться :E
Но при этом есть контроллеры, которые умеют гораздо больше. А не встречал ли ты списка этих интересных контроллеров, и не знаешь ли ты как их отличить на вид?
У меня ISA16 Everex EV-332, огромный такой. Дефекты просто отмечаются флагом и выдают BBK.i8088 писал(а): 09.09.2023,09:53 Но при форматировании MFM диска через BIOS, как правило дается возможность маркировать как BAD только весь track целиком. Причем никаких bad-ов после этого пользователю не видно.
PS: Вот я думаю - получается что на дорожке еще остаётся место, и можно отформатировать не 17, а 18 секторов?
PPS: Ааа, скрывается (переносится) весь трек. Тогда я вообще не понимаю как это без транслятора работает.
PPPS: А может ты знаешь какие-нибудь справочники годов 85..90. Мой возбуждённый мозг хочет учиться :E
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
Офтопик
а сейчас квантум делает бошки для стримаков hp (и скорее всего стримаки hp полностью его рук дело), и они дохнут!