Пометка бэд блоков на диске не панацея, но позволит какое-то время диску работать. По опыту работы: если диск посыпался (появились не читаемые блоки), то лучшее лечение - как можно быстрее скопировать доступную информацию на новый диск. Если нового диска нет, то лечим как описано далее.
Смотрим полный список накопителей с томами:
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)
sawa тема на пять, очень полезная, пускай сам не сталкивался, но уверен,что рано или поздно такое может случиться! Запись на отлично! ;) Плюсик не получается дать :(
А разве
e2fsck -ct /dev/sdf1
не сделает то же самое?
Можно и так. Дело вкуса.
"Привычка свыше нам дана..."©А.С.Пушкин
Почувствуй разницу: badblocks и badbloks
Вероятно /dev/sda5 это раздел подкачки (swap) и обсуждаемый метод лечения к нему не подойдет.
По русски же написано.
Пытаешься записать в /root а прав у тебя нет.
Либо всё делаешь от рута, либо лог пишешь в другой каталок.
sudo su
badblocks -s /dev/sdf1 > /root/badblock
e2fsck -l /root/badblock /dev/sdf1
exit
А мне то это зачем? :)
Коллега, я просто вас дополнил(примером выполнения от рута)
а еще там должен быть лог
А как узнать, на сколько % проверка уже выполнена? Поставил диск проверяться, но незнаю сколько мне ждать осталось, в консоли ничего не пишется.
Проценты выполнения не пишет. Наблюдаю по активности индикатора обращения к диску.
По завершении выйдет приглашение командной строки.
Блин, где-то видел как делали строку, отобращающую процесс выполнения задачи. С ходу нагуглить не удалось, но я ещё постараюсь.
Постарайся - заплюсую.
pv что ли?
-s
Вообще-то пишет и e2fsck и badblocks. В манах всё написано! Для e2fsck параметр -t:
e2fsck -ct /dev/sdf1
Для badblocks параметр -s:
badblocks -s /dev/sdf1 > /root/badblock
Ну и e2fsck -ct /dev/sdf1 удобнее. К тому же e2fsck использует badblocks.
Работает, спасибо :)
+1
Спасибо, добавил про -s.
Еще бы хотелось добавить, что у программы badblocks много параметров улучающих сканирование. Читайте man badblocs, найдете много интресного.
Было бы неплохо после этой команды:
но перед этой (пометкой плохих блоков)
узнать какие файлы размещаются в перечисленных в /root/badblock блоках.
Подскажете как?
Скажите, то что 60-гиговый диск проверяется уже 24 часа и выполнено всего 25.01%, это нормально? Возможно как-нибудь ускорить этот процесс?
Это плохо. Либо много бэд блоков, либо сам по себе медленный хард.
80 гиг проверял около получаса.
5 нюбских копеек: может стоит указать, что всё волшебство делается через sudo?
А я знал. Кто-нибудь догадается.
я обычно сразу диск форматирую:
man mkfs.ext3
Для рейзера нет опции проверки блоков, но можно лечить диск скармливая вывод badblocks. Причем, подозреваю, что если тулзами пользоваться по отдельности, то за совпадением размеров блоков там и там нужно следить вручную.
Ну и при чем тут "лечение жесткого диска"? Бэды на нем как были так и остались!!! Если уж так, то назовите статью, например, "как исключить использование бэд блоков файловой системой". Лечите-то Вы, по сути, файловую систему!
Для лечения жесткого диска нужно использовать либо специализированные программы, например MHDD или Victoria, либо аппаратный комплекс типа PC3000. Либо, если совсем уж ни того, ни другого нет, то можно попробовать запись во все секторы диска нулей (лучше, конечно, случайных чисел, но долго генерируются).Например, с помощью dd. Не забудьте перед этим информацию с диска списать куда-нибудь, т.к. информация при этой операции, естественно, сотрется.
А если ж... все таки произошла то минимизировать потери поможет утилитка gnu ddrescue. Она довольно упорно пытается вычитать все что читается и минимизирует потери. Вынул с засбоившего винча практически целый образ оной с минимальными разрушениями.
примечание
badblocks и fsck должный запускаться с одинаковым параметром -b (размер блока)
Может, и для флешки в fat32 найдётся нечто подобное?
Думаю, как-то так:
sudo fsck.vfat -atl /dev/sdb1
эта команда закроет бэды от дальнейшего чтения? Или просто покажет, что они есть?
как вариант попробовать затереть поверхность :)
dd if=/dev/zero of=/dev/sdX
Внимание!!! Затирается полностью с информацией о разделах!!!
Я снимаю с себя ответственность за использование команды :)
зациклить затирание... хм... боюсь за пару недель он затрётся в пыль :)
Не ну яш не спорю ваш первоначальный вариант превосходен... но попробовать "вдруг получится" хоть парочку восстановить - помойму стоит :)
А вообще если крошится веник - лучше всего купить новый... так меньше гемора будет...:)
Уронил юсб винт в рабочем состоянии. Появилось порядка 8 блоков сбойных(бед и не только) секторов с ххххххххх по ууууууууу. mhdd и виктория не дали желаемого результата. Вопрос, можно ли пометить от х до у сектора как сбойные(Bad) чтоб головка туда даже и не запрыгивала и винт не подвешивал бы систему. Сходу нагуглить таких программок не сумел. Спасибо
Как-то пробовал USB хард Викторией подлечить - не видит она смарт при подключении через USB. Благо диск можно было из коробки извлечь и подключить через SATA. Вот тогда и вылечилось всё.
именно напрямую к sata и подрублен. Бедов проремапило оч много, теперь при загрузке компа, комп ругается на то что винт пора на свалку ... чувствую что придётся на 2 диска разбивать, и беды в не размеченной области оставлять, или в ремонт :(
Я использую для затирки
shred -zvn1 /dev/sdX
У меня бед блоки на swap. e2fsck не работает со своп. Что делать?
Переформатировать, отключив или с другой системы. Или у вас есть ценные данные там?)
mkswap -c /dev/device
Вот такой вопрос - а если 80% HDD - бэды, размер его 750 гигиков, что делать?
Но восстановить надо... Не инфу, а хотя-бы работоспособность...
Если 80% бэды, то это катастрофа. Либо менять по гарантии (если таковая есть), либо выкидывать.
В теории звучит примерно так: есть бэды софтверные и есть хардверные. Первые лечатся (что логично) разнообразными способами — вплоть до низкоуровневого форматирования. Вторые не лечатся никак. Пока не разберёшься с тем, что у тебя за бэды — ничего сказать нельзя.
Так что у тебя за бэды и как были обнаружены?
Жёсткий в видеорегистраторе на 16 камер 8) О(цензура)ший скачёк электроэнергии. Видеорегистратор в дауне, жёсткий вот в таком вот состоянии...
Файл /root/badblock over 160 mb, и я не до конца проводил тестирование... В общем я хз что делать дальше.. затереть всё нуликами? Провериться в mhdd? Бьюсь с жёстким вторую неделю...
могла полететь электроника диска и софт, не имея возможности пробиться, будет помечать секторы бэдами (виртуально).
если всё же электроника диска впорядке, то MHDD.
настоящее низкоуровневое форматирование на современных дисках не возможно (даже в сервисе). оно делается один раз на заводе-изготовителе.
Естественно ставить на стационар и гонять mhdd. Но если это напряжение, то могло полететь и физически. Тогда только менять.
оке, возьму тачку и на недельку в MHDD погоняю.
Заодно testdisk'ом проверю. Просто всё никак руки не дойдут О_о
Спасибо всем за проявленную помощь. 8) И мысленную поддержку 8)
Будем надеяться на лучше! Удачи тебе.
sudo hdparm -i /dev/sdb | grep Model
это где инвалид аргумент в синтаксисе команды(подключен системный sda и внешний sdb) или в ID диска?
и такой вопрос, в случае внешнего диска, возможно
стоит перенести на сам диск, ведь другие внешние диски будут примонтированны как sdb, но к badblock не относящиеся или в файле будет UID именно проблемного диска?Как вариант, уменьшить раздел, чтобы битые попали на неразмеченное пространство.
Я переформатировал раздел swap в три прогона и создал не монтируемый раздел с ext4 sda5 стал именоваться sda7 в результате слетел Grub, переустановил KU,поскольку инструкция на wiki не сработала(Unknown filesistem)
Со вновь установленной ОС все 3 раздела (sda 5. sda6, sda7) прогнал на бэды(badblocks -s /dev/sda) и что удивительно все 3 с 0/0/0 Errors, хотя Дисковая утилита пишет, что "Диск исправен" и тут же "92 поврежденных сектора, пороговое значение не превышено"
Может, она диск проверяет, а не разделы смонтированные?
Есть винт с бедами, мучаю его ради учебы.
Время от времени делал ему
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
Посмотри в Kparted вывод журнала может проблемы с геометрией диска, был у меня диск с проблемной геометрией, тоже писал "вне доступного диапазона"
Винт на 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)
Сообщения кажутся мне странными... Кто знает, что происходит?
все нормально. сообщения что пока еще работаем, а не зависли.
проценты - да смущают, но по моему оно там глючит по жизни...
500гиг с полным прогоном - это долго. я помню.
Как быть с корневым разделом? Если отметить эти блоки из другой системы, то только другая система будет их игнорить или эта метка ставится в раздел и эти блоки игнорят все системы?
Вот это выдало на все бэды
Битый блок xxxxxxxxx вне досягаемости, пропущен
при использовании команды
e2fsck -l /root/badblock /dev/sdd1
Отправить комментарий