Бэдблоки, (почти)умерший хард и как мне удалось разобраться со всем этим делом.

Изображение пользователя Xenomorph.

Итак, суть этой печальной истории в том, что ВНЕЗАПНО мой жесткий диск начал издеваться надо мной, когда я хотел поставить LibreOffice. После того, как система дважды перемонтировала партицию в readonly, я начал подозревать неладное. Глянул dmesg, а там! Мать моя женщина!

Ну общую суть вы, думаю поняли - покупай новый жесткий диск@копируй разделы со старого.
Но! Проблема еще была в том, что некоторые разделы УЖЕ не монтировались, по причине смерти коррупции файловой системы. /me подумал-подумал и решил, а не попробовать ли как-то это дело замять, тем более, новый жесткий пока не входит в планы первоочерёдных покупок.
Гуугле мне подсказал парочку хороших решений, чем я незамедлительно и воспользовался.

Bad block HOWTO for smartmontools

Удивительная статья, которая мне очень сильно помогла. Для тех, кто не в ладах с языком международного общения, могу адаптировать статью, хотите - отпишитесь в комментариях.
Итак, разбор полётов, или что я сделал.
К счастью, у меня завалялась таблица разделов диска, сделанная fdisk -ul На самом деле, у меня было 10 разделов, но те три, которых здесь нет не были столь важны, как sda3+sda4(Зарезервированы под FreeBSDDragonFlyBSD, sda1(загрузочный же, ёпта!) sda7+sda5(линуксовые разделы), ну и sda6(онимэ, музыка, прочий хлам)
Первым делом, был проведён тест, на то, какие партиции умерли, а какие еще живы. К моей радости, sda1 и sda6 остались живы, но о них попозже. все остальные монтироваться НЕ ЖЕЛАЛИ, а fsck завершался с ошибкой.
я запустил smartctl -t long /dev/sda и ушел на два часа. Через пару часов, возвратившись, я увидел сию картину smartctl -l selftest /dev/sda
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       90%      8962         712567177
# 2  Short offline       Completed without error       00%      5188         -
# 3  Extended offline    Aborted by host               90%      5188         -

Как видите, первая ошибка проявилась в блоке 712567177
Запускаем badblocks: badblocks -s -v -b 512 /dev/sda  712567277 712567077#-s показывает прогресс, -v увеличивает информативность, -b 512 - указывается размер блока, в данном случае - 512 байт, дальше указываем КОНЕЧНЫЙ и потом уже НАЧАЛЬНЫЙ блок, которые я выбрал из окружения в +-100 блоков к ошибочному.
И правда, выскакивают номера бэдблоков. Провел щадящий read-write тест (опция -n) - бэдблоки тоже продолжают появдяться. Далее я сделал то, что НЕ РЕКОММЕНДУЮ делать другим без полного понимания того, ЧТО они делают. badblocks -s -w -v -b 512 /dev/sda  712567277 712567077#-w - write-mode, заполнение определенными паттернами, МОЖЕТ ПОВРЕДИТЬ ДАННЫЕ. Что удивительно, после этого бэдблоки исчезли. Проведя еще несколько тестов smartctl, теперь уже с опцией -t short, я вычислил остальные бэдблоки и провел аналогичные операции. Теперь
smartctl -l selftest -d ata /dev/sda
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      8972         -
# 2  Extended offline    Completed: read failure       90%      8962         712567177
# 3  Short offline       Completed without error       00%      5188         -
# 4  Extended offline    Aborted by host               90%      5188         -

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

Теперь о минусах такого способа. После всех манипуляций, fdisk -ul /dev/sda показал мне ПОЛНОСТЬЮ голый диск. Запускаем testdisk, находим разделы. К сожалению, sda6 не был найден. Ну ладно, мы не боимся этого. fdisk -u /dev/sda, дальше жмём n/*новый раздел*/ дальше вводим какой тип раздела, logical или primary, потом вводим начало и конец сектора/*ну недаром же у меня была таблица разделов?*/, записываем таблицу разделов - w и выходим из fdisk -q.
пишем partprobe, чтобы ядро узнало о новом разделе, вуаля - раздел появился и он полностью жив.
Итак, любые вопросы, предложения и замечания буду рад прочитать в комментариях.

Комментарии (6)

0
Гость - 13 Январь, 2011 - 06:06

Спасибо, полезно! Пойду экспериментировать со старым хардом.

0
Fatalist - 14 Январь, 2011 - 06:04
Изображение пользователя Fatalist.

Молодца! Но семь разделов на одном жёстком... за что его так?

0
Kombala - 14 Январь, 2011 - 07:35
Изображение пользователя Kombala.

Вот так и выявляются те, кто невнимательно читал текст: ^_^
На самом деле, у меня было 10 разделов, но те три, которых здесь нет не были столь важны, как sda3+sda4

+1
Гость - 20 Май, 2011 - 03:51

Автор не указал какая у него материнская плата. Прежде чем грешить на винт (который легко проверить, но только на другом, заведомо исправном ПК с помощью программы MHDD) нужно было ее посмотреть на предмет галюцинаций контроллера sata hdd, которыми страдают некоторые производители.

0
kDeviator - 29 Декабрь, 2012 - 15:39
Изображение пользователя kDeviator.

Согласен с вами, господин посол, продолжайте пожалуйста...

У меня была аналогичная беда, но я выяснил TRUE'шную причину BAD'ности кластеров.
Вноваты производители винчей. Плата контактирует с гермоблоком+температура=окисление.

Короче, отвинтил я плату с винча, а с внутренней стороны все зелененькое, медно-купороз'ненькое :)
Улыбнуло...
Протер водочкой, затем принял внутрь "за успех", и...
Аллах акбар, винч перестал хрустеть.

Как бы там нибыло, а винт я все равно заменил.
Мне нервы дешевле двух килорублей, тем более, что знаем "винч вертится, значит довортится когда-нибудь".

P.S: для протирки использовалась водка без добавок - только спирт+вода.

P.P.S: не повторять до тех пор, пока не снимите данные с винча! Снятие платы может разгермитизировать его!

0
Xenomorph - 29 Декабрь, 2012 - 16:06
Изображение пользователя Xenomorph.

Вот, спасибо что напомнили о теме. На HDD я зря плохо думал, хотя от этого мне легче не стало тогда ;)

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

Поменял SATAшный кабель - первое время помогло, опять те же симптомы.

Я уже думал на мамку грешить, но потом оказалось, что проблема была в плохом контакте переходника питания, контакты окислились и питания диску стало не хватать. Никогда бы не подумал, но замена БП на другой, на 100 ватт мощнее и(или) замена переходника питания решили проблему.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры