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

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

Для запуска проверки нужно загрузиться с Live CD Linux.
Или же осуществить проверку из виртуальной машины, как предложено в этой заметке. При отсутствии двух компьютеров, это позволяет продолжить работу с основной системой во время проверки. А проверка может занять не один час, в зависимости от объема и состояния сбойного диска.

Расскажу немного подробнее про этот метод:
Для загрузки Live-CD я использовал Hyper-V.
Хочу отметить что нам даже не придется устанавливать ОС для проверки диска, что не только делает этот вариант удобным, но и быстрым.

Настройка виртуальной машины.

Если вы не хотите грузится из виртуальной машины или вы сами знаете как это сделать, то смело переходите к следующему разделу

1) Заходим в «Управление дисками» и переключаем состояние проверяемого диска на «Вне сети»;
2) Скачиваем любой дистрибутив Linux. Например Ubuntu;
3) Создаем сетевой коммутатор(необходим для создания машины);
4) Открываем «Диспетчер Hyper-V»->Действие->Создать->Новая машина;В процессе создания машины нужно будет указать ранее созданные коммутатор(шаг «настройка сети») и скачанный образ Ubuntu(шаг «Параметры установки»)
5) Перейти в параметры машины->Контроллер 0 IDE->
Добавить Жесткий диск->Физический жесткий диск;
Для того что бы последний пункт был активен, диск должен быть переведен в статус «Вне сети»6) Запустить виртуальную машину кнопкой «Пуск»;
7) При загрузке с указанного образа выбрать
«Запустить Ubuntu без установки»;
8) После загрузки графической оболочки Live CD открываем терминал.

Проверка и «лечение» диска

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

sudo fdisk -l

Для запуска сканирования на бэдблоки используем команду:

sudo badblocks -s /dev/sdb1 > /badblocks.txt

Ключ  -s  позволит вместо полотна текста видеть прогресс сканирования диска  в процентах. А для того что бы не записывать найденные сбойные сектора руками, перенаправляем их в текстовый файл.

Следующая команда запускает утилиту, которая пометит на диске сектора(взяв их из нашего файла), которые системе не нужно использовать:

sudo e2fsck -l /badblocks.txt /dev/sdb1

В конце всей процедуры рекомендуется запустить проверку на целостность файловой системы:

sudo fsck -f /dev/sdb1

10 мыслей о “Исправление битых секторов средствами Linux”

  1. Команда badBlocks, есть она сканирует диск на битые сектора и создает текстовой файл. Проверено под Linux Mint 20 Ульяна

    1. А команду через sudo выполняли? Это максимальный уровень доступа и ошибок permission denied не должно быть в этом случае

      1. именно через судо. но может я неправильно сделал некоторые вещи.
        1. начал сразу с параграфа: Проверка и «лечение» диска
        2. сканировал не раздел, типа sda1, sda2 и т.д. , а весь диск sda

        …диск определился, как sda а флешка с образом, как sdb

        1. Протестировал у себя щас. Ошибка Permission denied, даже при использовании sudo, возникает так же при неправильно указанном пути. Используйте не относительный, а абсолютный путь к txt файлу — думаю это решит ошибку.
          После корректного указания пути у меня началась проверка и запись в файл

          1. т.е. полность после «>» весь путь прописать?

Добавить комментарий

Ваш адрес email не будет опубликован.