LINUX.ORG.RU
ФорумAdmin

Как бороться с бэдблоками?


0

0

Сабж. На вспомогательном винте высыпались бэдблоки. Заменить его пока возможности нет. Но его реально использовать под всякие логи, кеши, временные файлы... Если удастся как-то эти бедблоки скрыть. Так вот, как бы это сделать?

К тому же перед этим нужно ещё считать несколько сбойных файлов. То, что из них считается. А с этим проблема. Сбой в одном из них, на 600Мб, расположен в самом начале. И при попытке его скопировать, процесс обламывается с Input/output error. Как бы ошибку чтения сектора проигнорировать и читать что считается?

Ну и, наконец, что из Ext3 и ReiserFS (и то и то в системе стоит, диск сейчас в Ext3) устойчивее к такому делу? Не факт, что винт не будет сыпаться дальше, так что ценных данных на нём не будет, но хотелось бы пореже заниматься оживлением временных данных :)

В общем, проблема номер один - как пометить сбойные области в файловой системе?

★★★★★

Вопрос с созданием FS, вроде, отпадает. раскопал опцию -c для mke2fs и -B для mkreiserfs.

Но остаются впоросы с добавлением новых бедблоков к уже имеющейся FS без переразбивки и вопрос с копированием файла.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Так. Если кому-то на будущее понадобится - для спасения файла идеально подходит dd_rescue :)

emerge dd-rescue

или - http://www.garloff.de/kurt/linux/ddrescue/

Для проверки поверхности - опция -c в e2fsck.

А вот что для аналогичных целей у reiserfs используется?

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

fsck.reiserfs при нахождении bad-блока сразу говорит, что любые данные стоят дороже носителя, на котором они находятся и рекомендует купить новый жесткий диск :-)

AngryElf ★★★★★
()
Ответ на: комментарий от AngryElf

пиздес, саташный винт на 120 гигов стоит 480 гривен, а вы
всякое гавно юзаете. бюджетники?

anonymous
()

У меня была подобная фигня. Близко к началу диска образовались бэды, и простым mke2fs -c ничего не решалось, так как винт продолжал сыпаться. Теперь самое важное: сыпался он не весь, а только определенная область. Я запустил badblocks (там ключик есть, показывающий что сейчас проверяется, его включи) и сидел рядом с компом глядя на вывод badblocks (то есть делать вывод в файл и уходить от компа смысла нет) и слушая звуки проверяемого HDD. Когда началасть проблемная область (звучание HDD изменилось и скорость проверки сильно упала), записал корондашм на бумажке цифру показываемую badblocks. Дальше я его отрубил (как показывала практика, проблемную область, ~300 мегов он проходил за полчаса, а мне их повторно терять не хотелось). Дальше прибавляешь к месту записанному на бумажке 100 мегов (расчитаешь) и запускаешь badblocks оттуда (man badblocks, я сейчас в винде сижу). Если badblocks работает не иделально (низкая скорость, звуки от HDD), значит проблемная область доходит и до сюда. Прибавляешь еще 100 мегов и запускаешь badblocks тестить. Если он запускается и начинает все быстро и хорошо тестить, и так доходит до конца HDD без нахождения бэдов, без замедления скорости работы в некоторых местах (фиговый признак) и HDD при этом не издает временами левые звуки, то считай тебе повезло. Ты нашел проблемную область. Смотришь на бумажку, отнимаешь от цифры мегов 20 (для надежности), прибавляешь мегов 220 и получешь соответственно начало и конец проблемной области. Теперь, основываясь на этих данных, разбиваешь диск так, что бы эта область осталась пустой, то есть не содержала в себе партиции. (или можешь сделать там партицию, просто в качестве заглушки, сделай ее какого-нибудь левого типа (дабы потом случайно не воспользоваться) и не создавай файловой системы.

Вот, надеюсь все понятно...

Harliff ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.