Современные жесткие диски обладают технологией S.M.A.R.T. C момента начала работы диск анализирует свои параметры и записывает их результат в служебную зону накопителя. Проанализировав эти данные можно узнать текущее состояние диска, критические ошибки. На этой информации можно спрогнозировать целесообразность дальнейшей эксплуатации. В Linux системах есть две утилиты способные прочитать данные состояния диска. Первая утилита smartctl. Вторая […]
Современные
жесткие диски обладают технологией S.M.A.R.T.
C момента начала работы диск анализирует свои параметры и записывает их
результат в служебную зону накопителя. Проанализировав эти данные можно узнать
текущее состояние диска, критические ошибки. На этой информации можно
спрогнозировать целесообразность дальнейшей эксплуатации.
По статистике спрогнозировать 100% отказ работоспособности HDD на основе полученной информации не получится. Это обусловлено множеством факторов. Вероятность выхода из строя в ближайшее время равна чуть более 50%.
В Linux системах есть две утилиты способные
прочитать данные состояния диска.
Первая
утилита smartctl. Вторая smartd
С помощью
утилиты Smartctl можно посмотреть состояние диска на данный момент времени.
Утилита Smartd – это демон, опрашивающий состояние
диска каждые 30 минут. Собранные данные пишутся в лог файл.
Частота опроса жесткого диска настраивается в конфигурационном файле. Файл лога по умолчанию «/var/log/messages»
Описанные
две утилиты находятся в одном пакете «Smartmontools».
По умолчанию
в операционную систему Centos этот пакет не установлен. Произведем его установку
командой:
# yum install –y smartmontools
После
установки утилит можно посмотреть полную информацию о жестком диске командой:
# smartctl –all /dev/sda
В самом Тут следует В следующем Информация о состоянии жесткого диска находится в Ниже рассмотрим название и параметры атрибутов. Если значение VALUE стало меньше THRESH в случае типа Pre-fail атрибута — существует, большая вероятность, что диск выйдет из строя в ближайшие 24 часа. Если значение VALUE стало меньше THRESH в случае Old_age атрибута — существует большая вероятность, что диск выйдет из строя т.к. выработан ресурс. Вот только когда — науке это неизвестно. Практически все значения атрибутов измеряются в условных единицах (исключение могут составлять такие параметры как температура и.т.д) Далее разберем что одначают, те или иные атрибуты из нашего Далее Утилита Smartctl очень полезна для диагностики В зависимости от типа жесткого диска в статистике могут отображаться различные атрибуты. Всю информацию по ним можно найти в Вики. Посмотреть Узнать всю Тут следует Команда
начале полученной информации выводится описание жесткого диска.
остановиться на таких пунктах как:
твердотельное устройство)
данных)
разделе идет предварительная Smart информация устройства
test result: PASSED — Результат теста самооценки SMART общего состояния
здоровья: ПРОЙДЕН.
SMART Values – общие данные SMART. Тут описываются общие настройки и
рекомендуемые параметры настройки.
следующем разделе:
номер.
Name – Имя атрибута
флаг, назначенный производителем.
диска на основе Raw_value. Измеряется в условных единицах). Низкое значение
говорит о быстрой деградации диска или о возможном скором сбое. т.е. чем выше
значение Value атрибута, тем лучше. Это значение атрибута нужно сравнивать с
пороговым (threshold) значением. Если это критический атрибут и значение ниже
порогового — нужно проводить замену диска.
может изменяться на протяжении жизни диска, и не должно быть ниже или равным
пороговому значению (threshold). По нему нельзя однозначно судить о
здоровье диска, его необходимо сравнивать со значением Thresh.
параметр Value для того, чтобы состояние атрибута
было признано критическим.
атрибута. Критические (Pre-fail) и не критические (Old_age)
– когда происходит
обновление информации
Worst значениями).
примера.
операций переназначения секторов. При обнаружении повреждённого сектора на
винчестере, информация из него помечается и переносится в специально отведённую
зону, происходит утилизация bad блоков, с последующим консервированием этих
мест на диске. Этот процесс называют remapping. Чем больше значение Reallocated
Sectors Count, тем хуже состояние поверхности дисков — физический износ
поверхности. Поле raw value содержит общее количество переназначенных секторов.
устройством, во включенном состоянии. В качестве порогового значения для него
выбирается паспортное время наработки на отказ.
–выключения.
текущий уровень жизни SSD в процентах.
переназначенных секторов.
ошибок.
из строя этот счётчик увеличивается. Большое число таких ячеек указывает на
высокую вероятность того, что диск выйдет из строя преждевременно – задолго до
достижения заложенного производителем числа циклов перезаписи.
блоков во время выполнения.
Необработанное значение Raw Value: количество ошибок, которые не
удалось исправить с помощью внутренних подпрограмм накопителя.
жесткого диска.
ошибок считывания, исправленных оборудованием накопителя с применением кода
коррекции ошибок. Подобные ошибки не требуют повторного считывания сектора, и
не приводят к потере скорости обмена данными, но большое их количество говорит
об ухудшении параметров тракта считывания.
Количество ошибок при передаче данных в режиме прямого доступа к памяти,
обнаруженных средствами циклического избыточного кода. Аппаратные средства
контроля передачи данных из накопителя в оперативную память обнаружили ошибку
контрольной суммы и исправили ее, если ошибка исправимая. В данном случае
алгоритм обычной работы диска не изменяется. В случае же неисправимой ошибки,
процедура ее обработки выполняется системой.
записанных секторов LBA. Значение Raw Value : совокупное количество секторов, записанных
системой. Значение увеличивается на 1 на каждые 65 536 секторов (32 МБ),
записываемых системой.
сообщение «No Errors Logged» говорит о том, что ошибки не зарегистрированы.
состояния жестких дисков.
описание жесткого диска можно командой:# smartctl – i /dev/sda
информацию об устройстве можно командой:# smartctl –x /dev/sda
обратить внимание на информацию о температуре жесткого диска. В заголовке
указывается как часто происходит замер температуры и как часто эта информация
логируется. # smartctl –scan
выводит список подключенных
устройств.
Hard disks can fail unexpectedly and it is always best to keep recent backups of all important data. Please keep in mind that even if a current or oncoming failure is detected, there may not be enough time to backup the data. Below are several methods that can be used to identify bad blocks or disk errors in CentOS/RHEL.
Using smartctl
If there are several I/O errors in /var/log/messages or one simply suspects the hard disks may be failing, smartctl can be a helpful tool in checking them. S.M.A.R.T. stands for Self-Monitoring, Analysis and Reporting Technology. You have to enable the S.M.A.R.T. support in the BIOS before using it.
Next, install the needed packages to run /usr/sbin/smartctl. In Red Hat Enterprise Linux, it is provided by the smartmontools package.
1. Verify if your hard disk supports S.M.A.R.T. :
Replace /dev/xxx with the hard disk of interest when using the commands outlined in this post.
2. For SATA drives use:
# smartctl -i -d ata /dev/xxx
3. Enable S.M.A.R.T. support with:
# smartctl -s on /dev/xxx ### For SCSI Disks # smartctl -s on -d ata /dev/xxx ### for SATA Disks
4. Running the following command as root can be a quick PASS/FAIL test but more thorough testing discussed below is generally more conclusive:
Running smartctl in the background
To start a background test run the following as root:
# smartctl -t long /dev/xxx
To access the results, use the following command:
To learn more about various options that can be used with smartctl view the man page of the command:
Using badblocks
You can also use the “badblocks” command in order to check for bad blocks on a disk device. The “badblocks” command can be very useful in isolating problems with syncing LVM partitions within Linux. LVM operations will fail due to bad blocks on a disk. Bad blocks on either the source or destination disk within a LVM mirror will cause a synchronization failure.
Badblocks can also be used in conjunction with the fsck and makefs to mark the blocks as bad. If the output of badblocks is going to be fed to the e2fsck or mke2fs programs, it is important that the block size is properly specified, since the block numbers which are generated are very dependent on the block size in use by the filesystem. For this reason, it is strongly recommended that users not run badblocks directly, but rather use the -c option of the e2fsck and mke2fs programs.
Warning: The mis-use of these commands can cause data loss. Additional information on the command “badblocks” is available using the “man badblocks” command.
1. Use the disk checking tool badblocks to scan the specified hard disk block by block. For example, to scan /dev/sdd issue the commands:
# mount | grep sdd # find all mounted partitions of sdd # umount /dev/sdd1 # unmount the partitions (may be more then one) # badblocks -n -vv /dev/sdd
Where -n is use non-destructive read-write mode. By default only a non-destructive read-only test is done.
Note: Never use the -w option on a device containing an existing file system. This option erases data! If write-mode testing needs to be performed on an existing file system, use the -n option instead. It is slower, but it will preserve the data.
2. If the messages similar to the examples found below appear in /var/log/messages or to the console following the running of badblocks it is recommended to backup any data on the affected devices and replace the device:
Apr 4 13:50:40 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error } Apr 4 13:50:40 test kernel: sdd: dma_intr: error=0x40 { UncorrectableError }, LBAsect=74367249, sector=74367232 Apr 4 13:50:40 test kernel: ide: failed opcode was: unknown Apr 4 13:50:40 test kernel: end_request: I/O error, dev sdd, sector 74367232 Apr 4 13:50:42 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error } Apr 4 13:50:42 test kernel: sdd: dma_intr: error=0x40 { UncorrectableError }, LBAsect=74367249, sector=74367240 Apr 4 13:50:42 test kernel: ide: failed opcode was: unknown Apr 4 13:50:42 test kernel: end_request: I/O error, dev sdd, sector 74367240 Apr 4 13:50:44 test kernel: sdd: dma_intr: status=0x51 { DriveReady SeekComplete Error }
3. The command below will dump found bad blocks to the output file: badblocks.log.
# badblocks -v -o badblocks.log /dev/sdd
FSCK – очень важная утилита для Linux / Unix, она используется для проверки и исправления ошибок в файловой системе.
Она похоже на утилиту «chkdsk» в операционных системах Windows.
Она также доступна для операционных систем Linux, MacOS, FreeBSD.
FSCK означает «File System Consistency Check», и в большинстве случаев он запускается во время загрузки, но может также запускаться суперпользователем вручную, если возникнет такая необходимость.
Может использоваться с 3 режимами работы,
1- Проверка наличия ошибок и позволить пользователю решить, что делать с каждой ошибкой,
2- Проверка на наличие ошибок и возможность сделать фикс автоматически, или,
3- Проверка наличия ошибок и возможность отобразить ошибку, но не выполнять фикс.
Содержание
- Синтаксис использования команды FSCK
- Команда Fsck с примерами
- Выполним проверку на ошибки в одном разделе
- Проверьте файловую систему на ошибки и исправьте их автоматически
- Проверьте файловую систему на наличие ошибок, но не исправляйте их
- Выполним проверку на ошибки на всех разделах
- Проверим раздел с указанной файловой системой
- Выполнять проверку только на несмонтированных дисках
Синтаксис использования команды FSCK
$ fsck options drives
Опции, которые можно использовать с командой fsck:
- -p Автоматический фикс (без вопросов)
- -n не вносить изменений в файловую систему
- -у принять «yes» на все вопросы
- -c Проверить наличие плохих блоков и добавить их в список.
- -f Принудительная проверка, даже если файловая система помечена как чистая
- -v подробный режим
- -b использование альтернативного суперблока
- -B blocksize Принудительный размер блоков при поиске суперблока
- -j external_journal Установить местоположение внешнего журнала
- -l bad_blocks_file Добавить в список плохих блоков
- -L bad_blocks_file Установить список плохих блоков
Мы можем использовать любую из этих опций, в зависимости от операции, которую нам нужно выполнить.
Давайте обсудим некоторые варианты команды fsck с примерами.
Команда Fsck с примерами
Примечание: – Прежде чем обсуждать какие-либо примеры, прочтите это. Мы не должны использовать FSCK на смонтированных дисках, так как высока вероятность того, что fsck на смонтированном диске повредит диск навсегда.
Поэтому перед выполнением fsck мы должны отмонтировать диск с помощью следующей команды:
$ umount drivename
Например:
$ umount /dev/sdb1
Вы можете проверить номер раздела с помощью следующей команды:
$ fdisk -l
Также при запуске fsck мы можем получить некоторые коды ошибок.
Ниже приведен список кодов ошибок, которые мы могли бы получить при выполнении команды вместе с их значениями:
- 0 – нет ошибок
- 1 – исправлены ошибки файловой системы
- 2 – система должна быть перезагружена
- 4 – Ошибки файловой системы оставлены без исправлений
- 8 – Операционная ошибка
- 16 – ошибка использования или синтаксиса
- 32 – Fsck отменен по запросу пользователя
- 128 – Ошибка общей библиотеки
Теперь давайте обсудим использование команды fsck с примерами в системах Linux.
Выполним проверку на ошибки в одном разделе
Чтобы выполнить проверку на одном разделе, выполните следующую команду из терминала:
$ umount /dev/sdb1 $ fsck /dev/sdb1
Проверьте файловую систему на ошибки и исправьте их автоматически
Запустите команду fsck с параметром «a» для проверки целостности и автоматического восстановления, выполните следующую команду.
Мы также можем использовать опцию «у» вместо опции «а».
$ fsck -a /dev/sdb1
Проверьте файловую систему на наличие ошибок, но не исправляйте их
В случае, если нам нужно только увидеть ошибки, которые происходят в нашей файловой системе, и не нужно их исправлять, тогда мы должны запустить fsck с опцией “n”,
$ fsck -n /dev/sdb1
Выполним проверку на ошибки на всех разделах
Чтобы выполнить проверку файловой системы для всех разделов за один раз, используйте fsck с опцией «A»
$ fsck -A
Чтобы отключить проверку корневой файловой системы, мы будем использовать опцию «R»
$ fsck -AR
Проверим раздел с указанной файловой системой
Чтобы запустить fsck на всех разделах с указанным типом файловой системы, например, «ext4», используйте fsck с опцией «t», а затем тип файловой системы,
$ fsck -t ext4 /dev/sdb1
или
$ fsck -t -A ext4
Выполнять проверку только на несмонтированных дисках
Чтобы убедиться, что fsck выполняется только на несмонтированных дисках, мы будем использовать опцию «M» при запуске fsck,
$ fsck -AM
Вот наше короткое руководство по команде fsck с примерами.
Пожалуйста, не стесняйтесь присылать нам свои вопросы, используя поле для комментариев ниже.
На примере операционной системы CentOS Stream я покажу вам как можно проверить состояние жесткого диска hdd или ssd используя технологию S.M.A.R.T.
S.M.A.R.T. (от англ. self-monitoring, analysis and reporting technology — технология самоконтроля, анализа и отчётности) — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя. Технология S.M.A.R.T. является частью протоколов ATA и SATA.
В данной статье проверим состояние диска используя программу smartmontools.
Для начала установим утилиту smartmontools в дистрибутиве Centos 7.
sudo yum install smartmontools -y
Выведем список наших дисков командой fdisk:
sudo fdisk -l
У меня будет диск sda.
Теперь проверим смарт данного диска:
smartctl -a /dev/sda
В начале система выведет информацию о модели вашего hdd или ssd диска:
Ниже будут показаны смарт атрибуты диска (тип атрибутов меняется в зависимости от производителя диска):
На основе данной таблицы можно сделать вывод, что диск начинает выходить из строя, так как параметр Reallocated_Sector_Ct начинает увеличиваться.
Приведу таблицу с описанием всех атрибутов S.M.A.R.T
#ID | HEX | Имя атрибута | Описание |
1 | 1 | Raw Read Error Rate | Частота ошибок при чтении данных с жёсткого диска. Происхождение их обусловлено аппаратной частью винчестера. |
2 | 2 | Throughput Performance | Общая производительность накопителя. Если значение атрибута уменьшается перманентно, то велика вероятность проблем с винчестером. |
3 | 3 | Spin-Up Time | Время раскрутки шпинделя из состояния покоя (0 rpm) до рабочей скорости. В поле Raw_value содержится время в миллисекундах/секундах в зависимости от производителя |
4 | 4 | Start/Stop Count | Полное число запусков, остановок шпинделя. Иногда в том числе количество включений режима энергосбережения. В поле raw value хранится общее количество запусков/остановок жёсткого диска. |
5 | 5 | Reallocated Sectors Count | Число операций переназначения секторов. При обнаружении повреждённого сектора на винчестере, информация из него помечается и переносится в специально отведённую зону, происходит утилизация bad блоков, с последующим консервированием этих мест на диске. Этот процесс называют remapping. Чем больше значение Reallocated Sectors Count, тем хуже состояние поверхности дисков — физический износ поверхности. Поле raw value содержит общее количество переназначенных секторов. |
7 | 7 | Seek Error Rate | Частота ошибок при позиционировании блока магнитных головок. Чем больше значение, тем хуже состояние механики, или поверхности жёсткого диска. |
8 | 8 | Seek Time Performance | Средняя производительность операции позиционирования. Если значение атрибута уменьшается, то велика вероятность проблем с механической частью. |
9 | 9 | Power-On Hours (POH) | Время, проведённое устройством, во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ. |
10 | 0A | Spin-Up Retry Count | Число повторных попыток раскрутки дисков до рабочей скорости в случае, если первая попытка была неудачной. |
11 | 0B | Recalibration Retries | Количество повторов рекалибровки в случае, если первая попытка была неудачной. |
12 | 0C | Device Power Cycle Count | Число циклов включения-выключения винчестера. |
13 | 0D | Soft Read Error Rate | Число ошибок при чтении, по вине программного обеспечения, которые не поддались исправлению. |
187 | BB | Reported UNC Errors | Неустранимые аппаратные ошибки. |
190 | BE | Airflow Temperature | Температура воздуха внутри корпуса жёсткого диска. Целое значение, либо значение по формуле 100 — Airflow Temperature |
191 | BF | G-sense error rate | Количество ошибок, возникающих в результате ударов. |
192 | C0 | Power-off retract count | Число циклов аварийных выключений. |
193 | C1 | Load/Unload Cycle | Количество циклов перемещения блока головок в парковочную зону. |
194 | C2 | HDA temperature | Показания встроенного термодатчика накопителя. |
195 | C3 | Hardware ECC Recovered | Число коррекции ошибок аппаратной частью диска (ошибок чтения, ошибок позиционирования, ошибок передачи по внешнему интерфейсу). |
196 | C4 | Reallocation Event Count | Число операций переназначения в резервную область, успешные и неудавшиеся попытки. |
197 | C5 | Current Pending Sector Count | Число секторов- кандидатов на перенос в резервную зону. Помечены как не надёжные. При последующих корректных операциях атрибут может быть снят. |
198 | C6 | Uncorrectable Sector Count | Число некорректируемых ошибок при обращении к сектору. |
199 | C7 | UltraDMA CRC Error Count | Число ошибок при передаче данных по внешнему интерфейсу. |
Данная утилита работает и в дистрибутивах Ubuntu. Надеюсь данная статья оказалась вам полезна. Удачи!
In this article, you will learn how to repair Linux disk errors by using fsck and xfs_repair commands.
Table of Contents:
- What is FSCK?
- List Linux Disk Partitions and Types
- Get Last Scanned Time of a Linux Disk
- Scan & Repair a Ext4 Type Disk Partition
- Enable Scanning of Ext4 Disk Partitions at Linux Startup
- What is XFS_REPAIR?
- Scan & Repair a XFS Type Disk Partition
- Enable Scanning of XFS Disk Partitions at Linux Startup
- Conclusion
What is FSCK?:
The system utility fsck (file system consistency check) is a tool for checking the consistency of a file system in Unix and Unix-like operating systems, such as Linux, macOS, and FreeBSD.
Generally, fsck is run either automatically at boot time, or manually by the system administrator. The command works directly on data structures stored on disk, which are internal and specific to the particular file system in use — so an fsck command tailored to the file system is generally required. The exact behaviors of various fsck implementations vary, but they typically follow a common order of internal operations and provide a common command-line interface to the user. (Source: Wikipedia)
In this article, you will learn how to repair Linux disk errors by using fsck and xfs_repair commands.
Table of Contents:
- What is FSCK?
- List Linux Disk Partitions and Types
- Get Last Scanned Time of a Linux Disk
- Scan & Repair a Ext4 Type Disk Partition
- Enable Scanning of Ext4 Disk Partitions at Linux Startup
- What is XFS_REPAIR?
- Scan & Repair a XFS Type Disk Partition
- Enable Scanning of XFS Disk Partitions at Linux Startup
- Conclusion
What is FSCK?:
The system utility fsck (file system consistency check) is a tool for checking the consistency of a file system in Unix and Unix-like operating systems, such as Linux, macOS, and FreeBSD.
Generally, fsck is run either automatically at boot time, or manually by the system administrator. The command works directly on data structures stored on disk, which are internal and specific to the particular file system in use — so an fsck command tailored to the file system is generally required. The exact behaviors of various fsck implementations vary, but they typically follow a common order of internal operations and provide a common command-line interface to the user. (Source: Wikipedia)
List Linux Disk Partitions and Types:
First of all you need to identify the disk partitions in your Linux server, their respective file systems and the path where they are being mounted.
If you are not used to Linux commandline then we recommend that you should attend online training Linux Command Line: From novice to wizard
By using a console or a ssh client, connect with your Linux server as root user.
You can execute the lsblk command with following switches at the Linux bash prompt to list the required information.
# lsblk -o NAME,FSTYPE,MOUNTPOINT
NAME FSTYPE MOUNTPOINT
sda
├─sda1 ext4 /boot
└─sda2 LVM2_member
├─cl-root xfs /
├─cl-swap swap [SWAP]
└─cl-home xfs /home
sr0
Get Last Scanned Time of a Linux Disk:
You can find the last scan time for Linux Ext4 type partitions with the help of following command.
# tune2fs -l /dev/sda1 | grep checked
Last checked: Sun Sep 29 20:03:14 2019
Scan & Repair a Ext4 Type Disk Partition:
To scan a Linux disk partition, you can use fsck (File System Consistency Check) command. But you are required to unmount that partition before checking and repairing it.
# umount /dev/sda1
After successful unmount, execute fsck command at Linux bash prompt.
# fsck.ext4 /dev/sda1
e2fsck 1.45.6 (20-Mar-2020)
/dev/sda1: clean, 320/65536 files, 61787/262144 blocks
After checking and repairing your Linux disk, mount the partition again at its respective mountpoint.
For this purpose, execute following Linux command to mount all the disk partitions listed in /etc/fstab file.
# mount -a
Enable Scanning of Ext4 Disk Partitions at Linux Startup:
To enable disk checking at the time of Linux startup. You have to modify the Mount Count parameter for that disk partition.
# tune2fs -c 1 /dev/sda1
tune2fs 1.45.6 (20-Mar-2020)
Setting maximal mount count to 1
Reboot your Linux server now.
# reboot
Linux command fsck is now check your Ext4 disk partition on startup.
After reboot, get the Last Checked value for your disk partition, now it will show you the time of last Linux startup.
# tune2fs -l /dev/sda1 | grep checked
Last checked: Sun Aug 1 22:50:46 2021
Set back the Mount Count parameter, or it will keep performing disk scans on each Linux boot.
# tune2fs -c -1 /dev/sda1
tune2fs 1.45.6 (20-Mar-2020)
Setting maximal mount count to -1
What is XFS_REPAIR?:
XFS is a high-performance 64-bit journaling file system created by Silicon Graphics, Inc (SGI) in 1993. It was the default file system in SGI’s IRIX operating system starting with its version 5.3. XFS was ported to the Linux kernel in 2001; as of June 2014, XFS is supported by most Linux distributions, some of which use it as the default file system.
The xfs_repair utility is highly scalable and is designed to repair even very large file systems with many inodes efficiently. Unlike other Linux file systems, xfs_repair does not run at boot time, even when an XFS file system was not cleanly unmounted. In the event of an unclean unmount, xfs_repair simply replays the log at mount time, ensuring a consistent file system.
Scan & Repair a XFS Type Disk Partition:
XFS type disk partitions have their own set of commands, that are a little bit different from Ext4.
You must unmount a XFS disk partition before checking it for consistency.
# umount /dev/mapper/cl-home
We have xfs_repair command for checking and repairing the disk errors.
In some Linux distros, you may also find xfs_check command. This command only perform scanning of XFS type disk partitions and do not perform any repair.
But xfs_check command is not available in all Linux distros.
Alternatively, you can use xfs_repair command with -n switch to get the same functionality as of xfs_check.
# xfs_repair -n /dev/mapper/cl-home
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan (but don't clear) agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
No modify flag set, skipping phase 5
Phase 6 - check inode connectivity...
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify link counts...
No modify flag set, skipping filesystem flush and exiting.
The above command only perform disk checking and do not try to repair any error.
Now, execute the xfs_repair command without -n switch and it will perform scanning and repairing of Linux disk partitions.
# xfs_repair /dev/mapper/cl-home
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done
Remount the XFS partition at its original mountpoint as listed in /etc/fstab file.
# mount -a
Enable Scanning of XFS Disk Partitions at Linux Startup:
In some scenarios you cannot unmount a disk partition, if the disk is in use by the Linux operating system. For this reason you may have to defer the disk checking until next system boot.
To enable xfs_repair command to run on Linux startup, add «fsck.mode=force fsck.repair=yes» at the end of GRUB menu kernel command.
You can refer to our previous post about Editing GRUB menu.
After Linux startup, check the system log to verify the execution of disk repair command.
# journalctl | grep systemd-fsck
To permanently enable disk checking at startup, you have to add «fsck.mode=force fsck.repair=yes» in GRUB configuration files.
Edit grub configuration file in vim text editor.
# vi /etc/default/grub
Locate GRUB_CMDLINE_LINUX parameter and append «fsck.mode=force fsck.repair=yes» at the end of line.
GRUB_CMDLINE_LINUX="resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet fsck.mode=force fsck.repair=yes"
Regenerate GRUB menu configurations based on new parameters.
# grub2-mkconfig
Reboot your Linux operating system to verify the new settings.
# reboot
Conclusion:
You have successfully performed scanning and repairing of Linux Disk partitions of Ext4 and XFS types. If you feel any difficulty understanding this Linux tutorial, we suggest that you should read The Linux Command Line, 2nd Edition by William Shotts.