Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Голосование

Ставлю на голосование срок службы восстановленых HDD

Сдохнет через 1 неделю
0 (0%)
Сдохнет через 1 месяц
1 (10%)
Сдохнет через 3 месяца
1 (10%)
Сдохнет через 1 год
2 (20%)
Проработает больше заявленного отказного времени.
6 (60%)

Проголосовало пользователей: 10

Автор Тема: ВОсстановление HDD  (Прочитано 8181 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Artif

  • Участник
  • *
  • Сообщений: 207
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #15 : 05 Июня 2015, 20:38:41 »
Всем доброго времени суток.
В общем:
...

Как я понимаю, вопрос частично отвечен тут - https://unix.stackexchange.com/questions/167744/how-can-dd-be-used-to-right-shift-data-blocks

Вероятно, вот черновик нужного ответа:
#!/bin/bash

echo -n "10000
20000
30000
" > numeric-addresses.txt

wantedHDD=/dev/thing


while read numericAddress
do
    for counter in $( seq 0 2 )
    do
        echo "Попытка записи номер $counter на $wantedHDD"
        echo dd if=/dev/zero of=$wantedHDD \
           bs=1M skip=$numericAddress seek=$(($numericAddress+2)) count=1
    done
done <<< "$( cat numeric-addresses.txt )"

Скрипт "холостой", он только пишет в консоль командыкоторые можно доработать и использовать, и создаёт файл numeric-addresses.txt из трёх строк, и только.

Я не проверял, что числа и комбинация аргументов правильны, но Вы ж обладаете возможностью заглянуть в справочник? :) :)

Смысл в скрипте такой: HDD блочное устройство, узнать размер блока, рассчитать смешение/адрес - можно. dd пишет блоки инфы в блочные устройства (и читает их). Дальше - подобрать аргументы, засунуть в цикл. Цикл и чтение из файла я показал. Аргументы - за Вами. :) Кстати, Bash умеет вычислять арифметические выражения. seek=$(($numericAddress+2)) - это как раз оно, numericAddress умножает на два.

Что такое /dev/thing и /dev/zero - должно быть известно (Вы ведь ремонтник). Если пояснения нужны - спросите, расскажу.

Пользователь решил продолжить мысль [time]05 Июнь 2015, 21:44:17[/time]:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 05 Июня 2015, 20:46:35 от Artif »

Оффлайн RPSVoloch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #16 : 06 Июня 2015, 02:40:20 »
Artif,
Одно дело ремонтить железо другое же программы колупать)
Вы единственный кто ответил по делу за что Вам спасибо.
Но это не то что требуется причём далеко не то.
А вообще правильнее будет использовать уже готовый список бэдов (плохо отвечающих >400 мс) из уже готового документа созданного к примеру той же викторией или любой другой софтиной по поиску бэдов.
Дальше нужно поочерёдно из списка брать адрес "бэда" и писать в него 0 потом 1 и через скажем 20 циклов записи производить чтение того что там имеется с анализом времени требуемого на считывания (идеальный вариант)
Но уже склоняюсь к тому что придётся разобрать какую нить софтину по сканированию HDD и выдернуть с неё часть скрипта да допилить его под свои нужды.
Могу написать макет скрипта но без синтаксиса и без знания азов прямой работы с HDD в Linux от него мало толку.
Изучать синтаксис bash скриптинга для работы с HDD нет времени так как слишком много работы, а времени очень мало.

Vasja555,
Производители специально занижают объём для того что бы иметь запас на ремап HDD и там далеко не в 4 раза.
Только смысл колупать бинарник прошивки в хекс редакторе? Исходник тебе не кто не даст (только уже собранную готовую прошивку).

Пользователь решил продолжить мысль 06 Июня 2015, 11:49:37:
Решение моей задачи найдено => _http://saradmin.ru/?p=583
Буду приводить в божеский вид и прописывать свой чудо - скрипт.
« Последнее редактирование: 06 Июня 2015, 11:49:37 от RPSVoloch »

Оффлайн jura12

  • Старожил
  • *
  • Сообщений: 1472
  • 24.04 lubuntu
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #17 : 06 Июня 2015, 13:56:37 »
какой марки больше всего сбойных? я недавно на ноуте поменял свой. там сатсунг 250гб оказался.
сопротивление бесполезно

Оффлайн RPSVoloch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #18 : 06 Июня 2015, 14:38:14 »
Всего HDD я не пересчитывал сбился на 307. За 9 лет работы в разных сервисах просто накопилось)
В основном всякие HGST, HITACHI, TOSHIBA, WD Blue, SEAGATE Momentus, самсунги(недавно их перекупил сеагейт), очень редко WD Green и ни 1 WD Black (сам их использую для рабочего ноута и все кому ставил ещё не обращались - там гарантия 5 лет от производителя хотя у меня таблица разделов упала на 1 из них недавно - упарился восстанавливать инфу)

Оффлайн KJOI

  • Активист
  • *
  • Сообщений: 286
  • ALT Linux
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #19 : 06 Июня 2015, 15:30:15 »
Всем доброго времени суток.
В общем:
я мастер по ремонту техники и так случилось что накопилось огромное кол-во HDD ( 73шт по 500 - 750Гб остальные в счёт не беру)
Все харды от ноутбуков (т.е. 2.5) и все с бедами.
Нужно какой нить скрипт для цыклической перезаписи в определённые сектора до восстановления их работоспособности (это возможно и старые досовские форматы помогали восстанавливать так HDD не применяя переразметку а восстанавливая то что есть но это очень долго так как приходится гонять весь HDD)
Адреса сбойныйх блоков могут храниться в любом текстовом документе содержанием:
10000
20000
30000
Попробуйте инструмент ALT Linux Rescue, он собран с особенностями Альт, но работает в большинстве систем, даже в Windows.
В составе:
    диагностики аппаратного обеспечения
    изменения размера разделов
    исправления загрузчиков, разделов, файловых систем
    восстановления разделов и файлов, удалённых по неосторожности
    резервного копирования на сетевые серверы и восстановления с них
    работы с оптическими, ленточными и файловыми архивами
    оптимизации использования файловой системы
    зачистки остаточной информации на разделах и дисках[2]
    доступа к Android-устройствам, сброса паролей Windows и т.п.
    расследования случаев несанкционированного доступа/нарушения безопасности информационных систем...

и т.д.

Возможно вам поможет.
Русский Linux: https://www.basealt.ru/products/simplylinux/
Мой проект git «Kernel Manager» linux: https://github.com/Koi-foo/kernel-manager/

Оффлайн RPSVoloch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #20 : 06 Июня 2015, 16:17:37 »
KJOI,
Я уже нашёл ответ на свой вопрос + пользователь Artif в личку прислал очень полезную инфу надеюсь сюда продублирует так как это будет интересно не только мне.



Пользователь решил продолжить мысль 07 Июня 2015, 12:29:16:
Вот чем мне нравится линь так это своими возможностями. 17 HDD восстановлены и готовы к работе.
При использовании hdparm можно восстановить бэды с невероятной скоростью работы (виндо софт может позавидовать)
Восстановление каждого сектора происходит в считанные секунды без лишнего гемора.
Список бэдов поскольку работаем в лине лучше создавать badblocks (но к сожалению не разобрался как выставить чтоб он писал не только бэды но и те сектора которые идут с задержкой >400мс )
До автоматизации процесс не довёл так как уже с такой скоростью нет смысла и разница в 10 минут погоды не изменит.

Эта команда забивает бэд 0
hdparm --write-sector 326116096 --yes-i-know-what-i-am-doing /dev/sdc
Эта команда проверяет что получилось с выводом на экран 0
hdparm --read-sector 326116096 /dev/sdc
« Последнее редактирование: 07 Июня 2015, 12:29:16 от RPSVoloch »

Оффлайн Artif

  • Участник
  • *
  • Сообщений: 207
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #21 : 07 Июня 2015, 13:40:46 »
Эта команда забивает бэд 0
hdparm --write-sector 326116096 --yes-i-know-what-i-am-doing /dev/sdc
Эта команда проверяет что получилось с выводом на экран 0
hdparm --read-sector 326116096 /dev/sdc

По части проверки результата, кроме вывода на экран, сразу после выполнения каждой Shell команды в переменной $? содержится "код возврата" команды. Работают с ним примерно так, как ниже. Но, мне негде проверить, hdparm может использовать этот код не для отчёта о успехе/неуспехе чтения/записи из/в сектор.

hdparm --read-sector 326116096 /dev/sdc
isHaveFailureCode=$? # Код возврата важно сохранить сразу после выполнения команды, т.к. следующая команда сразу же установит уже свой код.

if test "$isHaveFailureCode" -eq 0 ; then
    echo "Код успеха."
else
    echo "Код ошибки = $isHaveFailureCode."
fi


Если код возврата неудобно или невозможно использовать, то к выводу в консоли применяют grep (egrep), awk, sed. Для них не нужно каких-то специальных знаний, можно применять пяток скромных, однотипных приёмов и этого хватает на многое. Хотя сами эти sed, awk и т.д. умеют сложное и мощное (но это необязательно использовать).


Под чертой ниже прикладываю текст письма из лички.


В принципе, статья - _http://saradmin.ru/?p=583 - была найдена правильная, да.

Artif,
Могу написать макет скрипта но без синтаксиса и без знания азов прямой работы с HDD в Linux от него мало толку.

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

2 - Это довольно легко обернуть в циклы для многократной записи и т.д. Если есть набор нужных команд для одного прохода по сектору. Замер времени на отклик - не представляю себе как это сделать просто и на скриптовых языках. Но есть спец. утилиты, упомянутые ниже. Поэтому, если есть список команд для ком.строки, которыми один раз производится нужное в отношении какого-то сектора, то остальное очень просто.
 
3 - Видимо, dd не подошла как инструмент записи. Т.е., видимо, нужен более низкоуровневый доступ. Типа: прямо писать "в порт" HDD команды. dd, действительно, работает довольно высоко-уровнево. Я думал будет достаточно вычислить 100-200кб, в которые попадает сектор и дальше надо туда записать, считать и проверить (вычислить CRC32, MD5...). dd позволяет сделать это: skip=... seek=.... Т.е. это не работа с конкретным сектором, сектор всего-то только попадает в эту область. Но этот же сектор, пока он сбойный, провалит проверку данных. Контрольная сумма по всей области не будет сходится, если сектор сбоит.

Арифметика в примерах есть вот тут - http://linoxide.com/linux-how-to/how-to-fix-repair-bad-blocks-in-linux/
Или в гугло-переводе - https://translate.google.com/translate?hl=en&ie=UTF8&prev=_t&sl=en&tl=ru&u=http://linoxide.com/linux-how-to/how-to-fix-repair-bad-blocks-in-linux/
Я пробежал глазами, там даны примеры, как вычислять все эти размеры блоков, чтобы знать смешение, по которому записывать, считывать. Там же, кстати, дан пример использования dd.



Далее:

Вот тула проверки на беды - https://wiki.archlinux.org/index.php/Badblocks
  • У неё есть опция -p - гонять до тех пор, пока указанное число, подряд идущих, проходов не будет успешным.
  • Умеет записать в файл "адреса" найденных бедов - опция -o.
  • Она умеет использовать списки уже найденных бедов просто секторов - опция -i. Дальше - бубен в руки - список должен быть списком _хороших_ секторов. См. её ман. Она скипает при проверке сектора из этого списка. А нам как раз нужно пропустить хорошие сектора. Придётся как-то в Libre Office Calc или скриптом сгенерить этот огромный список (список всех секторов, за вычетом бэдов). Будет ли размер списка проблемой по времени - не знаю, не пробовал. Могу написать, это довольно легко, скрипт выдачи хороших секторов, имея только список плохих (и номер самого последнего сектора).
  • Если этого окажется мало и надо лезть глубже, то это тула имеет исходники - http://sourceforge.net/projects/e2fsprogs/ Тула эта стандартная, есть в составе Ubuntu, а значит есть исходники, которые легко собрать под Ubuntu (src deb пакеты). Ну, тут уже программистская работа. Если там код написан ясно и красиво, а мозги склонны к этому, то разобраться и чуть пильнуть под себя (при проверке по списку проверять те, что в списке, вместо пропускания) будет возможно и самому.

Есть другие тулы, типа hdparm и т.д.

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

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


P.S. Выше было пожелание - желательно штатными средствами Убунты 10.4 сервер. Но, если иначе делать, в принципе, в принципе, есть ведь FreeDOS (http://www.freedos.org/). М.б. все эти 25-ти летней давности утилиты можно запускать на современном железе в родной среде, м.б. там в комплекте есть нужное... Если утилиты хороши, а такие бывали, то я бы изучил вопрос. Уходя ещё дальше, есть ещё виртуалки (KVM+QEmu, но я не знаю, можно ли в них прокидывать "аппаратный доступ").

Оффлайн RPSVoloch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #22 : 07 Июня 2015, 22:31:02 »
Макет скрипта:
Запрашиваем у пользователя с каким HDD будем работать - $HDD
Запрашиваем у пользователя где хранить список бэдов - $logs
Запрос пользователя о необходимости производить проверку после всех манипуляций
badblocks -sv $HDD > $logs/$HDD
hdparm --write-sector $logs/$HDD --yes-i-know-what-i-am-doing $HDD (Цикл из 200 перезаписей) // Забираем первую строчку из списка и после 200 циклов берём следующую строчку

hdparm --read-sector $logs/$HDD $HDD > $logs/файл_с_выводом_проверки  // И так с каждым бэдом из списка НЕ перезаписывая файл лога а добавляя в него
Далее просто завершаем скрипт с фразой: Ура мы победили! (не обязательно но по приколу)

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: ВОсстановление HDD
« Ответ #23 : 08 Июня 2015, 10:50:11 »
Я бы иначе предположил с этим компотом из "восстановленных" железок. Вся эта куча дисков настолько разношёрстна, что они отказывать будут все в разное время. Было бы только удовлетворительным время наработки до сбоя.
... а оно не будет удовлетворительным. О чем я собственно и говорю - при разношерстном наборе - ситуация только усугубляется еще меньшей предсказуемостью но в тотале - время наработки на отказ массива лучше от этого не становится.


Другое дело, что гнилую палатку/байдарку защивать дело бестолковое - заплата крепче шкуры выходит... :) Но, в принципе, идея стоит того, чтобы развлечься. Если не надо деньги вкладывать, или время растрачивать.
Ну время то тут растратить придется по-любому....
А так да, по принципу - "чем бы дитя не тешилось, лишь бы не вешалось"  :2funny: ;D ... можно и заняться.... 8)

(Нажмите, чтобы показать/скрыть)
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Vasja555

  • Забанен
  • Участник
  • *
  • Сообщений: 166
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #24 : 08 Июня 2015, 12:54:00 »
Макет скрипта:


Да зачем скрипты
у меня вот еще 100 видеокасет есть и видеомагнитофон
может к стримерам вернутся

давайте трупы подымать

Оффлайн RPSVoloch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #25 : 08 Июня 2015, 17:22:40 »
На косету и я загнать могу инфу) У меня много чего раритетного есть.

А вообще весь этот кипиш с хардами тупо из за того что нужно выкачать очень много а хранить естесно не где.
Рэйд 0 ни разу не юзал и понятия не имею как оно работает но мысль о том что можно соединить 2 HDD в единое целое меня манит так как на выходе я получаю 1 HDD очень внушительного объёма (как раз как я люблю чтоб не запариваться на каком харде у тебя что находится)
Дальше все эти железки после забития инфой пойдут на полку и в дальнейшем буду докупать другие железки которые по объёму в разы больше. Ну естесно рэйд но только уже с другим кол-вом винтов.
А эти будут резервные (ну мало ли восстановленную инфу надо будетт хранить).

Оффлайн _angus_

  • Активист
  • *
  • Сообщений: 305
  • data recovery tech
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #26 : 08 Июня 2015, 17:26:27 »
1) пакет gddrescue, в нём утилита ddrescue -- есть и режим создания лога непрочитанных секторов (читаем с диска в /dev/null), и режим записи в непрочитанные сектора (--fill). По таймауту там не отловить, хотя в последней версии и есть режим построения карты скорости чтения.
2) ерундой вы занимаетесь откровенно.

Оффлайн Vasja555

  • Забанен
  • Участник
  • *
  • Сообщений: 166
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #27 : 08 Июня 2015, 18:45:56 »
На косету и я загнать могу инфу) У меня много чего раритетного есть.

А вообще весь этот кипиш с хардами тупо из за того что нужно выкачать очень много а хранить естесно не где.
Рэйд 0 ни разу не юзал и понятия не имею как оно работает но мысль о том что можно соединить 2 HDD в единое целое меня манит так как на выходе я получаю 1 HDD очень внушительного объёма (как раз как я люблю чтоб не запариваться на каком харде у тебя что находится)
Дальше все эти железки после забития инфой пойдут на полку и в дальнейшем буду докупать другие железки которые по объёму в разы больше. Ну естесно рэйд но только уже с другим кол-вом винтов.
А эти будут резервные (ну мало ли восстановленную инфу надо будетт хранить).

А мамка то рейды хоть поддерживает?

Оффлайн userok2008

  • Активист
  • *
  • Сообщений: 275
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #28 : 08 Июня 2015, 20:38:34 »
Чудны нынче "ремонтники"))).Не понимают, что "железные" бэды, даже в спецлабораториях не "лечатся".
RPSVoloch,
Чем отличается "железный" бэд от "софтового" Вам точно известно?В той же Виктории, к примеру.А то, судя по утверждению-"там ВСЕ бэды софтовые",как-то не очень в это верится).Remapping сбойного сектора не является "лечением", т.к сам сектор при этом никуда не девается), но зато, это позволяет использовать то, что лучше не использовать не то что для хранения данных, а вообще)))
Debian Squeeze 6.10 PPC/i486, Wheezy 7.8 PPC/i686, Jessie 8.2 i686

Оффлайн RPSVoloch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: ВОсстановление HDD
« Ответ #29 : 09 Июня 2015, 08:37:03 »
userok2008,
Прекрасно известно какой бэд есть не излечимый.
Просто в своё время все физически повреждённые харды были отсортированы и разобраны на запчасти.
Vasja555,
Мамка рэйды не поддерживает это 100% зато поддерживает Arc-1280ml
_angus_,
Конечно ерундой не спорю но если всё заработает и проработает больше 2 месяцев это уже достижение.

 

Страница сгенерирована за 0.023 секунд. Запросов: 24.