Как я могу исправить неправильные логические сектора на жестком диске в Ubuntu?

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

sudo badblocks -sv /dev/sda1 > bad-blocks-result

Эта команда создала файл в моем домашнем каталоге с именем "bad-blocks-result", который содержит последовательность чисел, которые, я думаю, являются плохими секторами.

Какую процедуру следует выполнить для исправления моего жесткого диска?

1 ответ

Решение

Для каждого плохого номера блока сначала используйте dd чтобы убедиться, что это плохо (и вы где-то не ошиблись):

sudo dd if=/dev/sda1 skip=##### count=1 of=/dev/null iflag=direct bs=1024

Если это возвращается с ошибкой, то вы смотрите в правильном месте... теперь пришло время исправить это:

sudo dd if=/dev/zero of=/dev/sda1 seek=###### count=1 oflag=direct bs=1024

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

Удостоверьтесь, что вы набрали команды точно так, как показано (подстановка номера блока вместо ####), иначе вы можете уничтожить ваши данные

Вы также можете запустить sudo smartctl -a /dev/sda чтобы прочитать SMART-статус диска. Следует отметить необработанные значения для перераспределенных счетчиков и ожидающих обработки. Если вы исправили все поврежденные сектора, число отложенных операций вернется к нулю. Если они были переназначены, перераспределенный счет увеличится. Если это больше, чем горстка, вы, вероятно, захотите заменить диск, так как он может ухудшиться. Если перераспределенное количество не увеличилось, то с физическим диском все в порядке.

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

Другие вопросы по тегам