Ru-Board.club
← Вернуться в раздел «Магнитные носители информации»

» Ремонт накопителей Seagate. Часть 4

Автор: igor_me
Дата сообщения: 28.05.2013 21:35
suz191
Если подскажете, где смотреть Head + LCYL - проверю у себя...
Автор: suz191
Дата сообщения: 28.05.2013 22:39
to igor_me

там окошко вылезит 0 оставте



Добавлено:
смотреть по

2>x1
Head 0, PhyCyls 0002B87D - 0002BA14, LogCyls 00000000 - 00000196

First Sec Sym Sym Data
Zn Cyl Track Wedge Track Rate
00 0002B87D 0386 06A4 0006FB28 580.312
01 0002B949 0386 06A4 0006FB28 580.312


например

0 это нулевой трек
цилиндр 2B87D=0нулевой трек
сектров в треке 386 (авто определение)
Автор: igor_me
Дата сообщения: 28.05.2013 23:03
Сижу - копаю Там у вас в скрипте ошибка, но пока не пойму логику. Порой проще заново написать. Например

Цитата:
param=reverse(PARAM)
DO I=1 TO length(param)
AI=x2d(substr(PARAM,I,1))

PARAM - это у вас что за переменная?
а reversе? вроде нет такого оператора. В общем - разбираюсь, параллельно смотрю другие скрипты...
Автор: SRUTSSSSSSSS80
Дата сообщения: 28.05.2013 23:10
Автор скрипта на сколько я помню tametung
Автор: suz191
Дата сообщения: 28.05.2013 23:16
to SRUTSSSSSSSS80
по моему тоже...
я как-то его просил помочь но потом решил так оставить...
не хотелось человека отвлекать...
а зок5 постоянно вылетает уже сил нет
решил тут поспрашивать
Может кто переделывал чтение треками под 6й зок

to igor_me
Там не понятно немного...
зок 5 нормально всё делает... а 6 не может и точки вряд ставит....
Автор: igor_me
Дата сообщения: 28.05.2013 23:22
Да, вот просёк только, что это его исходный скрипт. Но в писателях-то не он один, ещё Antech писал (хотя и под его руководством ) Теперь вот и я...
Джентльмены удачи: "А что? Динамо бежит? Все бегут!"

Добавлено:

Цитата:
Может кто переделывал чтение треками под 6й зок

А я сейчас чем занимаюсь?
Лично у меня в 6-м он вообще говорит, что в переменной найдено "-" вместо hex-значения. Так что - пишем-с для 6-го...
Автор: igor_me
Дата сообщения: 28.05.2013 23:49
AntiMember
Пррветствуем, давненько вас не слышно...
suz191
Я ещё долго буду писать...
Чтобы пока не было скучно, вот этим побалуйтесь
http://zalil.ru/34539347
Работает скрипт на 460800, потом въеду, где там скорость меняется, прикручу...
tomset
Да, полностью согласен.
Автор: tomset
Дата сообщения: 28.05.2013 23:52

Цитата:
Лично у меня в 6-м он вообще говорит, что в переменной найдено "-" вместо hex-значения. Так что - пишем-с для 6-го...

В шестом почти новый скрипт язык. Поменяли вроде не так много, но подход к написанию скрипта, идеологию, напроч меняет.
Проше с нуля написать новый, чем исправить под него старый скрипт.
Автор: suz191
Дата сообщения: 29.05.2013 00:02
to tomset
Тогда сяду подумаю... как за ного сделать .... вряд ли сам конечно смогу... для меня это трудно....
но смысла вроде точно нет переделывать... сколько пытался не вышло...
Там действительно всё по другому

Добавлено:
igor_me

Я поменял в сообщении скрипт этот точно у меня работает.....

Добавлено:
igor_me
держите модифицированную версию со скоростями под 6-й Zoc

http://rghost.ru/46337873
Автор: tametung
Дата сообщения: 29.05.2013 00:48
После вот этого :
CALL ZocReceiveBuf 2048
ZocSuppressOutput 0
CALL ZocSend "x1^M"
CALL ZocWait "2>"
ZocSuppressOutput 1
abst= ZocReceiveBuf(0)

вставьте строку

abst=translate(abst," ",","||"-",)



вот эту муйню уберите:

call SearchString 1,HEAD
T=K
call SearchString T, "Zn"
T=K
call SearchString T ,"00"


CYL=word(abst,K+1)
SecT=word(abst,K+2)

call ATOB SecT
SPT=reslt


call ATOB LCYL
LCYL=reslt

call ATOB CYL
dec_cyl=reslt+LCYL
CYL= d2x(dec_cyl,8)

вместо нее вставьте

i=pos("PhyCyls",abst,1)
CYL=x2d(word(abst,i+1))
i=pos(CYL,abst,i)
SPT=x2d(word(abst,i+1))
CYL=d2x(x2d(LCYL)+x2d(CYL),08)





Цитата:
В шестом почти новый скрипт язык.

мозг не надо парить. Там машина другая (Regina) и добавлены ZOC-примитивы Сам REXX не менялся.
Автор: makckc
Дата сообщения: 29.05.2013 00:58
Уважаемые знатоки, есть 3 винта STM3320418AS, в биосе определяются, но поверхность не отдают, с начала показывают unk, транслятор перечитывал, все бесполезно, можно с этими винтами что небудь сделать без PC3000!?

Не стучат, вроде как бы рекалибровку проходят, в терминал отдают такое

Rst 0x10M
(P) SATA Reset
RAW OFF
PASS
RW: Error processing Performance Parameter File: 203C
Автор: suz191
Дата сообщения: 29.05.2013 01:00
to tametung

не получилось
abst=translate(abst," ",","||"-",)
Винт хрюкает сохраняет чистые файлы....
Автор: tomset
Дата сообщения: 29.05.2013 01:10
tametung
Ну не все ж такие умные, чтобы живя в нищете, писать бесплатные утилиты.

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

label_select=(label_select_u5)
label_select=(label_select_b5)

Это из того что помню, там еще куча засад была.
Мало того, что и так тяжело вникнуть в чужой код, попробуйте "это" еще переписать под zoc6.
Но впрочем мне это уже давно не надо.
Балавство и пустая трата времени в реальной работе.
Автор: tametung
Дата сообщения: 29.05.2013 01:21

Цитата:
Винт хрюкает

что значит хрюкает ?


Цитата:
label_select=(label_select_u5)

А что обозначают эти скобки ? Вот поэтому интерпритатор тоже не понимает.


Автор: suz191
Дата сообщения: 29.05.2013 01:30

Цитата:
что значит хрюкает ?

издаёт характерный звук по кругу бегает команда

F3 2>x1

System Partition

LBAs 00000000 - 001077BF
PBAs 00000000 - 0010949F
HdSkew 0028, CylSkew 0018
ZonesPerHd 02

Head 0, PhyCyls 00025031 - 00025156, LogCyls 00000000 - 00000124

First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00025031 039C 06E3 00073E30 604.687
01 000250C4 039C 06E3 00073E30 604.687

Head 1, PhyCyls 0002685C - 0002698D, LogCyls 00000000 - 00000130

First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 0002685C 039C 06E3 00073E30 604.687
01 000268F5 039C 06E3 00073E30 604.687

Head 2, PhyCyls 00023805 - 0002391E, LogCyls 00000000 - 00000118

First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00023805 039C 06E3 00073E30 604.687
01 00023892 039C 06E3 00073E30 604.687

Head 3, PhyCyls 00025031 - 00025156, LogCyls 00000000 - 00000124

First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00025031 039C 06E3 00073E30 604.687
01 000250C4 039C 06E3 00073E30 604.687

F3 2>x1

System Partition

LBAs 00000000 - 001077BF
PBAs 00000000 - 0010949F
HdSkew 0028, CylSkew 0018
ZonesPerHd 02

Head 0, PhyCyls 00025031 - 00025156, LogCyls 00000000 - 00000124

First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00025031 039C 06E3 00073E30 604.687
01 000250C4 039C 06E3 00073E30 604.687

Head 1, PhyCyls 0002685C - 0002698D, LogCyls 00000000 - 00000130

First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 0002685C 039C 06E3 00073E30 604.687
01 000268F5 039C 06E3 00073E30 604.687

Head 2, PhyCyls 00023805 - 0002391E, LogCyls 00000000 - 00000118

First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00023805 039C 06E3 00073E30 604.687
01 00023892 039C 06E3 00073E30 604.687

Head 3, PhyCyls 00025031 - 00025156, LogCyls 00000000 - 00000124

First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00025031 039C 06E3 00073E30 604.687
01 000250C4 039C 06E3 00073E30 604.687

F3 2>x1
Автор: tametung
Дата сообщения: 29.05.2013 01:34

Цитата:
Балавство и пустая трата времени в реальной работе.

ну а мне REXX нравится. И работаю с Seagate'ами (U6-7200.12) именно,что в собственно ручно написанном
скрипте.под ZOC4. Меня все устраивает.

Автор: suz191
Дата сообщения: 29.05.2013 01:38
to tametung

вставил убрал так как по новому....
теперь....
F3 2> 52 +++ CYL=x2d(word(abst,i+1))
Error 40 running "C:\Users\suz191\Documents\ZOC6 Files\data track 11.zrx", line 52: Incorrect call to routine
Error 40.25: X2D argument 1 must be a hexadecimal string; found "2>"

Добавлено:

Цитата:
Балавство и пустая трата времени в реальной работе.

гы((( ну если по ата лить, сливать это от update акрониса прикручивать куски.... тогда вообще программиста хорошего надо((((((
с терминалом понятнее и проще.....
Автор: tametung
Дата сообщения: 29.05.2013 02:06
вот пробуйте

Код:
/* REXX */
ZocCls

CALL ZocTimeout 60
ZocSuppressOutput 1 /* 1=запрет вывода на экран */
CALL ZocSend "^Z"
CALL ZocWait ">"
CALL ZocSend "/2^M"
CALL ZocWait "2>"
call ZocSend "R,1^M" /* Эта строка нужна если при нач. выводе N буфф. не выводится строка default Rd Buf */
call ZocWait "2>"


CALL ZocReceiveBuf 2048
CALL ZocSend "?"
CALL ZocDelay 0.6
CALL ZocSend "^M"
CALL ZocWait "2>"
abst= ZocReceiveBuf(0)

i=wordpos("Default",abst,1)
RD_BUFF=x2d(substr(word(abst,i-8),1,6))


CALL ZocReceiveBuf 2048
CALL ZocSend "x1^M"
CALL ZocWait "2>"
abst= ZocReceiveBuf(0)
abst=translate(abst," ",","||"-",)

i=wordpos("PhyCyls",abst,1)
pBASE=word(abst,i+1)
i=wordpos(pBASE,abst,i+2)
SPT=x2d(word(abst,i+1))



call ZocSend "A0^M"
call ZocWait "2>"

BULK=201 /* трэков=обработка пакетом */
HEAD="00"
LCYL=0


NEXT:
HEAD= ZocAsk("Please enter phys HEAD+LCYL(SA.OFFSET)", substr(HEAD,1,1)||","||d2x(LCYL,03))
IF HEAD= "##CANCEL##" THEN DO
SIGNAL BYE
END
LCYL=x2d(substr(HEAD,3,3))
HEAD=substr(HEAD,1,2)

TRACK:

FILE="D:\_dumps\0"||substr(HEAD,1,1)||"."||d2x(LCYL,03)||".BIN"
IF STREAM(file, "C", "QUERY EXISTS")\="" THEN DO
ZocFileDelete(FILE)
END
CALL STREAM file,"C","OPEN WRITE"

pCYL=d2x(LCYL+x2d(pBASE),08)
call ZocSend "s"||pCYL||","||HEAD||"22^M" /* HEAD=0, или 1, ... */
call ZocWait "2>"

call ZocSend "r,0,"||d2x(SPT,4)||"^M"
call ZocWait "2>"

do i=0 to SPT-1
CALL ZocReceiveBuf 2048
w=d2x(RD_BUFF+i,4)
call ZocSend "B"||w||","||w||"^M"
call ZocWait "2>"
abst= ZocReceiveBuf(0)
BINSTRING=""
patt=d2x(x2d(w)*512,08)
k=pos(patt,abst,1)
abst=delstr(abst,1,k+8)
k=1
do 32
do 16
BINSTRING=BINSTRING||word(abst,K)
k=k+1
end
k=k+1
end
CALL CHAROUT file,X2C(BINSTRING)
ZocNotify "HD:"||"0"||substr(HEAD,1,1)||" CYL:"||pCYL||" Sec:"||d2x(i,04)
end
CALL STREAM file,"C","CLOSE"

LCYL=LCYL+1
if LCYL<BULK then signal TRACK
LCYL=0
BULK=201
SIGNAL NEXT

BYE:
say "BYE!"
EXIT
Автор: suz191
Дата сообщения: 29.05.2013 02:27
не хочет теперь это место

34 +++ SPT=x2d(word(abst,i+1))
Error 40 running "C:\Users\suz191\Documents\ZOC6 Files\TEST2.zrx", line 34: Incorrect call to routine
Error 40.25: X2D argument 1 must be a hexadecimal string; found "x1"
Автор: tametung
Дата сообщения: 29.05.2013 03:06

Цитата:
не хочет теперь это место

да.Исправил. Проверил. Работает на XP.ZOC=6.45 от 13 ноября 12 года.
Автор: suz191
Дата сообщения: 29.05.2013 03:25
to tametung
Очень жалко ... но получилось тоже самое с точками волной....
Так же в окне всё нормально, а фаил с точками сохраняется...


Добавлено:
Может уже отложить на завтра...
Что-то это картина и там и тут получилась....

Добавлено:
В Zoc 5 опять всё ровно и как надо
Автор: tametung
Дата сообщения: 29.05.2013 04:36
исправил
Автор: tomset
Дата сообщения: 29.05.2013 06:40
suz191


Цитата:
ну если по ата лить, сливать это от update акрониса прикручивать куски.... тогда вообще программиста хорошего надо((((((
с терминалом понятнее и проще.....

Треки на 11-12 бесмысленно читать, это мало что дает.
Так как практически нереально выделить из треков модули, которые не имеют осмысленных заголовков. Переписывать треки от другого или на другой хард смерти подобно. Каждый хард имеет свою уникальную таблицу модулей, если привязываться к физическому положению.
Между модулями могут быть нечитаемые куски, которые будут сбивать с толку.
Так же скрытые дефекты SA внесут сумятицу.
Нужно разбор таблицы модулей делать, и читать по-модульно в RLBA.
Харды F3 очень сильно отличаются от клаcсической архитектуры баракуд.
А пытались и пытаются еще до сих пор их осмыслить и копать, как классические барракуды. А это в корне не верно.
По этому практически все, что есть на форумах о работе с их SA, писали скрипты, с момента их появления (это уже почти 5 лет) - мимо кассы.
Собственно Сигейт всем нам, хорошую свинью подложил с терминалом, который остался, как наследие классических баракуд. Который побольшому счету, кроме как для диагностики нафик не нужен. Кроме сгона мухи и пересчета транслятора, ни чего полезного. Только на последних 12-х, его хоть как-то научили работать с модулями.
Автор: NiTr0
Дата сообщения: 29.05.2013 09:56
makckc

Цитата:
с начала показывают unk, транслятор перечитывал, все бесполезно

Что надо - винт или данные?
Если надо винт и ошибка UNC - пройдитесь записью по поляне. Транслятор пересобрался со сдвигом, а КС сектора вычисляется исходя из его LBA. LBA сменилось - КС для сектора и всех последующих стала неверной.


Цитата:
RW: Error processing Performance Parameter File: 203C

Часть служебки нечитаема. Насколько критичный модуль - гуру скажут. Я с рыбами 11-12 не работал почти...
Автор: makckc
Дата сообщения: 29.05.2013 10:50
NiTr0
Данных там нет, винты починить пришли, у всех 3-их, одна и та-же причина, насчет ошибки так спросил, кто то из гуру тут на форуме писал что ошибка не критична, а записью пройтись по поляне, что то мозг не включился, обычно всегда так делал при unkax спасибо за подсказку
Автор: AntiMember
Дата сообщения: 29.05.2013 11:01
makckc
Если дата не нужна, можно и F,,22 попробовать.

Цитата:
Если надо винт и ошибка UNC - пройдитесь записью по поляне.

Это обязательно, если делался только пересчет транслятора (быстро), а не формат.
Автор: makckc
Дата сообщения: 29.05.2013 11:19
AntiMember
Простите за вопрос чайника, этот скрипт или программулина, снимает инфу с каких рыб? Или не только с рыб!?
Автор: suz191
Дата сообщения: 29.05.2013 11:29
to tametung
Ура!!! Работает ОГРОМНОЕ СПАСИБО!!! Как всегда выручили!!!
В с этими точками как раз и было не понятно.... Почему так происходит
Теперь можно спокойно в новом зоке работать спасибо ещё раз
Проверил даже не верится

to tomset

Цитата:
Треки на 11-12 бессмысленно читать, это мало что дает.

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

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

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

Цитата:
Каждый хард имеет свою уникальную таблицу модулей,

С этим есличестно я вообще не могу въехать, я вообще немогу понять откуда брать.... хотя пытались объяснить но когда человек не разу не видел... Я не могу выехать в это....
Вы подсказали про T>y теперь стало ясно что в каждом томе, и конкретно что сливать по FID
Но найти те же самые координаты во флешь... В ехать не получается!!!! Большинство на 11 винтах в cyl FFFFF
Если я сейчас говорю о том же о чём и Вы.....

Цитата:
и читать по-модульно в RLBA.

Тут конечно вы правы и скорость наверное увеличится... Но опять таки надо занова это разбирать и понимать
И не видя... Работы... Не скриптов не как это делается....

P/S Смотреть, записывать, анализировать, сравнивать... А а когда один из компонентов опущен. Я бараном почему то становлюсь или ребёнком 3-х летнем

to makckc
Это скрипт чтения служебной зоны... в который даже специалистам тредно что либо понять....

to all
ШАПКА РЕГУЛИРОВКИ СКОРОСТЕЙ КНОПКАМИ!!!
вставляете туда где скорость регулируется, а если не регулируется то в верх...
Кнопки просто добавьте, если нужна другая скорость, или отредактируйте эти скорости под себя...


Цитата:
/* Terminal ZOC+HDD */

Call ZocCLS
ZocSuppressOutput 0

CALL ZocSend "^Z^M"
CALL ZocWait "T>"

trnRate= ZocRequest("Please enter Enter BaudRate:", "38400", "115200", "230400")
IF trnRate= "##CANCEL##" THEN DO
SIGNAL BYE
END

IF trnRate="38400" THEN DO
idTrnRate=38400
END
IF trnRate="115200" THEN DO
idTrnRate=115200
END
IF trnRate="230400" THEN DO
idTrnRate=230400
END

idTrnRate=trnRate -- Baud rate identifier for the drive
CALL ZocDelay 0.5 -- Wait to complete baud rate change
CALL ZocSend "B"||idTrnRate||"^M" -- Set drive baud rate
CALL ZocDelay 0.5 -- Wait to complete baud rate change
CALL ZocBaud trnRate||"-8N1" -- Set terminal baud rate
CALL ZocDelay cmdExecuteDelay -- Wait to complete baud rate change

CALL ZocSend "^Z^M"
CALL ZocWait "T>"
Автор: makckc
Дата сообщения: 29.05.2013 11:55
Вобщем прошелся я записью, не чего не поменялось, при чтении рекалибрейшен еррор, и унки, прям с нулевого сектора, в виктории


Добавлено:
suz191
Это скрипт чтения служебной зоны... в который даже специалистам тредно что либо понять....

О да инженера иногда поражают своей гениальности, чем только думают!?
Автор: suz191
Дата сообщения: 29.05.2013 12:40
to tametung
НЕ РАБОТАЕТ !!!
Оказывается!!!
какие бы цифры не ставил в трек... заместо нужных теперь сливает только 0 трек...
другие треки не сливает сливает только 0
Но без точек

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112

Предыдущая тема: Оптимален ли дефолтный размер блока 128Кб для RAID0 (Intel)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.