Jump to content
wowa

Звуки Которые Выдаёт Умирающие Хард-Диски

Recommended Posts

marinovsoft

Какой вы агрессивный человек... Шлак не шлак, приведите примеры её отказа или недостатка, а просто обзываться не хорошо :o Привёл краткий пример восстановления. Не уж то что-то не так? и ничего я ниоткуда не списывал, всё "как есть" и скрины мои! Вместо того чтобы обзывать прогу и меня ПРщиком, коли вы такой посвящённый сказали бы просто, что лучше :huh:

я в шоке, терпения вам молодой человек.

В этой проге есть ведь свои + :

Простое меню всего 4 пункта. да и результаты не плохие!

И вы правда думаете непросвящённый человек будет читать ту ссылку что вы дали ? :rolleyes: голова распухнет. не так поправьте.

Edited by GIN

Share this post


Link to post
Share on other sites

Переходим на личности? А-й,яй,яй. Учите матчасть и исследуйте программы. А для начала прочтите статью.

вы просите сказать что лучше - пожалуйста - ссылочки у меня в подписи

Я не использую инструменты, о неэффективности которых я знаю заведомо.

кусок кода

чтение секторов

ReadSector	proc far		; CODE XREF: ScanDrive+1DAp
				; ScanDrive+2E0p ...

var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= word ptr -8
var_5		= byte ptr -5
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  6
_Drive_Number	= byte ptr  0Ah
arg_6		= word ptr  0Ch

	enter	18h, 0
	push	si
	mov	[bp+var_18], 10h
	mov	[bp+var_16], 1
	mov	ax, [bp+arg_6]
	mov	[bp+var_14], ax
	mov	ax, ds
	mov	[bp+var_2], ax
	mov	ax, [bp+var_2]
	mov	[bp+var_12], ax
	mov	eax, [bp+arg_0]
	mov	[bp+var_10], eax
	mov	[bp+var_C], 0
	lea	ax, [bp+var_18]
	mov	[bp+var_4], ax
	mov	ax, [bp+var_4]
	mov	[bp+var_8], ax
	mov	dl, [bp+_Drive_Number]
	mov	dh, 0
	mov	ch, 0
	mov	cl, 0
	mov	al, 0
	mov	ah, 42h	; 'B'
	mov	si, [bp+var_8]
	int	13h		; Int 13h (BIOS	disk - Extended	Read )
				; ah=42h
				; DL=drive_number
				; ds:si=disk_address_packet
	mov	[bp+var_5], ah	; if error AH<>0
				;
	mov	al, [bp+var_5]
	jmp	short $+2
	pop	si
	leave
	retf
ReadSector	endp

Запись секторов

WriteSector	proc far		; CODE XREF: ScanDrive+2F7p
				; ScanDrive+31Cp ...

var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= word ptr -8
var_5		= byte ptr -5
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  6
arg_4		= byte ptr  0Ah
arg_6		= word ptr  0Ch

	enter	18h, 0
	push	si
	mov	[bp+var_18], 10h
	mov	[bp+var_16], 1
	mov	ax, [bp+arg_6]
	mov	[bp+var_14], ax
	mov	ax, ds
	mov	[bp+var_2], ax
	mov	ax, [bp+var_2]
	mov	[bp+var_12], ax
	mov	eax, [bp+arg_0]
	mov	[bp+var_10], eax
	mov	[bp+var_C], 0
	lea	ax, [bp+var_18]
	mov	[bp+var_4], ax
	mov	ax, [bp+var_4]
	mov	[bp+var_8], ax
	mov	dl, [bp+arg_4]
	mov	dh, 0
	mov	ch, 0
	mov	cl, 0
	mov	al, 0
	mov	ah, 43h	; 'C'
	mov	si, [bp+var_8]
	int	13h		; DISK -
	mov	[bp+var_5], ah
	mov	al, [bp+var_5]
	jmp	short $+2
	pop	si
	leave
	retf
WriteSector	endp

Можете начинать писать свой аналог этого шлака

Share this post


Link to post
Share on other sites

Конденсаторы Panasonic. Часть 4. Полимеры – номенклатура

В заключительной, четвертой статье из цикла «Конденсаторы Panasonic» рассматриваются основные достоинства и особенности использования конденсаторов этого японского производителя на основе полимерной технологии. Главной конструктивной особенностью таких конденсаторов является полимерный материал, используемый в качестве проводящего слоя. Полимер обеспечивает конденсаторам высокую электрическую проводимость и пониженное эквивалентное сопротивление (ESR). Номинальная емкость и ESR отличается в данном случае высокой стабильностью во всем рабочем диапазоне температур. А повышенная емкость при низком ESR идеальна для решения задач шумоподавления и ограничения токовых паразитных импульсов в широком частотном диапазоне.

Читать статью

И вы правда думаете непросвящённый человек будет читать ту ссылку что вы дали ? голова распухнет. не так поправьте.

так вот и не надо непосвященным впаривать шлак

Если и вам ничего не понятно - так и скажите.

Что сделает эта прога, если винт детектится с LBA=0?

Хотите дельный совет - вбейте в гугле ATAPI-8 и почитайте стандарт. Токмо там на инъязе, если шпрехаете может и поймете.

Share this post


Link to post
Share on other sites

цитата из ссылки (Кроме того, физическое наличие диска не проверяется и во время работы программы.

Если HDD "завис", остановился или находится в Sleep-режиме, перестав реагировать

на команды, то программа, не "заметит" этого и будет "лечить" HDD, даже физически

отсоединенный от компьютера (по методу Кашпировского - на расстоянии).)

Верю в то что написано но в версиях 51 и 71 это не сошлось, когда винт вставал программа отключалась :unsure: Может её дорабатывают?

Ваша статейка то 17-12-2006 (D-M-Y) ©NazYura Может что и поменялось, а может и нет. но цитату в блоге поправлю :P

Edited by GIN

Share this post


Link to post
Share on other sites
                     

STM32G0 - средства противодействия угрозам безопасности

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

Подробнее...

Я все рассматриваю в контексте версии 1.51

Там в коде такие проверки

	call	near ptr ReadSector
	add	sp, 8
	or	al, al		; Была ошибка?
	jz	loc_1847D

больше никаких проверок нет. ReadSector вызывается несколько раз, проверка каждый раз примерно такая же.

После WriteSector вообще нет проверок.

Автор статьи - Назаренко Юрий, известный среди ремонтников HDD человек.

С IDA Pro дружите, ассемблер x86 понимаете?

Share this post


Link to post
Share on other sites

marinovsoft

Ставил версию 71, опасения не подтвердились. после прекращения подачи питания программа встала :huh: Может автор программы тоже читал эту критику ^_^ ИМХО исправился :blush:

Share this post


Link to post
Share on other sites

Сейчас загляну в 1.71, что там еще этот фокусник придумал.

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

Ушел в IDA

Share this post


Link to post
Share on other sites

marinovsoft

Ну если и правда что программа хуже некуда? :( если уж действительно такая ужааасная то лучше и правда удалить с блога, просто у меня ещё не разу 71 не косячила.. а 51 было..- висла

Edited by GIN

Share this post


Link to post
Share on other sites

Можно файлики с загрузочной флешки версии 1.71 куда-нибудь выложить? Просто ни болванок ни флешек под рукой нет, и распаковать не получается :(

Share this post


Link to post
Share on other sites

marinovsoft

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

Share this post


Link to post
Share on other sites

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

т.е. я не уверен, всегда ли ah равен нулю в случае успешного выполнения.

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

так или иначе, я очень консервативен в части применения подобных программ на своем винте, и даже предпочту купить новый, нежели "лечить" чем попало.

Share this post


Link to post
Share on other sites

К сожалению исходника у меня нет, приходится довольствоваться экзешником. Эти подпрограммы 100% были написаны на встроенном в Borland C++ 5 ассемблере, иначе для вызова 13h прерывания использовалась бы библиотечная функция int86, а тут как видно все вручную. При работе с HDD на сервисы BIOS рассчитывать не стоит, тем более в системных программах. Все достойные программы работают через порты напрямую.

По поводу флажков и регистров должно быть так

IBM/MS INT 13 Extensions - EXTENDED READ

AH = 42h

DL = drive number

DS:SI -> disk address packet (see #00272)

Return:

CF clear if successful

AH = 00h

CF set on error

AH = error code (see #00234)

disk address packet's block count field set to number of blocks

successfully transferred

IBM/MS INT 13 Extensions - EXTENDED WRITE

AH = 43h

AL = write flags

---v1.0,2.0---

bit 0:

Verify write

bits 7-1 reserved (0)

---v2.1+ ---

00h,01h write without verify

02h write with verify.

DL = drive number.

DS:SI -> disk address packet (see #00272)

Return:

CF clear if successful

AH = 00h

CF set on error

AH = error code (see #00234)

disk address packet's block count field set to number of blocks

successfully transferred

Чтобы написать прогу для работы с HDD, надо взять hddspeed который написал Михаил Радченко в 97 году и которая распространяется в исходных кодах на паскале, допилить туда ATAPI-8 и выложить на всеобщее обозрение опять же в исходных кодах. А еще лучше не выкладывать, а спрятать. Просто в процессе ее допиливания вы много опыта поимеете, ну и гемороя тоже, что сказать.

Share this post


Link to post
Share on other sites

mil_alex

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

Share this post


Link to post
Share on other sites

смеюсь как обкуренная первоклассница.

прога тупо не проверяет CF на выходе int 13h - откуда она вообще узнАет про ошибки чтения?

хорошо, если ah всегда индицирует состояние ошибки.

а если нет? я привык доверять Ральфу Брауну больше, чем Пете Водокачкину...

Share this post


Link to post
Share on other sites

Я сейчас уже забыл, у меня нет старого дизассемблированного проекта, там я больше, чем сейчас накопал. Но что-то мне подсказывает, что он пишет в дефектный сектор тот же мусор, что из него прочитал, хотя по стандарту сказано, что в случае ошибки там может лежать что угодно, но только не данные. Конкретно не могу сослаться, т.к. нужно дизассемблировать код BIOS и смотреть какая именно команда на чтение сектора там используется.

Share this post


Link to post
Share on other sites

mil_alex

Смех подливает жизнь :D но факт на лицо, до проги битые сектора определялись всеми прогами после чего система либо висла, либо страшно тормозила. После проги все симптомы прошли, файлы и контрольные суммы остались неизменны. я не делаю рекламу. говорю как было. Смысл мне врать ? :huh:

Share this post


Link to post
Share on other sites

*пожал плечами*

была бы опенсорсной, можно было бы поковыряться, да и то не факт, что с удовольствием.

Share this post


Link to post
Share on other sites

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

Да согласен с marinovsoft есть "огрехи". но какого она работает :unsure: откидывал питание прога тормозилась, конечно жаль что нет всяких системок типа ERROR, но там вообще ничё нет) only scan and regenerate, and if we'll find better program, i'll throw this util thru the window... but i have no complaints to it now :ph34r:

Share this post


Link to post
Share on other sites

чтобы пожаловаться на прогу, убившую винт, нужен как минимум второй винт ;)

Share this post


Link to post
Share on other sites

mil_alex

Было восстановлено порядка 10 винтов разных фирм и форм фактора.

Share this post


Link to post
Share on other sites

Два одинаковых винта

WD 3200aaks

При подкючении к сата разъему на мат плате, в качестве второстипенного винта, видны в биосе, но когда доходит дело до загрузки ОС (грузится с исправного IDE винта), то система подвисает в процессе загрузки

При подключении "на горячую" так же подвешивают систему.

Попробовал подключить к PCI сата контроллеру, который идет отдельно планкой.

Первый винт не подвесил систему при загрузке ос и вообще работает как исправный.

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

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

Можно ли исправить?

Share this post


Link to post
Share on other sites

Penicillin

Проверь любой прогой на состояние поверхности и на наличие ошибок. Если есть возможность скачай у друга Hiren's Boot CD и запускай с диска или флешки на своём из под Биоса в наборе идут порядка 10-15 прог для ХДД такие как Виктория, Hdd Erase, WD utility GwScan и прочее добро) запусти для начала GwScan особо он ничего не исправляет просто проверяет на ошибки. ну вопщем в этой сборке всё понятно)

Edited by GIN

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Alexandr Florenko
      Всем привет.
      Имеется старый hdd от ноутбука.
      Хочу через его же родную плату запустить двигатель.
      Источник питания есть, как его правильно подключить ?
      Смотрел SATA распайку( см вложения).
      Учитывая тот факт, что он потребляет 5v, я так понимаю мне нужно подключить + на один из (7, 8, 9) номеров контакта, и мину на один из (4, 5, 6, 10, 11, 12) номера контактов?
      Или на все контакты распаять?

      Если что, поправьте.
      Спасибо!

      З.Ы. запитать хочу сразу на на плате
       

    • By neo4511
      Здравствуйте! Мой acer 5560g когда вместо CD-ROM ставишь HDD не стартует зараза. Вытаскиваешь во время включения потом на горячую включаешь система его видит, если так не делать то зависает. Всё также как в этой статье https://geektimes.ru/post/258454/ Как я понял что рабочего способа чтобы была "нормальная перезагрузка ноутбука" нет? Хочу узнать:
      1. Как осуществить способ с "нормальной перезагрузкой"
      2. Возможно есть ещё более простое решение (к примеру на готовых китайских модулях) можно и без поддержки нормальной перезагрузки.
      P.S Тема актуальная и проблема встречается не только на этой версии ноута. Но универсального решения нету.  Можно редактировать whitelist bios но это может привести к окерпичиванию ноута. 
    • By olezka18
      Здравствуйте!
      Заинтересовала данная тема скорее теоретически, потом уже практически, в нете что нашел или на микросхеме с родной платы, интересует совсем без микросхем наподобии мультивибратора, ссылки по нету что нашел были уже негодными, глянуть схемку не получилось, сразу скажу, моторчик с 4 выводами. Микросхемы, даже простые не предлагать :)))
    • By Пентагрид
      Реанимировал материнскую плату D815EPEA2 (Пентиум 3, 128 МБ ОЗУ). БИОС сбросил. Вставил свежую батарейку. Подключил родной жёсткий диск MAXTOR 20 ГБ (малый процент износа, в период неисправности матплаты лежал в коробке в качестве резервного с установленной WinXP).
      При включении вилки в сеть матплата сразу запускается. Вал диска разгоняется произвольно без реакции на команды, нет щелчков и прочих признаков работы головок. Нажимаю сброс. Заставка, затем пишет "NTLDR missing". На дискету с обновлением БИОСа реагирует, читает (БИОС так и не поменял, родной в порядке). На плате два разъёма АТА, подключал к обоим, менял шлейфы - безрезультатно. Подключил к работающему ПК - диск в норме.
      В БИОСе виден. Переключил Primary на CD-ROM, чтобы переустановить ОС. Читает, но адекватной реакции нет, выводит ту же ошибку "NTLDR missing" либо просто курсор мигает в углу. Всё это время жёсткий диск безостановочно вращается.
      Прошу мнения и совета мастеров и опытных пользователей: в чём может заключаться причина подобной неполадки?
    • By Zahar
      Доброго времени суток.
      Мне понадобилось запустить трёх фазный мотор от жёсткого диска.
      Посмотрите на схему.

      Как думаете, так работать будет?
      Да и ещё, на графике я нарисовал последовательность импульсов
      1)A ON
      2)DELAY
      3)A OFF
      4)DELAY
      5)B ON
      6)DELAY
      7)B OFF
      8)DELAY
      9)C ON
      10)DELAY
      11)C OFF
      12)DELAY
      То есть  между выключением одного канала и включением другого есть пауза, это правильно?
  • Сообщения

    • Вы путаете 2 разных проявления. В этом сообщении у Вас при увеличении сигнала сначала сильно портилась синусоида и дико росли искажения, а с дальнейшим ростом сигнала искажения уменьшались, несмотря на явное ограничение. Так вот, в первом случае это ОЧЕНЬ похоже на возбуждение, которое пропадает при наступлении ограничения. Естественно, так как ограничение наступает при большем сигнале. Вот около анода и надо паять. У Вас какая лампа выходная? Не Г-807 случайно?
    • Я пользуюсь,мне нравится,всё устраивает.он ищет совсем по другому чем гугель
    • @Серж Вамп Конечно же сам буду делать. Да и запчасти к такой схеме уже почти все есть и схемка вполне понятная для меня нужно только чутка её подкорректировать. Ну и в этом собственно нужна будет помощь. А покупать готовое, да тем более через инет это уж никогда не будет. Это совершенно не моё да и никогда не пользовался и не знаю что и как там делается. Всё покупаю в наших городских магазинах.  
    • Отличные аккумуляторы, ёмкость соответствует заявленной. Уже применил несколько акб в деле. Подробности на фото. Родной акб сдох на ультрабуке(держал несколько минут), а новый аккумулятор редкий от этой модели и стоит не менее 5т на Али(Ебее). Вместо 4х 14 Ваттных банок поставил 4 10Ваттные банки. Держит не менее 4х часов. Такая переделка актуальна для батарей, которые не успели в блок уйти, после чего нужно перекалибровать батарею "колхозным" методом без применения спец оборудования и платных программ PS. С аккумуляторов родные платы защиты пришлось убрать.
    • Почему же не пойдёт, пойдёт, если работает, но платить что бы ещё это моветон, уверяю, развлечение сомнительное. И потом, С1-112 - 10МГц, С1-112А - 20МГц, есть решение для модинга на вплоть до 100МГц. Это если есть донор. Из-за микросборок.
    • С точностью до наоборот. Патент защищает именно ТЕХНИЧЕСКОЕ РЕШЕНИЕ, т.е. реализацию идеи. Триггер может быть на лампах, транзисторах (биполярных или полевых), логических элементах, ОУ и т.п. И всё это будут разные реализации одной и той же идеи, поскольку применяются различные компоненты. Это как пример. Можете не верить дипломированному патентоведу - Ваше право. Но автору 45 изобретений можете поверить? Это я еще ничего не подавал после 1990 года - изменилось законодательство и принципиальные подходы к защите изобретений. Вот я и повторюсь, что хреновый у вас там патентовед, если не смог Вам даже это втолковать.
    • С1-65А   - легенда отечественного осциллографостроения - наилучший выбор из аналоговых  СССР или С1-93 - большой экран, 2 канала. Но хромаает надежность малость.  Ну и как упомянул  KLARUS  - С1-94 - как минимальный вариант.  Ну а с оглядкой на то, что 2019 год уже завершается - в сторону  "цифровика" стоит смотреть. Полный с экраном или USB приставку к компу. 
  • Покупай!

×
×
  • Create New...