Как исправить плохие блоки в Linux



Попробуйте наш инструмент устранения неполадок

Пользователи, которые используют двойную загрузку некоторого дистрибутива Linux с версией Microsoft Windows, могут иногда пытаться уменьшить или увеличить определенные разделы, чтобы оставить больше места для одной или другой операционной системы. В конечном итоге вы можете получить предупреждение от GParted в Linux или chkdsk в Windows о наличии битых секторов. У отдельных пользователей Linux иногда может быть то же самое. Несмотря на это, пользователи могут фактически получать уведомления о двух разных типах маскировки плохих секторов под одно и то же. Одним из них является традиционное уведомление о сбойных секторах, которые указывают на проблему с физической геометрией диска или ячейки памяти NAND. Это то, что имеет в виду большинство людей, когда жалуются на плохой блок, хотя есть небольшая, но очень техническая разница между плохим сектором и плохим блоком. Однако машины редко ошибочно помечают сектора как поврежденные.



Они известны как программные сбойные сектора или программные сбойные блоки, и их можно исправить с помощью простой операции с файловой системой. Однако, учитывая опасность записи в плохие блоки, всегда рекомендуется начинать расследование с проверки данных SMART при работе с фиксированным томом. Это неразрушающий метод, позволяющий отсеять геометрические проблемы до того, как вы продолжите. Если вы не работаете с фиксированным объемом, возможно, вы захотите начать расследование со следующего метода.



Метод 1. Проверка данных SMART

Легко поверить, что эти битые сектора - просто программная ошибка, но есть способ проверить, так ли это. Используя данные SMART, легко проверить собственное микропрограммное обеспечение диска и узнать наверняка. Откройте утилиту дисков GNOME из Dash в Unity, меню Whisker в Xfce4, меню «Стандартные» в LXDE или из меню «Приложения GNOME» в KDE. Вы также можете запустить его, набрав gnome-disks на терминале и нажав клавишу ввода. Щелкните меню рядом с элементами управления окна с правой стороны после выделения жесткого диска указателем в левом столбце. В большинстве случаев установки GNU / Linux утилита Disks по умолчанию использует ваш основной жесткий диск.



Выберите в меню SMART Data & Self-Tests. Вы также можете удерживать CTRL и нажать S, чтобы открыть это окно. Это покажет вам текущее состояние вашего диска. Если значения пустые, нажмите кнопку «Начать самопроверку», чтобы заставить ваш диск запустить самопроверку. Строка «Общая оценка» вверху расскажет, что утилита GNOME Disks Utility думает о вашем диске.

Возможно, вам придется прокручивать атрибуты SMART даже в полноэкранном режиме. Обратите особое внимание на параметр, называемый «Счетчик перераспределения». Это показывает, сколько секторов уже было перераспределено. Если поврежденных секторов много, то, вероятно, рекомендуется заменить диск до того, как он полностью выйдет из строя.



Метод 2: проверка правильности суперблока

Иногда вы можете обнаружить, что данные SMART показывают все по порядку, но вы могли получить ошибку «Плохой суперблок» от некоторых дисковых утилит. Если бы вы работали с SD-картами, USB-картами памяти или другой подобной памятью, вы не могли бы читать данные SMART, но все же могли иметь некоторые ошибки. Это вполне может быть программной проблемой. Рассмотрим проблему запуска такой команды, как:

fsck.ext4 / dev / sda

Это более чем вероятно будет означать, что у вас плохой суперблок, который относится к главному блоку в вашей файловой системе. Это результат ошибки CLI, а не настоящий плохой блок. Поскольку / dev / sdb относится к диску, а не к разделу, ваша команда fsck будет искать суперблок там, где его нет, и ошибочно полагать, что что-то не так. К счастью, это не была разрушительная команда. Бежать:

судо fsck.ext4 / dev / sda1

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

Вы также можете получить эту ошибку, если попытаетесь запустить ext2 / 3/4 fsck на томе FAT12 / 16/32, NTFS или HFS / HFS +. Средство проверки непротиворечивости путается и думает, что что-то не так, хотя на самом деле тип структуры файла не соответствует ожидаемому. Запустите fsck.vfat или dosfsck на томах FAT независимо от того, какую разрядную версию вы используете. Вы можете использовать переключатель -t после dosfsck или fsck.vfat (fsck.msdos в некоторых версиях Linux), чтобы пометить нечитаемые кластеры как плохие блоки.

Метод 3: проверка на наличие плохих блоков в томах NTFS

Предполагая, что вы используете двойную загрузку Microsoft Windows и Linux и у вас есть суперблоки или другие ошибки сбойного сектора на томе NTFS, затем перезапустите Windows и из командной строки запустите chkdsk / rc :, заменив c: буквой диска Под вопросом объем NTFS. Windows, скорее всего, придется перезагрузиться, чтобы завершить сканирование поверхности. Это может занять некоторое время, поэтому, если окажется, что ваша операционная система не отвечает, то это просто из-за того, что прошло много времени. Если вы получили сообщение об отсутствии необходимых прав, щелкните правой кнопкой мыши командную строку в меню «Пуск» и выберите «Запуск от имени администратора», прежде чем продолжить.

Если вы работаете с томом NTFS исключительно под Linux, у вас нет такой возможности, но если ошибка сбойных блоков возникла просто из-за несоответствия типа, у вас есть способ ее исправить. Запустите sudo ntfsfix / dev / sdb1, заменив букву и цифру после / dev / sd на правильный идентификатор устройства и раздела. Помните, что вы всегда можете запустить sudo fdisk-l или вернуться к утилите дисков GNOME, если она установлена, чтобы проверить имена каждого тома, подключенного к вашей системе. Вы можете запустить его как sudo ntfsfix -d / dev / sdb1, если вы уверены, что хотите очистить грязный бит.

Если вы уверены, что на томе NTFS есть мягкие сбойные блоки, которые не связаны с геометрией физического оборудования, например, когда вы клонировали старый диск с сбойными секторами на новый том, запустите sudo ntfsfix -bd / dev / sdb1 на любом объем, который вы хотите. Это сбрасывает список маркеров плохих блоков.

Метод 4: Использование утилиты badblocks Linux

Загрузившись в действующую версию ISO для Linux или найдя другой способ размонтировать файловую систему ext2, ext3 или ext4, вы можете запустить sudo fsck.ext4 -c / dev / sda1, чтобы выполнить сканирование только для чтения на наличие плохих блоков. Естественно, вам нужно будет использовать правильный идентификатор тома после / dev / sd и правильный номер версии ext после fsck.ext для его правильной работы. Если вы вместо этого укажете -cc, тогда программа будет использовать еще более обширный неразрушающий тест чтения-записи.

Это нормальный способ использования утилиты badblocks, но вы можете технически использовать ее и в одиночестве. Запустите sudo badblocks -n для имени устройства, чтобы запустить его отдельно и сообщать о плохих блоках прямо в вашем терминале. Вы можете использовать параметр -w, чтобы использовать тест режима записи, но не используйте параметры -n и -w вместе, поскольку они взаимоисключающие. Ни в коем случае нельзя использовать опцию -w для тома, на котором есть данные, так как это сотрет все чисто. Используйте опцию медленнее -n, ​​так как в этом случае ваши данные сохранятся. Параметр -w подходит для томов, которые вы можете стереть. Опцию -v можно комбинировать с любым из них, что даст вашему терминалу подробный вывод, полезный для проверки повреждения данных. Вы всегда можете использовать параметр -o с именем текстового файла, чтобы записать информацию, чтобы вы могли просмотреть ее позже. Вы можете запустить его как sudo badblocks -nv -o badblocks.log / dev / sdb1, чтобы получить снимок, поскольку вы увидите много информации, если есть подлинные плохие блоки.

5 минут на чтение