Как починить жесткий диск Bad Sector

17

Я пытался починить свой жесткий диск с помощью Ubuntu, но обнаружил сообщение об ошибке и не знал, что делать дальше. Мне нужно исправить мои плохие сектора

fsck /dev/sdb  
fsck from util-linux 2.20.1  
e2fsck 1.42.5 (29-Jul-2012)  
fsck.ext2: Permission denied while trying to open /dev/sdb  
You must have r/w access to the filesystem or be root  
user122095
источник
1
Вставленный вами текст не имеет отношения к вашему вопросу. Вы можете уточнить?
Томасруттер

Ответы:

22

Плохой сектор на диске является признаком необратимых повреждений привода. Если у вас нет оснований полагать, что ваш диск пометил эти сектора как плохие неправильно, вы не сможете их «исправить».

Это означает, что часть вашего диска повреждена до такой степени, что она более не может надежно считываться и / или записываться.

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

Хотя могут быть способы заставить диск пометить сектор как плохой, что позволит вам использовать его снова, это, вероятно, не очень хорошая идея. Сектор может остаться хорошим, но с такой же вероятностью он снова станет плохим. Некоторые данные могут быть утеряны или повреждены в зависимости от того, как они не работают

Теперь, что касается сообщения об ошибке, которое вы вставили в свой вопрос (на момент написания этой статьи), эта ошибка не имеет ничего общего с плохими секторами. Это означает, что у вас нет доступа к диску. Бытие sudoможет дать вам доступ, поэтому:

sudo fsck /dev/sdb

Тем не менее, это, вероятно, все еще не то, что вам нужно, потому что / dev / sdb относится ко всему диску, тогда как fsckон предназначен для работы с файловыми системами , которые обычно (но не всегда, и вы можете иметь исключение здесь) размещаются в разделах . Если вышеприведенное не сработало, возможно, вы захотите сделать это с 1-м разделом на этом диске:

sudo fsck /dev/sdb1

Вы можете получить список разделов на диске с:

sudo fdisk -l
thomasrutter
источник
7
Это, вероятно, просто плохой блок. Он не может прочитать данные, вот и все. После переназначения блока диск, вероятно, будет работать еще три года. Так проходит мой опыт.
Zan Lynx
Жесткий диск с плохим сектором гораздо, гораздо более вероятен в любой момент, чем тот, у которого никогда не было плохого сектора. На каких дисках основан ваш опыт? Я бы все еще назвал это большей игрой.
Томасруттер
Скорее? Конечно. Но это не сразу обречено. Так много зависит от того , почему этот блок испортился. Как я уже говорил, у меня были накопители, которые в течение своей жизни медленно переназначали несколько плохих блоков и просто продолжали работать.
Zan Lynx
it isn't immediately doomed- у вас нет возможности узнать или гарантировать это. В некоторых случаях это может быть. So much depends on why that block went bad- было бы невозможно достоверно выяснить причину, не раскрывая ее и не уничтожая ее эффективно. Как я уже сказал, это всегда повышенный риск. Если вы абсолютно согласны с таким риском, у меня нет проблем с этим. В большинстве случаев, может быть, даже> 90% времени, диск не будет быстро выходить из строя после обнаружения неисправного сектора, а в некоторых случаях это может продолжаться годами. Сохраняйте хорошие резервные копии, и любой будущий сбой не повредит так же.
Томасруттер
1
Говорит "диск смонтирован" и ничего не делает.
Дим
21

Короче говоря : загрузите спасательную систему и используйте badblocks :

badblocks -svn /dev/sda

чтобы контроллер жесткого диска заменил поврежденные блоки запасными.

Я подробно ответил на тот же вопрос здесь .

user228505
источник
4
Вы, вероятно, хотите использовать это косвенно с -cопцией fsck . AFAIK, использующий badblocksавтономный режим, никогда не изменит поведение чего-либо, а только сообщит о том, где находятся плохие блоки. Конечно, микропрограмма накопителя может прозрачно изменять его поведение, если его использовать в соответствии с характеристиками использования badblocks, но, несомненно, это будет зависеть от накопителя?
amoe
1
Как новый пользователь, вам сначала нужно набрать «репутацию», прежде чем разрешить делать определенные действия на этом сайте. Так что было невозможно дублировать это. Тем не менее вопрос заслуживает ответа. Так как плохие блоки являются проблемой физического диска (проверьте значения SMART, файловая система не затрагивается напрямую. Она может пострадать от повреждения из-за потери данных. Так что выполнение fsck также является хорошей идеей. Поскольку оригинальный вопрос был о том, как «исправить» плохие блоки это был ответ.
user228505
@amoe документация предполагает, что поведение изменится, здесь: "Запустите sudo badblocks -n на имени устройства, чтобы запустить его само и сообщить о плохих блоках прямо в вашем терминале. Вы можете использовать опцию -w, чтобы использовать тест режима записи, но не используйте вместе параметры -n и -w, поскольку они являются взаимоисключающими. Ни при каких обстоятельствах не следует использовать параметр -w для тома, на котором есть данные, поскольку он удалит все чистое. Используйте более медленную -n опция, так как в этом случае она сохранит ваши данные. Опция -w подходит для томов, которые вы не против стереть. "
веб-леди
13

В прежние времена вам приходилось записывать записанные на диске дефектные блоки и вводить их в список дефектов перед форматированием диска, потому что поверхности жесткого диска никогда не были «идеальными», и производитель понимал это, потому что люди покупка дисков будет смотреть на таблицу дефектов, напечатанную на диске, и покупать диски с наименьшим количеством дефектов ...

Теперь пролистайте 20 или около того лет назад, и производители жестких дисков скрывают тот факт, что на новом диске имеются дефектные блоки с микропрограммой. Когда вы покупаете новый диск, на нем уже будут, по всей вероятности, плохие блоки, микропрограмма обнаружит вновь возникшие дефектные блоки и сопоставляет их с набором запасных цилиндров, которые у него есть, но это происходит только тогда, когда в этом секторе происходит операция записи, а алгоритм ECC обнаруживает битовый сбой, только тогда он отображает блок. Итак, возвращаясь к сути, вы можете заставить диск отображать плохие блоки, просто используя DD, т.е. / [edit: следующий пример был отредактирован для предотвращения случайного разрушения диска: удален подстановочный знак, заменен на X]

dd if=/dev/zero of=/dev/sdX bs=1M 

очевидно, измените значение of = target, чтобы отразить диск, который вы хотите обнулить. Это самый быстрый способ перекомпоновки дефектов диска, а также самый быстрый способ полностью очистить настройки Linux, указав неверный целевой диск, поэтому проверьте, дважды проверьте затем проверьте еще раз, прежде чем нажать клавишу ввода. Вы можете увеличить размер блока в команде dd, чтобы оптимизировать чтение / запись и, возможно, ускорить процесс, но после некоторой точки отдачи уменьшаются. Я нахожу что-нибудь между 1M и 8M лучше всего подходит для меня

Вы можете заставить DD просто написать один сектор, плохой ... чтобы перераспределить его, так что вам не нужно делать резервную копию вашего диска, но это совсем другой чайник с русской рулеткой, если вы точно не знаете что ты делаешь .....

Эта команда уничтожит все на вашем жестком диске, включая любые разделы. Но это заставит диск наметить любые плохие сектора, которые у него могут быть.

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

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

Дерек Брабрук
источник
Я использовал этот метод раньше, но никогда не знал, почему он работал. Из горстки большинство накопителей просуществовали годами после мелкого протирания накопителя в соответствии с предписаниями.
MER
Ack !! Для непосвященных, пожалуйста, не копируйте и не вставляйте эту строку. Ваша оболочка расширит подстановочный знак '?' с фактическими именами устройств в / dev. Если вы случайно нажали клавишу ввода перед заменой символа?, Вы можете стереть не тот диск. Если у вас более одного устройства, dd может выдать ошибку, но я не хочу проверять это на моей машине.
TiberiusKirk