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

Изображение пользователя 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 ватт мощнее и(или) замена переходника питания решили проблему.

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