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

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, а в нашем случае в Убунту, и какие существуют программы для тестирования наших помощников и спасителей — винчестеров? Проверять жесткий диск следует не с установленной на него системы, а с LiveCD/USB. Одной из таких ценных сборок, будет Parted Magic, хотя можно это сделать и с CD/USB Ubuntu. Это полный боекомплект для работы с хардами. Тут вам и GParted, для изменения размеров разделов HDD (аналог Acronis Disc Director), и CloneZilla, для создания точных копий ваших системных дисков или разделов с последующим восстановлением, и GSmartControl — для отчета о состоянии вашего диска и еще много чего. Итак начнем обзор программ для проверки жесткого диска в Ubuntu.

Консольная программа Badblocks .

Чтобы узнать как разбит ваш жесткий диск или диски, и выбрать раздел для проверки, выполните команду:

sudo fdisk -l

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

sudo badblocks -sv /dev/sdb1

где:

/dev/sdb1 — это проверяемый раздел,

-s — выведет информацию о сканировании в процентах, наличии или отсутствии «битых» секторов и т.д.,

-v — выведет подробную информацию о проверке.

Если нужно получить текстовый отчет, тогда нужно выполнить следующую команду:

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

Вместо /dev/sdb1 вы должны указать нужный раздел вашего жесткого диска, а в вашей Домашней директории появится текстовый файлик errors.txt с отчетом. Если бэды все-таки есть, то желательно их пометить, чтобы система не обращалась к ним во время работы с диском. Чтобы пометить bad-секторы, выполните команду:

sudo e2fsck -l errors.txt /dev/sdb1

Ключ -l дает возможность программе использовать файл errors.txt для работы с «битыми» секторами. Но можно избежать двух вышеуказанных команд и выполнить всего навсего одну:

sudo e2fsck -ct /dev/sdb1

Программа e2fsck входит в состав пакета программ E2fsprogs, среди которых есть и badblock, а ключ -c дает возможность использовать утилиту badblock для поиска плохих секторов.

Чтобы проверить файловую систему (ext 2/ext 3/ext 4) выполните следующую команду:

e2fsck -y /dev/раздел вашего диска или диск целиком

Ключ -y сообщает утилите, что нужно отвечать на все вопросы положительно.

Другие часто используемые параметры:

-p,-a автоматически «ремонтировать» файловую систему без лишних вопросов.
-f форсированная (принудительная) проверка. Проверка произойдет в любом случае, даже если файловая система не нуждалась в ней.
-c запускает программу badblocks, чтобы найти и отметить «битые» секторы на диске;
-v будет отображена детальная информация о проверке.

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

Программа Диски.

В Убунту имеется отличная программа Диски , которая выдает информацию по всем подключенным устройствам в системе (жесткие диски, флеш-накопители, CD/DVD приводы и т.д.) Запустив ее, вы сможете узнать данные S.M.A.R.T. по интересующему диску.

Программа GSmartControl

И напоследок хочу порекомендовать программу GSmartControl , которая является графической оболочкой (GUI) для консольной программы — smartctl. Найти ее можно в Центре приложений Убунту, либо установить через Терминал командой:

sudo apt-get install gsmartcontrol

Программа показывает полную информацию по данным S.M.A.R.T. Подробнее по каждому пункту можно узнать .

Ну вот вы и узнали как проверить жесткий диск в 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 была восстановлена.

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

© 2024 splav38.ru -- Новости. Советы. Обзоры. Программы. Безопасность