Аналог victoria для linux

Обновлено: 02.07.2024

Восстановление сбойных секторов HDD и SATA дисков в Linux.

Предыстория: давно искал аналоги HDD Regenerator, Victoria, MHDD для линукс, и ничего не находил. Натолкнулся на hdrecover 0.5, но реального восстановления сбойных секторов не произошло. HDrecover час шел до сбойного сектора, аттемпил с разных мест, угрожал, что убьёт данные, я соглашался на data destory, но сбойные сектора не восстанавливал.

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

hdrecover, записывая в устройство сектор, не восстанавливал данные. Попробовав dd if=/dev/zero of=/dev/sdX count=1 seek=XXX, увидел, что сектор XXX восстановился. Добавив 2-й попыткой восстановления команду dd уже в саму программу hdrecover, был получен положительный результат.

Оставляйте комментарии по результатам своего восстановления.

Что ещё можно добавить в программу для функциональности: первичное быстрое чтение всего диска скачками для выявления большой сбойной области сразу.

Исходные тексты и скомпилированная на 64 бит программа:

3 thoughts on “ Восстановление сбойных секторов SATA дисков в линукс ”

Если сбойные сектора не восстанавливаются, то для работы на таком диске можно сделать такое:
глянуть, что где: fdisk -l
глянуть mount, если надо отмонтировать нужный диск: umount /dev/sdb1
проверим на сбойные сектора: badblocks -s /dev/sdb1 > /home/user/sdb1_badblocks
Выполним команду для игнорирования сбойных секторов, что бы исключить их от использования в ОС:
e2fsck -l /home/user/sdb1_badblocks /dev/sdb1

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

whdd для командной строки удалось скомпилять в ubuntu 16.04 (apt install dialog libncurses5-dev libncursesw5-dev). И на debian 8 и на убунту выбор ata или posix приводил к ошибке сегментирования.
hddsuperclone для графического экрана не копирует смонтированный диск..

Командная строка

Если вы истинный линуксоид, самый легкий и быстрый способ – использовать команду «df» в командной строке. Просто напечатать:

в терминале, и он покажет вам загрузку жесткого диска в процентах

Далее по тексту, несколько способов сделать это в Linux.

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

Baobab

Большинство линукс-дистрибутивов с Gnome(в частности Убунту), используют Baobab в качестве дефолтного приложения для просмотра диска.Это замечательное приложение, способное до последней папки разделить и проанализировать структуру хранения данных на жестком диске. Просто укажите папки необходимые для сканирования, и в результате получите круговую диаграмму, отражающую количество занимаемого места каждым файлом.

Далее по тексту, несколько способов сделать это в Linux.

KDirStat и GdMap

Если вы использовали WinDirStat в Windows, то согласитесь, что это очень удобное приложение, позволяющее анализировать и оптимизировать ваше дисковое пространство. Однако мало людей знают, что WinDirStat это на самом деле клон KDirStat. KDirStat обладает той же функциональностью что и WinDirStat (или может быть наоборот), за исключением того, что он предназначен для использования в Linux. Несмотря на то, что KDirStat разрабатывался для KDE, он также совместим с любым оконным менеджером X11.

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

Далее по тексту, несколько способов сделать это в Linux.

Gd Map это эквивалент KDirStat для Gnome, кроме того что он не отображает древовидную структуру папок, и не позволяет очищать жесткий диск.


Filelight

Подобно Baobab, Filelight, создает интерактивную карту концентрических, сегментированных колец, помогающих визуализировать использование диска на вашем компьютере.Вы легко можете приблизить нужные папки, путем клика на соответствующем сегменте колец.


Philesight

Philesight это реализация Filelight в качестве веб-приложения, может быть запущена на удаленном сервере, не имеющим графического интерфейса. Philesight использует командную строку для генерации PNG-файлов в браузере и включает CGI-скрипты для навигации по файловой системе. Одна из ее особенностей, красочная радуга концентрических колец, что делает ее весьма приятной на вид.


xdiskusage

xdiskusage маленькая программка, отображающая файловую систему иерархически, слева направо, прямоугольными фигурами, с размерами, соответствующими размеру файлов. Если вы сканируете домашнюю папку, слева будет находится прямоугольник, отображающий полностью папку home, а справа все файлы, находящиеся внутри нее.
Вы легко можете приближать/удалять, нужные папки, по двойному щелчку на соответствующем прямоугольнике.

Одно из самых важных устройств компьютера - это жесткий диск, именно на нём хранится операционная система и вся ваша информация. Единица хранения информации на жестком диске - сектор или блок. Это одна ячейка в которую записывается определённое количество информации, обычно это 512 или 1024 байт.

Битые сектора, это повреждённые ячейки, которые больше не работают по каким либо причинам. Но файловая система всё ещё может пытаться записать в них данные. Прочитать данные из таких секторов очень сложно, поэтому вы можете их потерять. Новые диски SSD уже не подвержены этой проблеме, потому что там существует специальный контроллер, следящий за работоспособностью ячеек и перемещающий данные из нерабочих в рабочие. Однако традиционные жесткие диски используются всё ещё очень часто. В этой статье мы рассмотрим как проверить диск на битые секторы Linux.

Проверка диска на битые секторы Linux

Для поиска битых секторов можно использовать утилиту badblocks. Если вам надо проверить корневой или домашний раздел диска, то лучше загрузится в LiveCD, чтобы файловая система не была смонтирована. Все остальные разделы можно сканировать в вашей установленной системе. Вам может понадобиться посмотреть какие разделы есть на диске. Для этого можно воспользоваться командой fdisk:

sudo fdisk -l /dev/sda1


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


В этом примере я хочу проверить раздел /dev/sda2 с файловой системой XFS. Как я уже говорил, для этого используется команда badblocks. Синтаксис у неё довольно простой:

$ sudo badblocks опции /dev/имя_раздела_диска

Давайте рассмотрим опции программы, которые вам могут понадобится:

  • -e - позволяет указать количество битых блоков, после достижения которого дальше продолжать тест не надо;
  • -f - по умолчанию утилита пропускает тест с помощью чтения/записи если файловая система смонтирована чтобы её не повредить, эта опция позволяет всё таки выполнять эти тесты даже для смонтированных систем;
  • -i - позволяет передать список ранее найденных битых секторов, чтобы не проверять их снова;
  • -n - использовать безопасный тест чтения и записи, во время этого теста данные не стираются;
  • -o - записать обнаруженные битые блоки в указанный файл;
  • -p - количество проверок, по умолчанию только одна;
  • -s - показывать прогресс сканирования раздела;
  • -v - максимально подробный режим;
  • -w - позволяет выполнить тест с помощью записи, на каждый блок записывается определённая последовательность байт, что стирает данные, которые хранились там раньше.

Таким образом, для обычной проверки используйте такую команду:

sudo badblocks -v /dev/sda2 -o

Это безопасно и её можно выполнять на файловой системе с данными, она ничего не повредит. В принципе, её даже можно выполнять на смонтированной файловой системе, хотя этого делать не рекомендуется. Если файловая система размонтирована, можно выполнить тест с записью с помощью опции -n:

sudo badblocks -vn /dev/sda2 -o

После завершения проверки, если были обнаружены битые блоки, надо сообщить о них файловой системе, чтобы она не пыталась писать туда данные. Для этого используйте утилиту fsck и опцию -l:

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

sudo e2fsck -cfpv /dev/sda1

Параметр -с позволяет искать битые блоки и добавлять их в список, -f - проверяет файловую систему, -p - восстанавливает повреждённые данные, а -v выводит всё максимально подробно.

Выводы

В этой статье мы рассмотрели как выполняется проверка диска на битые секторы Linux, чтобы вовремя предусмотреть возможные сбои и не потерять данные. Но на битых секторах проблемы с диском не заканчиваются. Там есть множество параметров стабильности работы, которые можно отслеживать с помощью таблицы SMART. Читайте об этом в статье Проверка диска в Linux.

Нет похожих записей

Оцените статью:

(20 оценок, среднее: 5,00 из 5)

Об авторе

13 комментариев

Для любителей гуя есть gsmartcontrol

Какие нахрен битые сектора. в каком веке живете? Или вы про Self тест?

А в каком веке перестали сыпаться ХДД?

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

Ты будешь очень удивлен, когда узнаешь, что битые сектора еще на стадии производства жестких дисков появляются. Причина этого: несовершенство технологии производство, как бы не парадоксально это звучало. По этой же причине с одной матрицы, на которой выращивают процессора получают как сверхвысокопроизводительные процессора с высокой стоимостью, так и самые дешевые целерончики. Так вот, те битые сектора, которые определяют еще на производстве помечают и заносят в специальный список. который хранится, в зависимости от производителя харда или в специальном разделе, или во флешпамяти или там и там. Наличие заводских бэдов подтверждает график чтения диска. Его можно увидеть прогнав новый диск (из заводской упаковки) какой нибудь утилитой типа Виктории или МХДД. Провалы в графике чтения, который представляет собой логарифмическую кривую это и есть подтверждение наличия заводских сбойных секторов: то есть на этих областях головка харда переходит по указанному адресу. То есть там алгоритм такой: головка доходит до нужного адреса на диске: считывает с него инфу, и если видит что-то подобное: этот блок сбойный, если вы хотите что-то записать, то вместо него работает вооон тот блок, расположенный воооон там.
э

Уважаемый автор, что-то я не понял про "просто" fsck. У него параметром "-l" не подставляется файл от "badblocks" с перечнем битых секторов, а выполняется совсем другая операция.
Может подскажете что теперь делать в этом случае? Т. е. например у меня флэшка битая и файловая система там не ext, и в наличии только консоль.

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

Что такое битые блоки и почему они появляются

Блок (сектор) – это маленькая ячейка диска, на которой в виде битов (0 и 1) хранится информация. Когда системе не удается записать очередной бит в ячейку, говорят о битом секторе. Причин возникновения таких блоков может быть несколько:

  • брак при производстве;
  • отключение питания в процессе записи информации;
  • физический износ диска.

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


Проверка диска Linux

На ядре Linux работает несколько ОС, среди которых Ubuntu и Debian. Процедура проверки диска универсальная и подходит для каждой из них. О том, что носитель пора тестировать, стоит задуматься, когда на дисковую систему оказывается большая нагрузка, скорость работы с носителем (запись/чтение) значительно уменьшилась, либо эти процедуры и вовсе вызывают ошибки.

Многие знакомы с программой на Windows – Victoria HDD. Разработчики позаботились о написании ее аналогов для Linux.

Badblocks

Badblocks – дисковая утилита, имеющаяся в Ubuntu и других дистрибутивах Linux по умолчанию. Программа позволяет тестировать как жесткий диск, так и внешние накопители.

Важно! Все приведенные в статье терминальные команды начинаются с параметра sudo, так как для выполнения требуются права суперпользователя.

Перед тем, как тестировать диск в Linux следует проверить, какие накопители подключены к системе, с помощью утилиты fdisk-l. Она также покажет имеющиеся на них разделы.

Теперь можно приступать к непосредственному тестированию на битые сектора. Работа Badblocks организовывается следующим образом:

В записи используются следующие команды и операнды:·

  • -v – выводит подробный отчет о проведенной проверке;·
  • /dev/sdk 1 – проверяемый раздел;·
  • bsector.txt – запись результатов в текстовый файл.


Если при проверке диска нашлись битые блоки, нужно запустить утилиту fsck, либо e2fsck, в зависимости от используемой файловой системы. Они ограничат запись информации в нерабочие сектора. В случае файловых систем ext2, ext3 или ext4 выполняется следующая команда:

В противном случае:

Параметр -l указывает программе, что битые блоки перечислены в файле bsector.txt, и исключать нужно именно их.

GParted

Утилита проверяет файловую систему Linux, не прибегая к текстовому интерфейсу.

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

В главном окне приложения отображаются доступные диски. О том, что носитель пора тестировать, понятно по восклицательному знаку, расположенному рядом с его именем. Запуск проверки производится путем щелчка по пункту «Проверка на ошибки» в подменю «Раздел», расположенном на панели сверху. Предварительно выбирается нужный диск. По завершении сканирования утилита выведет результат.


Проверка HDD и других запоминающих устройств приложением GParted доступна для пользователей ОС Ubuntu, FreeBSD, Centos, Debian и других и других дистрибутивов, работающих на ядре Linux.

Smartmontools

Инструмент позволяет тестировать файловую систему с большей надежностью. В современных жестких дисках имеется встроенный модуль самоконтроля S. M. A. R. T., который анализирует данные накопителя и помогает определить неисправность на первоначальной стадии. Smartmontools предназначен для работы с этим модулем.

Запуск установки производится через терминал:

  • apt install smartmontools – для Ubuntu/Debian;
  • yum install smartmontools – для CentOS.

Для просмотра информации о состоянии жесткого диска, вводится строка:

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

Утилита имеет и другие параметры: -a, --all, -x, --xall. Для получения дополнительной информации вызывается справка:


Safecopy

Когда возникает потребность тестировать винчестер в Linux, стоит быть готовым к любому результату.

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

Замечание! Утилита не предназначена для восстановления удаленных файлов. Она достает информацию, хранящуюся в битых секторах.

Для установки Safecopy на Linux в терминал вводится строка:

Сканирование запускается командой:

Здесь первый путь обозначает поврежденный диск, второй – директорию, куда сохранятся файлы.

Программа способна создать образ файловой системы нестабильно работающего запоминающего устройства.

Что делать, если обнаружена ошибка в системной программе Ubuntu


Третий метод – отключить утилиту Apport, которая отвечает в Linux за сбор информации и отправку отчетов. Такой подход полностью исключит всплывание окон с ошибками. Возможно отключение только показа уведомлений, оставляя службу сбора в рабочем состоянии. Для этого необходимо выполнить:

gsettings set com.ubuntu.update-notifier show-apport-crashes false

Данные продолжат собираться в папке /var/crash. Их периодически необходимо чистить, чтобы они не заполняли дисковое пространство:

Для полного отключения служб Apport, в терминал вводится запись:

В появившемся тексте значение поля enable меняется с 1 на 0. В дальнейшем, чтобы снова включить службу, возвращаются настройки по умолчанию.

Заключение

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

Читайте также: