Если у вас начал медленно работать жесткий диск или, того хуже, появились периодические зависания и сбои операционной системы, то это повод проверить состояние диска и определить не появились ли на нем битые сектора.
Для запуска проверки нужно загрузиться с 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
На линукс Минт нет команды badblocks.
При выполнении fsck для ntfs диска выдаёт ошибку 2.
Есть вот сейчас с лайва минт 19 запустил sudo badblocks -s -v -n -f /dev/sdb
Команда badBlocks, есть она сканирует диск на битые сектора и создает текстовой файл. Проверено под Linux Mint 20 Ульяна
С заброской в текстовый файл- проблема. ругается: пермишн денайд(
А команду через sudo выполняли? Это максимальный уровень доступа и ошибок permission denied не должно быть в этом случае
именно через судо. но может я неправильно сделал некоторые вещи.
1. начал сразу с параграфа: Проверка и «лечение» диска
2. сканировал не раздел, типа sda1, sda2 и т.д. , а весь диск sda
…диск определился, как sda а флешка с образом, как sdb
Протестировал у себя щас. Ошибка Permission denied, даже при использовании sudo, возникает так же при неправильно указанном пути. Используйте не относительный, а абсолютный путь к txt файлу — думаю это решит ошибку.
После корректного указания пути у меня началась проверка и запись в файл
т.е. полность после «>» весь путь прописать?
Да. Например:
sudo badblocks -s /dev/sda > /home/%username%/badblocks.txt
Спасибо! Попробую