Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Документация »   Програмный ремонт жёстких дисков HDD
RSS

Програмный ремонт жёстких дисков HDD

Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung /IBM /Hitachi /HGST /Western Digital

<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... 40 41 42 43 44 * 45 46 47 48 .. 75 76 77 78 79 80
Печать
 
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Спасибо всем за советы! Я просто хотел сделать аналог команды A>P для ALPINE, и освоить ручную работу с дефектами.
А тест, да можно запустить, посмотреть, найдутся ли еще подозрительные сектора .
Сколько примерно по времени займет этот MRT test?
SRUTSSSSSSSS80
Newbie


Всего сообщений: 10
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 апр. 2018
такое же время как секюритиерайзе

T>/2
2>G7,3
Slip hard errs Enabled Slip soft errs Enabled
Set hlth hard errs Disabled Set hlth soft errs Disabled Stop on hard errs Disabled
Forever Mode write/ read
Pass
18.38-20.00 примерно
80gb
2>G7,2
Slip hard errs Enabled Slip soft errs Disabled
Set hlth hard errs Disabled Set hlth soft errs Disabled Stop on hard errs Disabled
Forever Mode write
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Спасибо, запустил 2>G7,3, запись уже прошла, идет чтение.

Хм прошел, и результат несколько неожидан.

--- addslip.log  2018-04-26 23<img src="smiles/tease.gif" align=absmiddle alt=":36:">41.000000000 +0000
+++ G73test.log  2018-04-26 23<img src="smiles/tease.gif" align=absmiddle alt=":36:">55.000000000 +0000
@@ -1,7 +1,7 @@
T>V1
User Slip Defect List
-Num Entries = 069A    Checksum = 028E
-Total number of Defects = 077F
+Num Entries = 0697    Checksum = B140
+Total number of Defects = 0777
Hd 0        Span Hd 1        Span
                  00025.1.0F5 0001
                  00025.1.0FA 0001
@@ -1452,11 +1452,8 @@
                  07B65.1.158 0001
                  07CEF.1.0D1 0001
                  07D2E.1.2DE 0003
-                 07D2F.1.2B4 0003
                  07D30.1.28A 0003
                  07D30.1.1D1 0002
-                 07D31.1.2A9 0001
-                 07D31.1.1A7 0004
07E92.0.0D5 0001
07ED1.0.0C4 0001
07ED6.0.0C3 0001


Те тест исключил добавленные из бывшего alt-list групповыедефекты на
треке 7D2F, 7D31, и один одиночный на том же 7D31.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Для лучшего понимания я повторил занесение "удаленных" тестом G7,3 дефектов.
После занесения дефектов и перезагрузки ^C, наблюдал повторяющиеся сообщения:
(первый раз это тоже было, но я подумал, слчайно задел какую-то клавишу).

T>8.01  03-18-05 15:46
(P)PATA Reset

CE Log EC=0  Rtype=36 OV=0 STStatus0

CE Log EC=0  Rtype=36 OV=0 STStatus0
Master
Pgm=00 Trk=0F6BA(0F6BA).0(0).007(006) Zn=0 Err=00 ErCt=0D31 Hlth=0000 CHlth=0000 Ready LBA=03E3F690


Они пропали после второго ^C. Что эти сообщения означают?

Пустил заново 2>G7,3. На этот раз ничего не исключилось и не добавилось.
Может даже напутал что в прошлый раз...
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
KALDYH, Вы не знаете, есть ли возможность у U6 серии просмотреть slip-list (аналог
T>V1 для barracuda)? Именно текущий лист, а не список дефектов в логе SS.

У меня есть U6 одноголовый (20GB) с тремя плохими секторами. Плохие сектора "настоящие", те
коррекция ECC стиранием не помогает, диск делает remap и эти сектора снова попадают alt-list.

Удалось добавить их в slip-list, и избавиться от remap-ов (с помощью команд работы с дефектами, они у U серии отличаются), но правда по моему один дефект я ошибочно добавил,
забыв спозиционировать головку предварительно на нужный трек.

Примерно так

1>N07  //смотрим alt-list с помощью SMART
TimeStamp   LBA     R-Theta-Z
    1f6c  2543365 d273-e5da-0
1>/2
2>l254,3365  //конвертируем LBA  в CHS
2543365, D273/ 0/ 1D4
2>Sd273,0  //позиционируем на нужный трек и проверяем правильность позиционирования
2>Pgm=50 Trk=D273(D273).0.096 Zn=D Err=00 ErCt=0000 Hlth=0000 CHlth=0000 Ready
2>/9
9>F1d4,D,1  //заносим плохой сектор в slip-list
9>F0,C    //чистим alt-list
9>/1
1>N07
TimeStamp   LBA     R-Theta-Z    //alt-list пуст
1>/
T>Intf tsk rst 1024k x 16 buffer detected
ATRst
U6 - ST320410A(A),03.39
.PMstr

Ну и потом стирание поверхности.

Вообще, после 7200.7-7200.10 как то неудобно:)
SRUTSSSSSSSS80
Newbie


Всего сообщений: 10
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 апр. 2018
писал ранее
[q]
по A>P нужно предварительно перенести дефекты в Р-лист, потом (очистка СМАРТ иначе показания останутся) и уж потом 2>G7,3
[/q]
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
SRUTSSSSSSSS80, по 7200.7-7200.10 на некоторых дисках я SMART очистил, на
некоторых нет, тк все же хочу найти возможность избирательного сброса атрибута
reallocated sectors, оставив часы работы. и количество start/stop.

На ALPINE (где гонялся G7,3 два раза), SMART сброшен и команды A>P нет.
На TONKA2 A>P уже есть.

Несброшенный SMART кроме ложных показаний reallocated sectors на что-то влияет?
Да и этот атрибут SMART у 7200.7-7200.10 довольно условно отображает содержимое alt-list...

Что касается U6, то у него SMART показания reallocated sectors жестко связаны с количеством
записей в alt-list, и обнуляются при сбросе alt-list (9>F0,C).
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Я ранее упоминал, что на GALAXY3D сбрасывал alt-list и SMART ранее. Bad-ов типа UNC после
сброса alt-list и стирания поверхности не появилось, однако я подумал, может для надежности
все-же ввести бывшие alt-list дефекты в slip-list?

Старый лог дефектов alt-list сохранился, они были примерно равномерно распределены по головам.

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

В данном варианте я заношу дефекты в alt-list, для удобства контроля (тк slip список огромен),
а потом после проверки перенесем в slip-list A>P. Для дисков, где нет A>P, естественно только
один вариант, сразу в slip-list заносить. Задается директивой препроцессора #define SLIP.

Желательно сперва проверить правильность работы, направив вывод в файл, вместо /dev/cuau0. За
прохождением занесения дефетов наблюдаем в терминальной программе, она же и настроит COM-port.

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

#include >stdio.h>
#include >stdlib.h>
#include >string.h>
#include >unistd.h>

#define  SLIP  0    //if 0, add defect to alt-list, else - slip-list
#define  SDLY  usleep (400000)  //short delay usec
#define  MDLY  sleep(1)  //middle delay
#define LDLY  sleep (4)  //long delay  sec

int main(int argc, char *argv[]<img src="smiles/wink.gif" align=absmiddle alt=";)"> {
/* Variables declarations*/
unsigned int i, nline;
char defstr[30];
char altstr[30];
char cyl[]  = {0,0,0,0,0,0,0,0,0,0};  //9 symbols max + '\0'
char head[] = {0,0,0,0,0,0,0,0,0,0};  //9 symbols max + '\0'
char sec[]  = {0,0,0,0,0,0,0,0,0,0};  //9 symbols max + '\0'
char *p1, *p2;
unsigned len;
unsigned char dev=0;  //if we work with serial device, dev == 1, else 0
FILE* src;
FILE* dest;

    if (argc !=3) {
  printf("Seagate defect lists management\n");
  printf("Usage: sgdfl >input_file> >output_file>\n");
  exit(EXIT_SUCCESS);
    }

    if (argc = 3) {
  src = fopen(argv[1],"r");
  if (src == NULL) {
      perror(argv[1]<img src="smiles/wink.gif" align=absmiddle alt=";)">;
      exit(EXIT_FAILURE);
  }

  dest = fopen(argv[2],"a");
      if (dest == NULL) {
      perror(argv[2]<img src="smiles/wink.gif" align=absmiddle alt=";)">;
      fclose(src);
      exit(EXIT_FAILURE);
  }
    }

    if (strstr(argv[2], "/dev/"))
  dev = 1;

    if (dev) {
  fputc(0x1A, dest);  //^Z
  MDLY;
  fputc(0x12, dest);  //^R
  LDLY;
  fprintf(dest, "/\n");  //switch to level T (dummy)
  MDLY;
    }

    fprintf(dest, "/2\n");  //switch to level 2
    MDLY;

    for (nline=1; !(feof(src)); nline++) {
  fscanf(src, "%20s", defstr);

  while ((i=fgetc(src)) != '\n')
      if (i == EOF)
    goto stop;

  //defect's string parsing
  p1 = strchr(defstr, '.');
  len = p1-defstr;
  if (len > 9) {
      printf("Error at line %u, stop\n", nline);
      break;
  }
  strncpy(cyl, defstr, len);  //physical cylinder string

  p2 = strchr(p1+1, '.');
  len = p2- (p1+1);
  if (len > 9) {
      printf("Error at line %u, stop\n", nline);
      break;
  }
  strncpy(head, p1+1, len);  //physical head string
  strncpy(sec, p2+1, 9);    //physical sector string

  fprintf(dest, "s%s,%s,22\n", cyl, head);  //select physical C/H
  if (dev)
      SDLY;
#if SLIP
  fprintf(dest, "F%s,D,,1\n", sec);  //add defect to slip-list
#else
  fprintf(dest, "F%s,A,,1\n", sec);  //add defect to alt-list
#endif
  if (dev)
      LDLY;
    }
stop:
    fprintf(dest, "/\n");  //switch to level T
    SDLY;

fclose(src);
fclose(dest);
return 0;
}


Все работы проводились под FreeBSD 8.4. Добавление дефектов из файла в alt-list прошло
нормально, перенос A>P в slip-list тоже, проконтролировал сравнивая старый и новый slip-list
командой "diff -u". Осталось стереть диск и протестировать заново.

Возможные будущие планы - добавить в программу собственный терминал, чтение-запись треков через
буферы и передачу данных по SDLD.
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
i8088 написал:
[q]
Проблему с синхронизацией я пока не придумал как решить, тк подача команды пока диск не вернул
новую строку (отработал предыдущую команду), может привести к неприятным последствиям.
[/q]
Так и решается - делается ожидание вывода приглашения командной строки.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Спасибо, так и буду делать! Программу надо будет оснастить собственным
терминалом, тк иначе перевод строки может перехватить внешняя терминалка.
<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... 40 41 42 43 44 * 45 46 47 48 .. 75 76 77 78 79 80
Печать
Полигон-2 »   Документация »   Програмный ремонт жёстких дисков HDD
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS