Как проверить диски и исправить ошибки файловой системы в Linux. Проверка и восстановление дисков в Linux Проверка hdd на битые сектора linux


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

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

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

Чтобы избежать таких проблем можно использовать smartmontools. Это программный пакет для управления и мониторинга устройств хранения данных с помощью технологии Self-Monitoring Analysis and Reporting Technology или просто SMART.

Большинство современных ATA / SATA, SCSI / SAS накопителей информации предоставляют интерфейс SMART. Цель SMART - мониторинг надежности жесткого диска, для выявления различных ошибок и своевременного реагирования на их появление. Smartmontools состоит из двух утилит - smartctl и smartd. Вместе они представляют мощную систему мониторинга и предупреждения о возможных поломках HDD в Linux. Дальше будет подробно рассмотрена проверка жесткого диска linux.

Пакет smartmontools есть в официальных репозиториях большинства дистрибутивов Linux, поэтому установка сводится к выполнению одной команды. В Debian и основанных на нем системах выполните:

aptitude install smartmontools

А для Red Hat:

yum install smartmontools

Теперь можно переходить к диагностике жесткого диска linux.

Проверка жесткого диска в smartctl

Сначала узнайте какие жесткие диски подключены к вашей системе:

ls -l /dev | grep -E "sd|hd"

В выводе будет что-то подобное:

Здесь - sdx - имя устройства HDD подключенного к компьютеру.

Для отображения информации о конкретном жестком диске (модель устройства, S/N, версия прошивки, версия ATA, доступность интерфейса SMART) Запустите smartctl с опцией info и именем жесткого диска. Например, для /dev/sda:

smartctl --info /dev/sda

Хотя вы можете и не обратить внимание на версию ATA, это один из самых важных факторов при поиске замены устройству. Каждая новая версия ATA совместима с предыдущими. Например, старые устройства ATA-1 и ATA-2 прекрасно будут работать на ATA-6 и ATA-7 интерфейсах, но не наоборот. Когда версии ATA устройства и интерфейса не совпадают, возможности оборудования не будут полностью раскрыты. В данном случае для замены лучше всего выбрать жесткий диск ATA-7.

Запустить проверку жесткого диска ubuntu можно командой:

smartctl -s on -a /dev/sda

Здесь опция -s включает флаг SMART на указном устройстве. Вы можете его убрать если поддержка SMART уже включена. Информация о диске разделена на несколько разделов, В разделе READ SMART DATA находится общая информация о здоровье жесткого диска.

START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment rest result: PASSED

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

Следующая вещь которую можно посмотреть, когда нужна диагностика HDD в linux, это таблица SMART атрибутов.

В SMART таблице записаны параметры, определенные для конкретного диска разработчиком, а также порог отказа для этих параметров. Таблица заполняется автоматически и обновляется на основе прошивки диска.

  • ID # - ID атрибута, как правило, десятичное число между 1 и 255;
  • ATTRIBUTE_NAME - Название атрибута;
  • FLAG - флаг обработки атрибута;
  • VALUE - это поле представляет нормальное значение для состояния данного атрибута в диапазоне от 1 до 253, 253 - лучшее состояние, 1 - худшее. В зависимости от свойств, начальное значение может быть от 100 до 200;
  • WORST - худшее значение value за все время;
  • THRESH - самое низкое значение value, после перехода за которое нужно сообщить что диск непригоден для эксплуатации;
  • TYPE - тип атрибута, может быть Pre-fail или Old_age. Все атрибуты по умолчанию считаются критическими, то-есть если диск не прошел проверку по одному из атрибутов, то он уже считается не пригодным (FAILED) но атрибуты old_age не критичны;
  • UPDATED - показывает частоту обновления атрибута;
  • WHEN_FAILED - будет установлено в FAILING_NOW если значение атрибута меньше или равно THRESH, или в "-" если выше. В случае FAILING_NOW, лучше как можно скорее выполнить резервное копирование, особенно если тип атрибута Pre-fail.
  • RAW_VALUE - значение, определенное производителем.

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

Настройка smartd и smartctl для диагностики и мониторинга в реальном времени

Диагностика hdd в linux в реальном времени настраивается очень просто. Сначала отредактируйте файл конфигурации smartd - /etc/smartd.conf. Добавьте следующую строку:

nano /etc/smartd.conf

/dev/sda -m [email protected] -M test

  • -m - адрес электронной почты для отправки результатов проверки. Это может быть адрес локального пользователя, суперпользователя или внешний адрес, если настроен сервер для отправки электронной почты;
  • -M - частота отправки писем. once - отправлять только одно сообщение о проблемах с диском. daily - отправлять сообщения каждый день если была обнаружена проблема. diminishing - отправлять сообщения через день если была обнаружена проблема. test - отправлять тестовое сообщение при запуске smartd. exec - выполняет указанную программу в место отправки почты.

Сохраните изменения и перезапустите smartd. Вы должны получить на электронную почту письмо подобного содержания:

Также можно запланировать тесты по своему графику, для этого используйте опцию -s и регулярное выражение типа "T/MM/ДД/ДН/ЧЧ", где:

  • T - тип теста:
  • L - длинный тест;
  • S - короткий тест;
  • C - тест перемещение (ATA);
  • O - оффлайн (тест).

Остальные символы определяют дату и время теста:

  • ММ - месяц в году;
  • ДД - день месяца;
  • ЧЧ - час дня;
  • ДН - день недели (от 1 - понедельник 7 - воскресенье;
  • MM, ДД и ЧЧ - указываются с двух десятичных цифр.

Точка означает все возможные значения, выражение в скобках (A|B|C) - означает один из трех вариантов, выражение в квадратных скобках означает диапазон (от 1 до 5).

Например, чтобы выполнять полную проверку жесткого диска linux каждый рабочий день в час дня добавьте следующую строку в smartd.conf:

DEVICESCAN -s (L /../../ / 13)

Выводы

Если вы хотите быстро проверить механическую работу жесткого диска, посмотреть его физическое состояние или выполнить более-менее полное сканирование поверхности диска используйте smartmontools. Не забывайте выполнять регулярное сканирование, потом будете себя благодарить. Вы уже делали это раньше? Будете делать? Или используете другие методы? Напишите в комментариях!

Источник перевода.

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

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

Важно! Запуск и выполнение 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).

Пришлось и мне столкнуться с данной проблемой. Мой один товарищ, у которого установлена Убунту на старенький ноутбук ASUS, и который просто не хочет хоть иногда включать мозги, обратился ко мне с такой проблемой. На его ноуте установлена новая Убунту 12.10 и очень часто система просто не хочет грузиться, выбрасывая в черный экран, либо застывая на фиолетовом фоне. А вот в последнее время начало выскакивать такое вот сообщение, что-то типа «Операционная система не смогла загрузиться. Выберите для дальнейших действий нужную клавишу…» И дальше идет описание, что нужно нажать. Я уже точно не помню, какие клавиши предлагает нажать система, но смысл такой, что для автоматического исправления ошибок нажмите такую-то клавишу, для ручной отладки другую, и чтобы игнорировать это сообщение предлагается нажать третью кнопку. Автоматическое исправление ошибок ни к чему не приводило и загрузка операционной системы так и не доходила до логического завершения. Вот и решил я попробовать знаменитую команду fsck .

Для начала нужно загрузиться либо с загрузочной флешки с Ubuntu (Lubuntu, Xubuntu, Kubuntu и т.д.), либо с диска Ubuntu Live CD. Теперь нам нужно узнать, какой именно раздел с Убунту нам нужно просканировать для исправления файловой системы. Запускаем Терминал (Ctrl-Alt-T) и выполняем команду:

sudo fdisk -l

Данная команда покажет нам все диски, флешки, которые примонтированы к системе. Я приведу пример с моим личным компьютером, а не с ноутбуком приятеля. Вот, что вышло у меня:

ubuntu@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 640.1 GB , 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders, total 1250263728 sectors



Disk identifier: 0x0009d6f7


/dev/sda1 * 2048 61442047 30720000 83 Linux
/dev/sda2 61442048 73730031 6143992 82 Linux swap / Solaris
/dev/sda3 73730048 1250263039 588266496 83 Linux

Disk /dev/sdb: 500.1 GB , 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb9ff6f01

Device Boot Start End Blocks Id System
/dev/sdb1 * 16065 100197404 50090670 83 Linux
/dev/sdb2 105322201 976771071 435724435+ 5 Extended
/dev/sdb3 100197405 105322139 2562367+ 82 Linux swap / Solaris
/dev/sdb5 105322203 832110591 363394194+ 7 HPFS/NTFS/exFAT
/dev/sdb6 832112640 860755218 14321289+ 83 Linux
/dev/sdb7 860758016 862613503 927744 82 Linux swap / Solaris
/dev/sdb8 862615552 976771071 57077760 83 Linux

Partition table entries are not in disk order

Disk /dev/sdc: 8115 MB , 8115978240 bytes
250 heads, 62 sectors/track, 1022 cylinders, total 15851520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3072e18

Device Boot Start End Blocks Id System
/dev/sdc1 * 32 15847625 7923797 b W95 FAT32

Как видно из вывода команды sudo fdisk -l , у меня имеются 2 жестких диска (sda)640 Гб и (sdb)500 Гб, а также флешка (sdc)8Гб, с которой я собственно и загружался. Я знаю, что моя основаня система с Убунту 12.04 находится на диске sda, а раздел с операционной системой соответственно называется sda1.

Теперь когда мы знаем раздел, который нужно сканировать, можно собственно приступить к его проверке. В Терминале:

sudo fsck -y -f -c /dev/sda1

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

sudo umount /dev/sda1

Ключи и параметры команды fsck:

y - всегда отвечать yes на все вопросы (имеется альтернатива: ключ p - начинает проверку в полностью автоматическом режиме);

f - принудительная проверка файловой системы (даже если файловая система помечена как полностью работоспособная)

c - ищет битые блоки (bad blocks), а после отмечает их соответствующим образом

/dev/sda1 - устройство или раздел, которые нужно проверить. Хотя команда может иметь и другой вид. Например:

sudo fsck -p /dev/sda1

В данном случае добавлен только ключ -p. Вы просто почитайте о всех ключах команды fsck и добавляйте именно нужные вам ключи. Чтобы узнать о всех возможностях программы введите в Терминале:

man fsck

Вот, что выдал Терминал после проверки:

ubuntu@ubuntu:~$ sudo fsck -y -f -c /dev/sda1
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
Checking for bad blocks (read-only test): 0.00% done, 0:00 elapsed. (0/0/0 errdone
/dev/sda1: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information







2024 © uzbek-seks.ru.