Перейти к содержанию

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


Рекомендуемые сообщения

marinovsoft

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

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

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

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

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

Изменено пользователем GIN
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

кусок кода

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

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

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

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

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

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

Изменено пользователем GIN
Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Запустите скан, выдерните питание винта. О результатах расскажете.

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

marinovsoft

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ушел в IDA

Ссылка на комментарий
Поделиться на другие сайты

marinovsoft

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

Изменено пользователем GIN
Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

marinovsoft

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

К сожалению исходника у меня нет, приходится довольствоваться экзешником. Эти подпрограммы 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 и выложить на всеобщее обозрение опять же в исходных кодах. А еще лучше не выкладывать, а спрятать. Просто в процессе ее допиливания вы много опыта поимеете, ну и гемороя тоже, что сказать.

Ссылка на комментарий
Поделиться на другие сайты

mil_alex

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

mil_alex

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

Ссылка на комментарий
Поделиться на другие сайты

Вы не подумайте ничего навязывать не хочу. просто интересно. и правда отказов жестака, после проги прошло 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:

Ссылка на комментарий
Поделиться на другие сайты

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

WD 3200aaks

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

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Penicillin

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

Изменено пользователем GIN
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • Когда снова появился интерес к усилителям, тоже хотел всех обмануть, попробовал 7294 в разных схемах, 3886 тоже несколько способов приготовления, вроде и неплохо играет, если ничего другого не слушал, годится. Но червячок сподвиг сделать Натали Хоум, УХ! челюсть отвисла, наслушаться не мог, узнал, что такое сцена в звуке, динамика, детальность, да всё лучше. Вот я всегда и спрашиваю, по сравнению с какими другими УМ играет хорошо расхваливаемый усилитель.
    • @Armenn Хорошо. Сделал резистор на 5 Ом.  Результата два. 1. Если включить блок питания в сеть, а уже потом подключить резистор на 5 Ом в фиолетовый провод, тогда резистор просто будет греться.  2. Если подключить резистор на 5 Ом в фиолетовый провод, а уже потом включить блок питания в сеть, тогда случится следующее: лампочка предохранителя от КЗ засветится (через которую я подключаю БП в сеть), а блок питания начнет пищать. Заснял это на видео -   
    • Ну-вы и сравнили. Вот когда будете строить сварочный инвертор на такую частоту-то там нужно  будет учитывать скин эффект. А на частоты до 75кгц-можно забить, отбить и не принимать во внимание. Тем более-что все стараются аппараты до 200А строить. На кольце плотность тока до 15А на мм ^2, на Ш от 10А на  мм^2 А вентилятор-он все лишние тепло сдует ко льдам в Антарктиде. Проверьте монолит 2,12мм, я таким мотаю СТ. Интересно-что там с ним делается на частотах от 30 до 50кГц? Длинна провода примерно 2 метра-На сердечник Е70 влазит 18 витков
    • Добрый вечер всем!  Проблема следующая: Есть флешка с записанной файловой системой через USB MASS STORAGE DEVICES. При "втыкании"  в порт USB открывается на ПК диск с содержимым. Я подключил библиотеку Fatfs и прописал низкоуровневые функции чтения и записи в файле diskio.c Работаю с файлом так:   disk_initialize(SDFatFs.drv); if(f_mount(&SDFatFs,(TCHAR const*)USER_Path,0)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_f_mount!\r\n"); } else { if(f_open(&MyFile,"01.WAV",FA_READ)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_open_File1!\r\n"); } else { Usart1_Send_String("open_File_OK1!\r\n"); } if(f_open(&MyFile,"01.wav",FA_READ)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_open_File2!\r\n"); } else { Usart1_Send_String("open_File_OK2!\r\n"); UINT testBytes=0; f_read(&MyFile, buff1, 512, &testBytes); sprintf(buf1, "TestBytes=%d\r\n", testBytes); Usart1_Send_String(buf1); Usart1_Send_hex((char*)buff1, 512); Usart1_Send_String("read_File_complite!\r\n"); f_close(&MyFile); } } подправил diskio.c так:   DRESULT disk_read ( BYTE pdrv, /* Physical drive nmuber to identify the drive */ BYTE *buff, /* Data buffer to store read data */ DWORD sector, /* Sector address in LBA */ UINT count /* Number of sectors to read */ ) { DRESULT res; //res = disk.drv[pdrv]->disk_read(disk.lun[pdrv], buff, sector, count); sprintf(buffer0, "sector=%lu\r\n", sector); Usart1_Send_String(buffer0); w25qReadPage(buff, sector*2); w25qReadPage(buff + 256, sector*2+256); res=RES_OK; return res; } #if _USE_WRITE == 1 DRESULT disk_write ( BYTE pdrv, /* Physical drive nmuber to identify the drive */ const BYTE *buff, /* Data to be written */ DWORD sector, /* Sector address in LBA */ UINT count /* Number of sectors to write */ ) { DRESULT res; //res = disk.drv[pdrv]->disk_write(disk.lun[pdrv], buff, sector, count); w25qWritingByUSB(sector, (uint8_t*)buff); res=RES_OK; return res; } #endif /* _USE_WRITE == 1 */ функцию чтения на самом деле пробовал прописывать по разному, все равно не корректно работает... Выдает в отладке такое:   Program start!.... sector=0 // это обращение к функции чтения DRESULT disk_read (); Error_open_File1! sector=0 // это обращение к функции чтения DRESULT disk_read (); Error_open_File2! Что я забыл еще добавить?
    • В былые годы запрещалось размещать на форуме бессмысленные темы. Видать, с тех пор правила существенно изменились.
    • скачай новый архив. там есть важные изменения в комповой программе, по сравнению с той, что я отправлял в личке. исправлены недоделки и добавлены проверки на некорректные действия.
  • Похожий контент

×
×
  • Создать...