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

Любой компьютер - сложное устройство, которые состоит из множества компонентов и никто не застрахован от сбоев любого из них. В этой статье мы рассмотрим как своевременно распознать одну из серьезных проблем с устройствами хранения информации, будь то жесткий диск или 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

Теперь, когда мы установили smartmontools мы можем посмотреть станицу помощи, с помощью команды:

Давайте перейдем к работе с утилитой. Вводим следующую команду с параметром -H ,чтобы утилита показала нам информацию о состоянии накопителя:

sudo smartctl -H /dev/sda1

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

Дополнительно, можно указать следующие параметры -a или --all , чтобы получить еще больше информации о накопителе, или -x и --xall , чтобы просмотреть информацию в том числе и об остальных параметрах накопителя.

Выводы

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

Компьютер представляет собой устройство, работа которого основана на взаимодействии множества компонентов. Со временем они могут вызывать сбои в работе. Одной из частых причин неполноценной работы машины становятся битые сектора на диске, поэтому периодически его нужно тестировать. 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 предлагает несколько подходов к решению задачи. На выбор предоставляется перечень утилит, которые выявляют поврежденные сектора и обеспечивают перенос информации на нормально функционирующее устройство.

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

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

Важно! Запуск и выполнение FSCK на смонтированной файловой системе может привести к повреждению данных, поэтому используйте данный материал на свой страх и риск. Автор не несет ответственности за любой ущерб, который вы можете причинить.

Для того, чтобы обезопасить себя необходимо:

  • Перейти в однопользовательский режим (Single user mode) и размонтировать файловую систему
  • Загрузить компьютер в режиме восстановления с помощью установочного компакт-диска

Итак, необходимо проверить диски и исправить ошибки файловой системы, приступим.

1) Single user mode

Измените уровень инициализации и размонтируйте файловую систему:

# init 1
# umount /home

Выполните поиск подключенных разделов:

# fsck /dev/sda1

2) Режим восстановления с установочного компакт-диска

Вставьте установочный компакт-диск в дисковод и перезагрузите систему:

Подождите некоторое время и после загрузки с установочного компакт-диска выполните команду:

# linux rescue nomount

Директива NOMOUNT запретит монтирование, так что вы сможете безопасно использовать FSCK.

После этого запустите FSCK для раздела с ошибками:

# fsck -yvf /dev/sda1

LVM (Logical Volume Manager)

Ситуация с LVM (Logical Volume Manager) разделами немного сложнее. Для запуска FSCK для LVM разделов сначала необходимо найти PV (Physical Vollume) , VG (Volume Group) , LV (Logical Extension) и активировать их, для этого выполните последовательно следующие команды:

# lvm pvscan
# lvm vgscan
# lvm lvchange -ay VolGroup00
# lvm lvscan

# fsck -yfv /dev/VolGroup00/LogVol00

По факту выполнения FSCK вернет результат в виде кода, данный код — это уникальный номер, представляющей сумму следующих значений:

0 - Без ошибок (No errors);
1 - Исправлены ошибки файловой системы (Filesystem errors corrected);
2 - Система должна быть перезагружена (System should be rebooted);
4 - Ошибки файловой системы оставили без изменений (Filesystem errors left uncorrected);
8 - Эксплуатационная ошибка (Operational error);
16 - Ошибки при использовании или синтаксические ошибки (Usage or syntax error);
32 - Fsck отменен по запросу пользователя (Fsck canceled by user request);
128 - Ошибка общей библиотеки (Shared-library error).

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. - для первого диска, для второго соответственно ...
Тип - Символ

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

Любой компьютер — сложное устройство, которые состоит из множества компонентов и никто не застрахован от сбоев любого из них. В этой статье мы рассмотрим как своевременно распознать одну из серьезных проблем с устройствами хранения информации, будь то жесткий диск или 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