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