Linux проверка поверхности диска. Проверка диска на битые секторы в Linux. Мониторинг S.M.A.R.T состояния жестких дисков в Zabbix

Любой компьютер — сложное устройство, которые состоит из множества компонентов и никто не застрахован от сбоев любого из них. В этой статье мы рассмотрим как своевременно распознать одну из серьезных проблем с устройствами хранения информации, будь то жесткий диск или flash-накопитель, как выполняется проверка диска на битые секторы linux.

Любой накопитель состоит из множества маленьких блоков (секторов), которые хранят информацию в виде нулей или единиц (битов). Если, по какой-то причине, операционная система не может записать бит информации в определенный сектор, то можно считать его «битым».

Сектор может стать битым по разным причинам:

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

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

Давайте рассмотрим, при помощи каких утилит в Linux мы можем проверить диск на битые секторы linux.

Проверка накопителя на битые секторы средствами badblocks.

Badblocks — стандартная утилита Linuх для проверки на битые секторы. Она устанавливается по-умолчанию практически в любой дистрибутив и с ее помощью можно проверить как жесткий диск, так и внешний накопитель.

Для начала давайте посмотрим, какие накопители подключены к нашей системе и какие на них имеются разделы. Для этого нам нужна еще одна стандартная утилита Linux — fdisk.

Естественно, что выполнять команды нужно с правами суперпользователя:

Параметром -l мы говорим утилите fdisk, что нам нужно показать список разделов и выйти.

Теперь, когда мы знаем, какие разделы у нас есть, мы можем проверить их на битые секторы. Для этого мы будем использовать утилиту badblocks следующим образом:

$ sudo badblocks -v /dev/sda1 > badsectors.txt

Для проверки мы указываем следующие параметры:

  • -v — подробный вывод информации о результатах проверки.
  • /dev/sda1 — раздел, который мы хотим проверить на битые секторы.
  • > badsectors.txt — выводим результат выполнения команды в файл badsectors.txt.

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

  • e2fsck. Если мы будем исправлять раздел с файловыми система Linux (ext2,ext3,ext4).
  • fsck. Если мы будем исправлять файловую систему, отличную от ext.

Вводим следующие команды:

$ sudo e2fsck -l badsectors.txt /dev/sda1

Или, если у нас файловая система не ext:

$ sudo fsck -l badsectors.txt /dev/sda1

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

Проверка накопителя на битые секторы в Linux в smartmontools

Теперь давайте рассмотрим более современный и надежный способ проверить диск на битые секторы linux. Современные накопители ATA/SATA ,SCSI/SAS,SSD имеют встроенную систему самоконтроля S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology , Технология самоконтроля, анализа и отчетности), которая производит мониторинг параметров накопителя и поможет определить ухудшение параметров работы накопителя на ранних стадиях. Для работы со S.M.A.R.T в Linux есть утилита smartmontools.

Давайте сначала ее установим. Если ваш дистрибутив основан на Debian\Ubuntu, то вводите:

$ sudo apt install smartmontools

Если же у Вас дистрибутив на основе RHEL\CentOS, то вводите:

$ sudo yum install smartmontools

Неисправный жёсткий диск - одно из самых неприятных явлений в работе компьютера. Мало того что мы легко можем потерять очень много важной информации и файлов, так и замена HDD неслабо бьёт по бюджету. Прибавим к этому потраченное время и нервы, которые, как известно, не восстанавливаются. Чтобы не дать проблеме застать нас врасплох и заранее диагностировать её, стоит знать, как проверить жёсткий диск на ошибки в ОС Ubuntu. Программных средств, предоставляющих такие услуги, предостаточно.

Как в Ubuntu протестировать жесткий диск на ошибки.

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

Открываем терминал и вводим:

Эта команда отображает информацию о всех HDD, которые используются системой.

После этого вводим:

sudo badblocks -sv /dev/sda

Команда служит уже для поиска повреждённых секторов. Вместо /dev/sda вводим имя своего накопителя. Ключи -s и -v служат для того, чтобы отображать в правильном порядке ход проверки блоков (s) и чтобы выдавать отчёт обо всех действиях (v).

Нажатием клавиш Ctrl + C мы останавливаем проверку жёсткого диска.

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

Для того чтобы размонтировать файловую систему, вводим:

Для проверки и исправления ошибок:

sudo fsck -f -c /dev/sda

  • «-f» делает процесс принудительным, то есть проводит его, даже если HDD помечен как работоспособный;
  • «-c» находит и помечает бэд-блоки;
  • «-y» - дополнительный вводимый аргумент, который сразу же отвечает Yes на все вопросы системы. Вместо него можно ввести «-p», он проведёт проверку в автоматическом режиме.

Программы

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

GParted как раз для тех, кому текстовый интерфейс не по душе. Утилита выполняет большое количество задач, связанных с работой HDD на Убунту. В их число входит и проверка диска на ошибки.

Для начала нам нужно скачать и установить GParted. Вводим следующую команду, чтобы выполнить загрузку из официальных репозиториев:

sudo apt-get install gparted

  1. Открываем приложение. На главном экране сразу же выводятся все носители. Если какой-то из них помечен восклицательным знаком, значит, с ним уже что-то не так.
  2. Щёлкаем по тому диску, который хотим проверить.
  3. Жмём на кнопку «Раздел», расположенную сверху.
  4. Выбираем «Проверка на ошибки».

Программа отсканирует диск. В зависимости от его объёма процесс может идти дольше или меньше. После сканирования мы будем оповещены о его результатах.

Это уже более сложная утилита, которая выполняет более серьёзную проверку HDD по различным параметрам. Как следствие, управлять ей тоже сложнее. Графический интерфейс в Smartmontools не предусмотрен.

Качаем программу:

aptitude install smartmontools

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

ls -l /dev | grep -E ‘sd|hd’

Вбиваем команду для выведения подробной информации о носителе. Стоит посмотреть на параметр ATA. Дело в том, что при замене родного диска, лучше ставить устройство с тем же либо большим ATA. Так можно максимально раскрыть его возможности. А также посмотрите и запомните параметры SMART.

smartctl –info /dev/sde

Запускаем проверку. Если SMART поддерживается, то добавляем «-s». Если он не поддерживается или уже включён, то этот аргумент можно убрать.

smartctl -s on -a /dev/sde

После этого смотрим информацию под READ SMART DATA. Результат может принимать два значения: PASSED или FAILED. Если выпало последнее, можно начинать делать резервные копии и искать замену винчестеру.

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

Safecopy

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

Устанавливаем Safecopy:

sudo apt install safecopy

Переносим файлы из одной директории в другую. Выбрать можно любую другую. В данном случае мы переносим данные с диска sda в папку home.

sudo safecopy /dev/sda /home/

Бэд-блоки

У некоторых могут возникнуть вопросы: «что такое эти битые блоки и откуда они, вообще, взялись на моём HDD, если я его ни разу не трогал?» Bad blocks, или бэд-секторы - разделы HDD, которые больше не читаются. Во всяком случае так они по объективным причинам были помечены файловой системой. И скорее всего, с диском в этих местах действительно что-то не так. «Бэды» встречаются как на старых винчестерах, так и на самых современных, поскольку работают они практически по тем же самым технологиям.

Появляются же сбойные секторы по разным причинам.

  • Прерывание записи из-за отключения питания. Вся информация, поступающая на жёсткий диск, разбивается в виде единиц и нулей на самые разные его части. Сбить этот процесс - значит сильно запутать винчестер.
  • Некачественная сборка. Тут и говорить нечего. У дешёвого китайского устройства полететь может что угодно.

Теперь вы знаете, как сканировать HDD на ошибки. Проверка диска как на Ubuntu, так и на других системах довольно важная операция, которую стоит проводить хотя бы раз в год.

by Admin

Рассмотрим способы проверки и диагностики hdd в linux системах. Информация о работе HDD поможет проанализировать состояние и в случае необходимости заменить сбойный носитель, тем самым предотвратив крах системы или потерю данных. Дополнительно прикручиваем наблюдение за smart HDD в нашу систему мониторинга zabbix

Получаем список подключенных накопителей в системе

Для определения, что и куда смонтированно, выполним

Посмотреть занятое место на том или ином накопителе

Если есть софт.райд, проверим его следующей командой

root@big:~# cat /proc/mdstat
Personalities:
md1: active raid1 sdb3 sda3
965888832 blocks super 1.2

md0: active raid1 sdb1 sda1
9756544 blocks super 1.2
unused devices:
root@big:~#

какой raid установлен (собран)
md0 - название устройства raid
sda sdb - включенные устройства в данный raid
- состояние дисков в RAID массиве

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

aptitude install hdpparm sysstat smartmontools

Смотрим состояние скорости чтения с накопителя

При помощи iostat (в составе sysstat) анализируем нагрузку на наши HDD

Смотрим вывод данных по всем дискам c интервалом в 10 сек

Можно определить накопитель для анализа, добавив

При помощи данной утилиты определим нагрузку на наши устройства, статистику ввода / вывода и процентную утилизацию.

avg-cpu: %user %nice %system %iowait %steal %idle
0,16 0,00 1,89 23,75 0,00 74,21

Проверка состояния накопителей

Для начала проверим наш HDD на наличие сбойных блоков, в случае необходимости выделим их и пометим для игнорирования.

badblocks /dev/sda3 -sv > /root/badblockSDA3
Checking for bad blocks (read-only test): 27.93% done, 36:12 elapsed. (0/0/0 errors)

/dev/sda3 - имя проверяемого устройства
s - вывод процентной информации
v - включаем подробный режим
> /root/badblockSDA3 - записываем сбойные секторы в файл

Пометка бэд блоков (в дальнейшем помеченные блоки будут игнорироваться системой):

e2fsck -l /root/badblockSDA3 /dev/sda3

Плохие блоки помечены, с диском можно работать.

ВНИМАНИЕ!!! Данная операция должна производиться на размонтированном носителе или в режиме read-only

ВНИМАНИЕ!!! Проверенное устройство и устройство на на котором будут помечаться сбойные блоки должно быть одно и тоже!

Получаем данные S.M.A.R.T о работе HDD

Где /dev/sdX - имя устройства которое необходимо проверить.
Вы получите вывод атрибутов S.M.A.R.T., значение каждого из которых хорошо описаны в wiki

Мониторинг S.M.A.R.T состояния жестких дисков в Zabbix

Для каждого из накопителей проверяем поддержку SMART

root@big:~# smartctl -i /dev/sda |grep SMART
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
root@big:~#

Если поддерживается но не включен, то включаем

smartctl -s on -S on -o on /dev/sda

проверяем статус командой

smartctl -H /dev/sda |grep "test"| cut -f2 -d: |tr -d " "

root@big:/etc/zabbix# smartctl -H /dev/sda |grep "test"| cut -f2 -d: |tr -d " "
PASSED
root@big:/etc/zabbix#

В конфигурационном файле zabbix агента агента включаем параметр проверки smart для диска

UserParameter=HDD_smart.[*],sudo smartctl -H /dev/$1 |grep "test"| cut -f2 -d: |tr -d " "

где HDD_smart - ключ для zabbix элемента

в sudoers добавляем запись

zabbix ALL=NOPASSWD:/usr/sbin/smartctl

рестартуем sudo и zabbix агента.

Дабы быть уверенным в корректности, залогинимся под zabbix пользователем и проверяем выполнение нашей команды

root@big:/etc/zabbix# su - zabbix -s /bin/bash
Каталог отсутствует или недоступен, вход в систему выполняется с HOME=/
zabbix@big:/$ sudo smartctl -H /dev/sda |grep "test"| cut -f2 -d: |tr -d " "
PASSED
zabbix@big:/$

На zabbix сервер создадим zabbix agent (Активный) элемент данных

Имя - произвольное
Тип - Zabbix агент (Активный)
Ключ - HDD_smart. - для первого диска, для второго соответственно ...
Тип - Символ

И через некоторое время наблюдаем данные

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

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

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

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

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

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

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

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

Badblocks

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

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

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

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

badblocks -v /dev/sdk1 > bsector.txt

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

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

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

fsck -l bsector.txt /dev/sdk1

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

fsck -l bsector.txt /dev/sdk1

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

GParted

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

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

apt-get install gparted

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

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

Smartmontools

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

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

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

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

smartctl –H /dev/sdk1

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

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

Safecopy

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

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

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

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

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

safecopy /dev/sdk1 /home/files/

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

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

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

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

С проблемой обычно сталкиваются пользователи Ubuntu версии 16.04. Тестировать HDD в этом случае нет необходимости, так как проблема скорее заключается именно в программном сбое. Сообщение оповещает о непредвиденном завершении работы программы и предлагает отправить отчет разработчикам. При согласии откроется окно браузера, где требуется заполнить форму из 4 шагов. Такой вариант вызывает сложности и не гарантирует исчезновения ошибки.

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

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

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

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

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

gksu gedit /etc/default/apport

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

Заключение

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

Предполагал ли Линус Тoрвальдс , создавая свое детище, что Linux будет использоваться во встроенных системах, причем не только в дешевых домашних роутерах, но и в таких серьезных телеком решениях как АТС AVAYA?

Недавно пришлось восстанавливать работоспособность АТС AVAYA одного крупного Заказчика. Это шлюз Avaya G650 (шасси) с сервером Avaya S8400 (процессор). Где в качестве системного диска используется носитель CompactFlash объемом 2 ГБ. Который условно можно считать SSD диском с IDE интерфейсом.
И каково же было мое удивление, когда подключив CF накопитель через карт-ридер я увидел знакомую структуру Linux файловой системы. Что, конечно, упрощало процедуру проверки работоспособности CF накопителя.

Как проверить файловую систему Linux диск на наличие ошибок

В операционной системе MicroSoft DOS (о да, я помню версию 5.0, которая помещалась на одной дискете!) была команда проверки дисков CHKDSK . И нечто подобное есть и в Linux.
Чтобы проверить диск Linux на наличие ошибок файловой системы необходимо выяснить имена файловых систем для проверки:

# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda 20G 4.0G 15G 21% / /dev/sdd1 1G 455M 555M 46% /media/Np%blsl3648B4Jjeiedgyy /dev/sdd6 1G 98M 902M 10% /media/10.13-23dd none 246M 0 246M 0% /dev/shm

Для тестируемого накопителя CF — это /dev/sdd1 и /dev/sdd6
Далее необходимо размонтировать тестируемые файловые системы:

#sudo umount /dev/sdd1 #sudo umount /dev/sdd6

#fsck -y /dev/sdd1 #fsck -y /dev/sdd6

Параметр -y будет автоматом на все вопросы отвечать yes, что как правило большинство пользователей и делает.

Результаты работы утилиты проверки файловой системы Lunux FSCK

В моем случае на одном из разделов были ошибки, которые утилита исправила. После чего CF накопитель был возвращен на свое место и работоспособность АТС Avaya была восстановлена.