Как восстановить поврежденную файловую систему XFS с помощью xfs_repair

Как восстановить поврежденную файловую систему XFS с помощью xfs_repair

 

Первоначально созданная Silicon Graphics файловая система XFS представляет собой надежную и высокопроизводительную журналирующую файловую систему, которая впервые была включена в ядро ​​Linux в 2001 году. С тех пор популярность файловой системы выросла в геометрической прогрессии, и к 2014 году файловая система XFS была обнаружена. его путь в основные дистрибутивы Linux. Фактически, XFS является файловой системой по умолчанию в дистрибутивах на основе Red Hat, таких как RHEL , CentOS и Rocky Linux . Файловая система невероятно хорошо работает с огромными файлами и широко известна своей скоростью и надежностью.

Какой бы надежной ни была файловая система XFS, она не застрахована от повреждений файловой системы. Распространенные причины ошибок или повреждения файловой системы включают непроцедурное или некорректное завершение работы, ошибки записи NFS, внезапные отключения электроэнергии и аппаратный сбой, например сбойные блоки на диске. Повреждение файловой системы может вызвать серьезные проблемы, такие как повреждение обычных файлов, и даже может сделать вашу систему неспособной загружаться, когда затронуты загрузочные файлы.

Некоторые инструменты полезны для проверки ошибок файловой системы. Одна из них — команда fsck (Проверка файловой системы). Утилита системной утилиты fsck проверяет общее состояние файловой системы. Он проверяет файловую систему на наличие потенциальных и существующих ошибок и исправляет их вместе с созданием отчета. Команда fsck предустановлена ​​в большинстве дистрибутивов Linux и не требует установки. Еще одна полезная системная утилита, используемая для исправления ошибок в файловой системе, — это утилита xfs_repair. Утилита обладает высокой масштабируемостью и предназначена для сканирования и восстановления огромных файловых систем с несколькими индексными дескрипторами с максимально возможной эффективностью.

В этом руководстве мы расскажем, как восстановить поврежденную файловую систему XFS с помощью утилиты xfs_repair.

Шаг 1) Имитация повреждения файла

Чтобы максимально использовать возможности этого руководства, мы собираемся смоделировать повреждение файловой системы файловой системы XFS. Здесь мы собираемся использовать внешний USB-накопитель на 8 ГБ в качестве блочного тома. Это обозначается как / dev / sdb1, как показано в приведенной ниже команде.

$ lsblk | grep sd

Как восстановить поврежденную файловую систему XFS с помощью xfs_repair

Первый шаг — отформатировать его в файловую систему xfs с помощью команды mkfs.

$ sudo mkfs.xfs -f /dev/sdb1

Это отображает показанный результат

Как восстановить поврежденную файловую систему XFS с помощью xfs_repair 1

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

$ sudo mkdir /mnt/data

Затем смонтируйте раздел с помощью команды mount.

$ sudo mount /dev/sdb1  /mnt/data

Вы можете проверить, правильно ли смонтирован раздел, как показано.

$ sudo mount | grep /dev/sdb1

Как восстановить поврежденную файловую систему XFS с помощью xfs_repair 2

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

Но перед этим нам нужно размонтировать раздел.

$ sudo umount /dev/sdb1

Затем повредите файловую систему, выполнив приведенную ниже команду, чтобы удалить случайные блоки метаданных файловой системы.

$ sudo xfs_db -x -c blockget -c "blocktrash -s 512109 -n 1000" /dev/sdb1

Как восстановить поврежденную файловую систему XFS с помощью xfs_repair 3

Шаг 2) Восстановите файловую систему XFS с помощью xfs_repair

Чтобы восстановить файловую систему с помощью команды, используйте синтаксис:

$ sudo xfs_repair /dev/device

Но прежде чем мы приступим к восстановлению файловой системы, мы можем выполнить пробный запуск, используя флаг -n, как показано. Пробный прогон позволяет получить представление о действиях, которые будет выполнять команда при ее выполнении.

$ sudo xfs_repair -n /dev/device

В нашем случае это означает:

$ sudo xfs_repair -n /dev/sdb1

Как восстановить поврежденную файловую систему XFS с помощью xfs_repair 4

На выходе мы можем увидеть некоторые ошибки метаданных и несоответствия inode. Команда завершается кратким описанием шагов, которые должна была бы выполнить фактическая команда. Корректирующие меры, которые были бы применены на шагах 6 и 7, пропущены.

Как восстановить поврежденную файловую систему XFS с помощью xfs_repair 5

Чтобы выполнить фактическое восстановление файловой системы XFS, мы выполним команду xfs_repair без параметра -n

$ sudo xfs_repair /dev/sdb1

Команда обнаруживает ошибки и несоответствия в файловой системе

Как восстановить поврежденную файловую систему XFS с помощью xfs_repair 6

И выполняет меры по исправлению inodes и исправляет любые другие ошибки. Предоставленные выходные данные показывают, что команда успешно выполняет свои задачи.

Как восстановить поврежденную файловую систему XFS с помощью xfs_repair 7

Дополнительные параметры xfs_repair см. На странице руководства.

$ man xfs_repair

Как восстановить поврежденную файловую систему XFS с помощью xfs_repair 8

Заключение

Это была демонстрация того, как можно восстановить поврежденную файловую систему xfs с помощью команды xfs_repair. Мы надеемся, что теперь вы уверены в том, что исправили поврежденную файловую систему xfs в Linux.