Лечение жесткого диска с бэд блоками bad blocks испорченные блоки (Решение)

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

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

Смотрим полный список накопителей с томами:
fdisk -l

Для примера проверю том /dev/sdf1 (укажите свой sda1 или sdb2, ... и т.п.)

Чтобы рассеять сомнение, тот ли выбран диск, можно проверить дополнительно модель хард диска (внимательно, вместо sdf1 в команде написано sdf):
hdparm -i /dev/sdf | grep Model

Если том примонтирован, то перед проверкой отмонтировать:
umount /dev/sdf1

Проверка на бэдблоки:
badblocks /dev/sdf1 > /root/badblock
,где /root/badblock - файлик, в который записываются номера убитых блоков.

С параметром -s (подсказал mft) будет в % отображаться прогресс выполнения задания:
badblocks -s /dev/sdf1 > /root/badblock

Пометка бэд блоков (в дальнейшем помеченные блоки будут игнорироваться системой):
e2fsck -l /root/badblock /dev/sdf1
Плохие блоки помечены, с диском можно работать.

Аналогичную процедуру желательно выполнять после форматирования новых дисков.

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

+4
reddog - 10 Сентябрь, 2010 - 01:32
Изображение пользователя reddog.

sawa тема на пять, очень полезная, пускай сам не сталкивался, но уверен,что рано или поздно такое может случиться! Запись на отлично! ;) Плюсик не получается дать :(

+2
inetstar - 10 Сентябрь, 2010 - 13:59

А разве
e2fsck -ct /dev/sdf1
не сделает то же самое?

0
sawa - 10 Сентябрь, 2010 - 16:47
Изображение пользователя sawa.

Можно и так. Дело вкуса.

"Привычка свыше нам дана..."©А.С.Пушкин

0
AiNo07 - 26 Декабрь, 2011 - 14:14
Изображение пользователя AiNo07.

Странно, но при вводе команды

Пишет отказано в доступе, диск отмонтировал
0
sawa - 27 Декабрь, 2011 - 23:14
Изображение пользователя sawa.

Почувствуй разницу: badblocks и badbloks
Вероятно /dev/sda5 это раздел подкачки (swap) и обсуждаемый метод лечения к нему не подойдет.

0
AiNo07 - 29 Декабрь, 2011 - 11:40
Изображение пользователя AiNo07.

Ой, ошибочка в написании, прошу прощения :)
Это не раздел подкачки, Я все разделы на своём рабочем компе как родных знаю, это ntfs раздел, примонтирован как /media

В чём дело-то?
Вот теперь что:

+2
Flameflower - 29 Декабрь, 2011 - 17:38
Изображение пользователя Flameflower.

По русски же написано.
Пытаешься записать в /root а прав у тебя нет.
Либо всё делаешь от рута, либо лог пишешь в другой каталок.

+2
Platon - 18 Август, 2014 - 11:01
Изображение пользователя Platon.

sudo su
badblocks -s /dev/sdf1 > /root/badblock
e2fsck -l /root/badblock /dev/sdf1
exit

0
Flameflower - 18 Август, 2014 - 11:56
Изображение пользователя Flameflower.

А мне то это зачем? :)

0
Platon - 18 Август, 2014 - 12:08
Изображение пользователя Platon.

Коллега, я просто вас дополнил(примером выполнения от рута)

0
Schaman - 22 Сентябрь, 2016 - 08:22
Изображение пользователя Schaman.

а еще там должен быть лог

0
LinX - 10 Сентябрь, 2010 - 18:28
Изображение пользователя LinX.

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

0
sawa - 10 Сентябрь, 2010 - 18:45
Изображение пользователя sawa.

Проценты выполнения не пишет. Наблюдаю по активности индикатора обращения к диску.
По завершении выйдет приглашение командной строки.

+1
Fatalist - 10 Сентябрь, 2010 - 19:23
Изображение пользователя Fatalist.

Блин, где-то видел как делали строку, отобращающую процесс выполнения задачи. С ходу нагуглить не удалось, но я ещё постараюсь.

0
sawa - 10 Сентябрь, 2010 - 21:04
Изображение пользователя sawa.

Постарайся - заплюсую.

0
Гость - 17 Сентябрь, 2010 - 12:45

pv что ли?

0
Гость - 22 Декабрь, 2013 - 20:23

-s

+12
mft - 10 Сентябрь, 2010 - 19:34

Вообще-то пишет и e2fsck и badblocks. В манах всё написано! Для e2fsck параметр -t:
e2fsck -ct /dev/sdf1

Для badblocks параметр -s:
badblocks -s /dev/sdf1 > /root/badblock

Ну и e2fsck -ct /dev/sdf1 удобнее. К тому же e2fsck использует badblocks.

0
LinX - 10 Сентябрь, 2010 - 19:38
Изображение пользователя LinX.

Работает, спасибо :)

0
sawa - 10 Сентябрь, 2010 - 21:37
Изображение пользователя sawa.

+1
Спасибо, добавил про -s.

0
beginer - 10 Сентябрь, 2010 - 20:50

Еще бы хотелось добавить, что у программы badblocks много параметров улучающих сканирование. Читайте man badblocs, найдете много интресного.

0
sawa - 10 Сентябрь, 2010 - 21:23
Изображение пользователя sawa.

Было бы неплохо после этой команды:
badblocks /dev/sdf1 > /root/badblock
но перед этой (пометкой плохих блоков)
e2fsck -l /root/batblock /dev/sdf1
узнать какие файлы размещаются в перечисленных в /root/badblock блоках.
Подскажете как?

0
LinX - 11 Сентябрь, 2010 - 19:08
Изображение пользователя LinX.

Скажите, то что 60-гиговый диск проверяется уже 24 часа и выполнено всего 25.01%, это нормально? Возможно как-нибудь ускорить этот процесс?

0
sawa - 11 Сентябрь, 2010 - 21:54
Изображение пользователя sawa.

Это плохо. Либо много бэд блоков, либо сам по себе медленный хард.
80 гиг проверял около получаса.

+1
nemon - 13 Сентябрь, 2010 - 01:20

5 нюбских копеек: может стоит указать, что всё волшебство делается через sudo?

0
sawa - 13 Сентябрь, 2010 - 17:41
Изображение пользователя sawa.

А я знал. Кто-нибудь догадается.

0
Гость - 17 Сентябрь, 2010 - 04:46

я обычно сразу диск форматирую:
man mkfs.ext3
-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 formatting it,
as mke2fs will automatically pass the correct parameters to the badblocks program.

0
Гость - 17 Сентябрь, 2010 - 09:29

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

0
Гость - 17 Сентябрь, 2010 - 14:54

Ну и при чем тут "лечение жесткого диска"? Бэды на нем как были так и остались!!! Если уж так, то назовите статью, например, "как исключить использование бэд блоков файловой системой". Лечите-то Вы, по сути, файловую систему!
Для лечения жесткого диска нужно использовать либо специализированные программы, например MHDD или Victoria, либо аппаратный комплекс типа PC3000. Либо, если совсем уж ни того, ни другого нет, то можно попробовать запись во все секторы диска нулей (лучше, конечно, случайных чисел, но долго генерируются).Например, с помощью dd. Не забудьте перед этим информацию с диска списать куда-нибудь, т.к. информация при этой операции, естественно, сотрется.

0
Гость - 17 Сентябрь, 2010 - 17:06

А если ж... все таки произошла то минимизировать потери поможет утилитка gnu ddrescue. Она довольно упорно пытается вычитать все что читается и минимизирует потери. Вынул с засбоившего винча практически целый образ оной с минимальными разрушениями.

0
Гость - 18 Сентябрь, 2010 - 07:49

примечание
badblocks и fsck должный запускаться с одинаковым параметром -b (размер блока)

0
DarkneSS - 29 Сентябрь, 2010 - 11:28
Изображение пользователя DarkneSS.

Может, и для флешки в fat32 найдётся нечто подобное?

+2
mft - 29 Сентябрь, 2010 - 12:55

Думаю, как-то так:
sudo fsck.vfat -atl /dev/sdb1

0
Гость - 17 Август, 2014 - 21:00

эта команда закроет бэды от дальнейшего чтения? Или просто покажет, что они есть?

0
dexif - 8 Октябрь, 2010 - 18:41
Изображение пользователя dexif.

как вариант попробовать затереть поверхность :)
dd if=/dev/zero of=/dev/sdX
Внимание!!! Затирается полностью с информацией о разделах!!!
Я снимаю с себя ответственность за использование команды :)

+1
sawa - 8 Октябрь, 2010 - 22:02
Изображение пользователя sawa.

Интуиция подсказывает что проблемы это не снимет.
Разве что при включенном смарте зациклить затирание на пару недель.

0
dexif - 8 Октябрь, 2010 - 23:01
Изображение пользователя dexif.

зациклить затирание... хм... боюсь за пару недель он затрётся в пыль :)
Не ну яш не спорю ваш первоначальный вариант превосходен... но попробовать "вдруг получится" хоть парочку восстановить - помойму стоит :)
А вообще если крошится веник - лучше всего купить новый... так меньше гемора будет...:)

0
Гость - 23 Ноябрь, 2010 - 00:49

Уронил юсб винт в рабочем состоянии. Появилось порядка 8 блоков сбойных(бед и не только) секторов с ххххххххх по ууууууууу. mhdd и виктория не дали желаемого результата. Вопрос, можно ли пометить от х до у сектора как сбойные(Bad) чтоб головка туда даже и не запрыгивала и винт не подвешивал бы систему. Сходу нагуглить таких программок не сумел. Спасибо

0
sawa - 24 Ноябрь, 2010 - 01:28
Изображение пользователя sawa.

Как-то пробовал USB хард Викторией подлечить - не видит она смарт при подключении через USB. Благо диск можно было из коробки извлечь и подключить через SATA. Вот тогда и вылечилось всё.

0
Гость - 24 Ноябрь, 2010 - 03:23

именно напрямую к sata и подрублен. Бедов проремапило оч много, теперь при загрузке компа, комп ругается на то что винт пора на свалку ... чувствую что придётся на 2 диска разбивать, и беды в не размеченной области оставлять, или в ремонт :(

0
garri671 - 6 Февраль, 2012 - 07:41

как вариант попробовать затереть поверхность :)
dd if=/dev/zero of=/dev/sdX

Я использую для затирки
shred -zvn1 /dev/sdX

0
Гость - 15 Сентябрь, 2012 - 11:36

У меня бед блоки на swap. e2fsck не работает со своп. Что делать?

0
DarkneSS - 15 Сентябрь, 2012 - 14:32
Изображение пользователя DarkneSS.

Переформатировать, отключив или с другой системы. Или у вас есть ценные данные там?)

0
Xenomorph - 15 Сентябрь, 2012 - 19:48
Изображение пользователя Xenomorph.

mkswap -c /dev/device

0
Chibiko - 4 Ноябрь, 2012 - 09:56
Изображение пользователя Chibiko.

Вот такой вопрос - а если 80% HDD - бэды, размер его 750 гигиков, что делать?

Но восстановить надо... Не инфу, а хотя-бы работоспособность...

0
Vlad_W_1999 - 4 Ноябрь, 2012 - 13:02

Если 80% бэды, то это катастрофа. Либо менять по гарантии (если таковая есть), либо выкидывать.

В теории звучит примерно так: есть бэды софтверные и есть хардверные. Первые лечатся (что логично) разнообразными способами — вплоть до низкоуровневого форматирования. Вторые не лечатся никак. Пока не разберёшься с тем, что у тебя за бэды — ничего сказать нельзя.

Так что у тебя за бэды и как были обнаружены?

0
Chibiko - 4 Ноябрь, 2012 - 13:07
Изображение пользователя Chibiko.

Жёсткий в видеорегистраторе на 16 камер 8) О(цензура)ший скачёк электроэнергии. Видеорегистратор в дауне, жёсткий вот в таком вот состоянии...

Файл /root/badblock over 160 mb, и я не до конца проводил тестирование... В общем я хз что делать дальше.. затереть всё нуликами? Провериться в mhdd? Бьюсь с жёстким вторую неделю...

0
SD - 4 Ноябрь, 2012 - 13:55

могла полететь электроника диска и софт, не имея возможности пробиться, будет помечать секторы бэдами (виртуально).
если всё же электроника диска впорядке, то MHDD.
настоящее низкоуровневое форматирование на современных дисках не возможно (даже в сервисе). оно делается один раз на заводе-изготовителе.

0
Vlad_W_1999 - 4 Ноябрь, 2012 - 15:21

Естественно ставить на стационар и гонять mhdd. Но если это напряжение, то могло полететь и физически. Тогда только менять.

+1
Chibiko - 4 Ноябрь, 2012 - 17:10
Изображение пользователя Chibiko.

оке, возьму тачку и на недельку в MHDD погоняю.
Заодно testdisk'ом проверю. Просто всё никак руки не дойдут О_о
Спасибо всем за проявленную помощь. 8) И мысленную поддержку 8)

+1
Vlad_W_1999 - 4 Ноябрь, 2012 - 20:27

Будем надеяться на лучше! Удачи тебе.

+2
Platon - 18 Август, 2014 - 11:19
Изображение пользователя Platon.

sudo hdparm -i /dev/sdb | grep Model
SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
HDIO_GET_IDENTITY failed: Invalid argument

это где инвалид аргумент в синтаксисе команды(подключен системный sda и внешний sdb) или в ID диска?

и такой вопрос, в случае внешнего диска, возможно badblock - файлик, в который записываются номера убитых блоков стоит перенести на сам диск, ведь другие внешние диски будут примонтированны как sdb, но к badblock не относящиеся или в файле будет UID именно проблемного диска?

+1
Richard - 8 Июль, 2015 - 05:47

Принесли ноутбучный винт, на нем сейчас стоит W8.1 и KU14.04 через программу Диски (GNOME Disc Utility) показывает, что диск исправен, но имеет 10 Badblock, предыдущий владелец лечил его Victoria и HDD Regenerator - на данный момент HDD размечен, так чтобы зона с бэдами была в /swap - HDD 250 GB сектора до 180 GB имеют различные замедления, но без бэдов, после идет полоска с бэдами, и вновь чисто, поэтому разметили так: 180GB-NTFS(W8.1) 6GB - /swap, 20GB - ext4 под / и 30GB - ext4 /home

Я подключаю к ноуту внешний HDD со своим HDD(из моего ноута с KU14.04) гружусь с него, какие команды мне вводить, чтобы файл с Badblocks сохранился не на внешнем(моем здоровом HDD), а на внутреннем HDD(c бэдами)?
здоровый диск с которого и гружусь sdb, соответственно диск который буду лечить sda:

sudo umount /dev/sda1
а вот дальше как? Если введу sudo su
badblocks -s /dev/sda1 > /root/badblock
создаст файл в рутовой папке битого диска?
Далее
e2fsck -l /root/badblock /dev/sda1
И вот эту команду вводить e2fsck -ct /dev/sda1 после или вместо e2fsck -l /root/badblock /dev/sda1

exit

На sda1 - ntfs ,возможно имеет смысл поменять назначение на расширенный sda2 или sda5 (swap) либо на sda6 и sda7 / и /home

Сделал проверку badblocks -s /dev/sda1 > /root/badblock (0/0/0 Errors)
badblocks -s /dev/sda2 > /root/badblock мгновенно завершился - Checking done
badblocks -s /dev/sda6 > /root/badblock (0/0/0 Errors)
badblocks -s /dev/sda7 > /root/badblock (0/0/0 Errors)
badblocks -s /dev/sda5 > /root/badblock (450/0/0 Errors) - 450 Ошибок!
Делаю:
e2fsck -ct /dev/sda5
e2fsck 1.42.9 (4-Feb-2014)
ext2fs_open2: Bad magic number in super-block
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block при попытке открыть /dev/sda5

The superблок could not be read or does not describe a valid ext2/ext3/ext4
ФС.  If the устройство is valid and it really contains an ext2/ext3/ext4
ФС (<b>and not swap</b> or ufs or something else), then the superблок
is corrupt, and you might try running e2fsck with an alternate superблок:
    e2fsck -b 8193 <устройство>
or
    e2fsck -b 32768 <устройство>

Но swap не имеет Super-блоков и соответственно нечего метить...
Главный вопрос, что с ним делать?

+1
DarkneSS - 8 Июль, 2015 - 06:48
Изображение пользователя DarkneSS.

Как вариант, уменьшить раздел, чтобы битые попали на неразмеченное пространство.

+1
Richard - 8 Июль, 2015 - 18:52

Я переформатировал раздел swap в три прогона и создал не монтируемый раздел с ext4 sda5 стал именоваться sda7 в результате слетел Grub, переустановил KU,поскольку инструкция на wiki не сработала(Unknown filesistem)
Со вновь установленной ОС все 3 раздела (sda 5. sda6, sda7) прогнал на бэды(badblocks -s /dev/sda) и что удивительно все 3 с 0/0/0 Errors, хотя Дисковая утилита пишет, что "Диск исправен" и тут же "92 поврежденных сектора, пороговое значение не превышено"

+1
DarkneSS - 8 Июль, 2015 - 21:18
Изображение пользователя DarkneSS.

Может, она диск проверяет, а не разделы смонтированные?

+1
Гость - 10 Июль, 2015 - 10:46

Есть винт с бедами, мучаю его ради учебы.
Время от времени делал ему
e2fsck -c /dev/sdf1

Но со временем, при росте кол-ва бедов процесс стал слижком длинным
Вычитал что можно делать

Снимаю в файл список старых бедов
dumpe2fs -b > oldbadblocks.txt /dev/sdf1

Проверяю сектора на наличие новых бедов, за исключением уже промаркированных
badblocks -sv -b 512 -i oldbadblocks.txt -o badblocks.txt /dev/sdf1

Добавляю в список новые
e2fsck -B 512 -l badblocks.txt /dev/sdf1

И вот в конце происходит трабл

dumpe2fs 1.42.12 (29-Aug-2014)
Проверяем блоки с 0 по 981483519
Проверяем наличие ошибочных блоков: выполнено
Проход завершон, найдено 61 поврежденных блоков. (61/0/0 ошибок)
e2fsck 1.42.12 (29-Aug-2014)
Ошибочный блок 498194608 вне доступного диапазона; проигнорировано.

И так 61 раз

Вот в чем проблема?
Кто врет, бедблокс или e2fsck

0
Platon - 18 Июль, 2015 - 09:04
Изображение пользователя Platon.

Посмотри в Kparted вывод журнала может проблемы с геометрией диска, был у меня диск с проблемной геометрией, тоже писал "вне доступного диапазона"

0
Гость - 18 Июнь, 2016 - 08:44

Винт на 500 Гб. Проверяю уже 10 часов, каждые 4 секунды собщения вида
848500% done, 10:11:02 elapsed. (8485/0/0 errors)
848600% done, 10:11:06 elapsed. (8486/0/0 errors)
848700% done, 10:11:09 elapsed. (8487/0/0 errors)
848800% done, 10:11:13 elapsed. (8488/0/0 errors)
848900% done, 10:11:16 elapsed. (8489/0/0 errors)
849000% done, 10:11:20 elapsed. (8490/0/0 errors)
849100% done, 10:11:23 elapsed. (8491/0/0 errors)

Сообщения кажутся мне странными... Кто знает, что происходит?

0
dyug - 18 Июнь, 2016 - 19:19

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

0
Гость - 13 Август, 2016 - 11:46

Как быть с корневым разделом? Если отметить эти блоки из другой системы, то только другая система будет их игнорить или эта метка ставится в раздел и эти блоки игнорят все системы?

0
Гость - 23 Январь, 2017 - 18:13

Вот это выдало на все бэды
Битый блок xxxxxxxxx вне досягаемости, пропущен
при использовании команды
e2fsck -l /root/badblock /dev/sdd1

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

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