LINUX.ORG.RU
решено ФорумTalks

Опять Bad Blocks


0

0

Когда-то мой жёсткий диск на 40 Mb сломался, и вместо него был диск на 20 Mb. А его надо было останавливать программой парковщиком, потому что иначе головка не войдёт в парковочную зону жёсткого диска, и на этом месте образуется Bad Block. Но Norton Disk Doctor помечал это место, и оно больше не использовалось. Тогда Bad Block'и были обычным делом и не предвещали скорой кончины HDD.

После этого жёсткого диска был на 2 Gb и он парковал головку автоматически - я снова забыл про программу парковщик, мог и выключать питание прямо с запущенным Norton Commander. Правда, в Windows 95 появилось «Завершение работы», и снова манипуляции.

Прошло много лет, у меня появился RAID-массив из двух дисков по 80 Gb. Но RAID не поддерживался Linux (в ядре 2.6.10 поддержка появилась), я купил новый, на 160 Gb, специально для Linux. А потом RAID сломался из-за глупой ошибки Windows и меня. Отключил, чтобы потом починить.

И этот диск на 160 гигабайтов до сих пор живой! Купил HDD на 500 Gb, и что вы думаете... Bad Blocks! Я тогда не располагал большим количеством денег и времени, а когда купил жёсткий диск на 1 Tb, я не просто перенёс всё с помощью cp -ax - я скурпулёзно проверил все данные жёстких дисков на 160 и на 500 Gb, и синхронизировал их. Если на диске 160 Gb нашлись данные, которые есть на 500 Gb, я использовал данные из 160 Gb. Например, My Music.rar, 25-гигабайтный архив без сжатия, который я распаковал на 500 Gb HDD. Я там потом менял всё, но раз такое дело, воспользовался архивом и что изменилось, скачал заново.

И вот опять! Bad Block'и на диске 1 Tb. Вчера SuSE включился и сказал об этом... Причиной могло быть это, или то, что я недавно выносил компьютер на 10-градусный мороз, чтобы поразгонять. Я хотел создать тему и поспрашивать мненеи, а потом понял, что он перегревается. Сам он не греется, но последние 2 месяца он расположен так, что из разогнанной и задействованной в режиме 24 часа в сутки видеокарты на него дует горячий воздух. Наверное, это и было причиной. Исправил.

Вопрос: как узнать, на каких местах находятся Bad Blocks? Какие файлы поражены ими? В прошлый раз я просто сравнил файлы двух жёстких дисков и синхронизировал. В этот раз я хочу просто узнать название файлов, которые пострадали, и не тратить много времени. Буду покупать жёсткий диск на 1,5 Tb.

как узнать, на каких местах находятся Bad Blocks

Так и называется программа - badblocks. После того как через нее прогонишь диск выдает подробный отчет что где подбито.

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

Только вот насчет как определить какие файлы подбиты - хз.

Siado ★★★★★
()

badblocks показывает битые блоки, а debugfs может показать, какие на том месте файлы... а вообще, простой fsck вроде это всё умеет. Посмотри ман.

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

Ага, и прощай нормальное детство :)

По теме: badblocks выдаст номера плохих секторов, а дальше можно попытаться утилитами ФС найти файлы которым эти сектора принадлежат.

thrall
()

Купил вот двухтерабайтник

Device Model:     Hitachi HDS723020BLA642

После неполных двух месяцев пользования:

  5 Reallocated_Sector_Ct   0x0033   001   001   005    Pre-fail  Always   FAILING_NOW 2001
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       1394

Иногда пропадает, не определяется.
Представляю «веселуху», когда отнесу в гарантейку.
С теперешними-то ценами их и так малое желание отдавать вместо этого гуанища новый девайс стало просто микроскопическим.

Myp3ik ★★
()

Xenius, thrall, спасибо. Прямо сейчас освобождаю место на Flash-диске, подаренной на день рождения, чтобы всё тем же cp -ax перенести туда систему и действовать из неё (это лишнее, но ощущение серьёзности ситуации придаёт). Программа просканирует весь /dev/sda, или только разделы? А то у меня несколько диструбивов и ещё Windows.

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

Не думаю что будут проблемы. Это работники, у них зарплата.

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

Возможно я так поступлю со старым 500-гигабайтником, спасибо за информацию.

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

Позавчера поменял по гарантии 2,5 винт на 250, правда он совсем сдох, покупал более, чем в два раза, дешевле, чем он сейчас стоит.

Yareg ★★★
()

Вопрос: как узнать, на каких местах находятся Bad Blocks?

ну как узнать - уже подсказали. Добавлю, что список можно сохранить, а потом скормить его mkfs.

-l filename Read the bad blocks list from filename. Note that the block numbers in the bad block list must be generated using the same block size as used by mke2fs. As a result, the -c option to mke2fs is a much simpler and less error-prone method of checking a disk for bad blocks before format- ting it, as mke2fs will automatically pass the correct parameters to the badblocks program.

Вот только на практике это не решение - современные диски сами реаллоцируют ББ, и если они таки появляются, это значит, что диск можно выкинуть.

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

Позавчера поменял по гарантии 2,5 винт на 250

То ли появились винты на 250 Тб, то ли это не гарантия, то ли у тебя всё плохо с математикой.

iBliss
()
Ответ на: комментарий от ZenitharChampion

Программа просканирует весь /dev/sda, или только разделы? А то у меня несколько диструбивов и ещё Windows.

badblocks может просканировать весь, если так ему скажешь, кстати, советую запускать с ключём -s или -v и через badblocks ... | tee blocklist

Что бы видеть прогресс и что бы записать список блоков в файл

А вот debugfs только разделы ext*. Другие разделы — хз чем.

Я бы такой ерундой не заморачивался и делал бы просто fsck, она автоматом вроде повреждённые файлы удалит и список выведет.

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

Сделав LD_PRELOAD=libastral.so, могу сказать, что подразумевался HDD 2.5" на 250 Гб.

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

не, сама fsck не умеет:

-c This option causes e2fsck to use badblocks(8) program to do a read-only scan of the device in order to find any bad blocks. If any bad blocks are found, they are added to the bad block inode to prevent them from being allocated to a file or directory. If this option is specified twice, then the bad block scan will be done using a non-destructive read-write test.

drBatty ★★
()

Остальное железо(а именно БП) за все это время хоть менял ? :)

an-ha ★★
()

Какой производитель? У меня Seagate постоянно сыплются, а вот WD и через пять лет бодрячком держатся.

reserved
()

Полчаса назад сломался Flash-диск Corsair на 16 Gb. :-( А я всего лишь вытащил её на 20-градусный мороз и вставил в компьютер. Kingston вон работает, у меня сейчас с него система загружена.

Я компилил db 4.8 и на этапе

cd obj && ../debian/runtests.tclsh || true
Modified test suite run started at: 06:56 12/14/11
Berkeley DB 4.8.30: (April  9, 2010)
Running environment tests

случилась ошибка ввода/вывода, два раздела отмонтировались и вылезло окно «вставлен новый диск». Потом были ошибки-ошибки, и всё. К счастью, есть резервная копия, и она не на сабже :-)

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

Seagate. А в прошлый раз то же самое было с Samsung. У меня много HDD, есть и Samsung и Seagate.

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

У меня вопрос, как надо запускать команду debugfs, чтобы он показал, какие на месте битого блока файлы.

Лучше просто fsck -c наверное, только не забыть лог сохранить в файл (например с помощью tee). Он это всё вроде как пишет. А если хочешь через debugfs, то попробуй читать маны... ещё не забывай, что badblocks по дефолту юзает блоки в 1кб

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

Ну нееет... Я уже полную проверку сделал и список Bad Block-ов получил. Мне кажется, debugfs это всё-таки не умеет. Но что-то же умеет, поищу сам.

ZenitharChampion ★★★★★
() автор топика

http://rus-linux.net/lib.php?name=/MyLDP/file-sys/ext3/ext3fs-6.html

Третий способ установить номера блоков, принадлежащих файлу, использовать программу ioctl, из набора FIBMAP, хотя она работает только с обычными файлами, а не с директориями.

А как сделать наоборот? Чтобы по блоку показывался файл, а не наоборот?

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

он не школота, он знаешь ли...

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

вот ТС - то же самое, что тот мой одноклассник, в психиатрии есть термин «резонёрство», у ТС, конечно, не клиника, но что-то близкое

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

Куча якобы «обидных» слов (школота, резонёрство) только из-за того, что я публично высказал нелюбовь к убунте. Реакция примерно как в подъезде с гопотой от фразы «поцаны, я не слушаю рэп, я люблю Арию».

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

Куча якобы «обидных» слов (школота, резонёрство) только из-за того, что я публично высказал нелюбовь к убунте

э нет, вот эти свои слова: «у ТС, конечно, не клиника» я возьму назад, тут натуральная клиника :-D

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

> тут натуральная клиника :-D

А-а-а, он не обиделся на школоту!!!!

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

я сюда из трекера зашел

серьезно, разве стоит вместо описания проблемы четко и лаконично, расписывать на 5 абзацев свою биографию с ненужными фактами?

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

ты не понял, чувак! ТС уверен, что его борцунство с диктатурой убунты делает его Уникальной Личностью, поэтому все должны просто таять и млеть, читая обрывки его биографии!

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

резонёрство

супер, оказывается этому расстройству есть нормальное название

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

10 лет назад у меня был сотовый телефон алкател, блаблабла

5 лет назад была нокия 8800, блаблабла

3 года назад айфон, блаблабла

год назад купил себе андроид 1.6

вопрос: как порутать htc wildfire, который я купил вчера

все, кто против моего поста - сурковская пропаганда против только из-за того, что я публично высказал нелюбовь к линуксу

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

В прошлый раз я ничего такого не делал, и просто старался скопировать как можно меньше с пострадавшего жёсткого диска, так как у меня был третий жёсткий диск для бэкапов. Сейчас у меня его нет. Я хочу узнать, какой файл попал в зону поражения Bad Block-ов, чтобы перескачать, поискать в бэкапах его...

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

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

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

угу. И качать придётся только недостающие куски.

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

как надо запускать команду debugfs, чтобы он показал, какие на месте битого блока файлы.

Ладно, раз уж ты не осилил прочитать man

# debugfs /dev/sda2 -R 'icheck 123452'
debugfs 1.41.14 (22-Dec-2010)
Block	Inode number
123452	11771
# find / -xdev -inum 11771
/usr/share/mime/application/x-vnd.kde.kugar.mixed.xml
# ls -i /usr/share/mime/application/x-vnd.kde.kugar.mixed.xml
11771 /usr/share/mime/application/x-vnd.kde.kugar.mixed.xml

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

Мне кажется, debugfs это всё-таки не умеет.

Если твой debugfs это не умеет, у тебя неправильный debugfs...
Нет, правда, с чего ты взял, что не умеет?

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

У меня вопрос, как надо запускать команду debugfs, чтобы он показал, какие на месте битого блока файлы.

# debugfs /dev/sda2 -R 'ncheck 11771'
debugfs 1.41.14 (22-Dec-2010)
Inode	Pathname
11771	/usr/share/mime/application/x-vnd.kde.kugar.mixed.xml

Кстати, найти имя файла ещё так можно, кажется, быстрей find, но может дело в кешировании.

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

У меня вопрос, как надо запускать команду debugfs, чтобы он показал, какие на месте битого блока файлы.

Плюс, предупреждаю, что номера блоков придётся пересчитывать, если debugfs использует другой размер блока, а не тот, который был в badblocks

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