Как восстановить поврежденную файловую систему 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 с помощью команды mkfs.
$ sudo mkfs.xfs -f /dev/sdb1
Это отображает показанный результат
Следующим шагом является создание точки монтирования, которую мы позже будем использовать для монтирования блочного тома.
$ sudo mkdir /mnt/data
Затем смонтируйте раздел с помощью команды mount.
$ sudo mount /dev/sdb1 /mnt/data
Вы можете проверить, правильно ли смонтирован раздел, как показано.
$ sudo mount | grep /dev/sdb1
Наш раздел теперь успешно смонтирован как раздел xfs. Затем мы собираемся смоделировать повреждение файловой системы, удаляя случайные блоки метаданных файловой системы с помощью команды xfs_db .
Но перед этим нам нужно размонтировать раздел.
$ sudo umount /dev/sdb1
Затем повредите файловую систему, выполнив приведенную ниже команду, чтобы удалить случайные блоки метаданных файловой системы.
$ sudo xfs_db -x -c blockget -c "blocktrash -s 512109 -n 1000" /dev/sdb1
Шаг 2) Восстановите файловую систему XFS с помощью xfs_repair
Чтобы восстановить файловую систему с помощью команды, используйте синтаксис:
$ sudo xfs_repair /dev/device
Но прежде чем мы приступим к восстановлению файловой системы, мы можем выполнить пробный запуск, используя флаг -n, как показано. Пробный прогон позволяет получить представление о действиях, которые будет выполнять команда при ее выполнении.
$ sudo xfs_repair -n /dev/device
В нашем случае это означает:
$ sudo xfs_repair -n /dev/sdb1
На выходе мы можем увидеть некоторые ошибки метаданных и несоответствия inode. Команда завершается кратким описанием шагов, которые должна была бы выполнить фактическая команда. Корректирующие меры, которые были бы применены на шагах 6 и 7, пропущены.
Чтобы выполнить фактическое восстановление файловой системы XFS, мы выполним команду xfs_repair без параметра -n
$ sudo xfs_repair /dev/sdb1
Команда обнаруживает ошибки и несоответствия в файловой системе
И выполняет меры по исправлению inodes и исправляет любые другие ошибки. Предоставленные выходные данные показывают, что команда успешно выполняет свои задачи.
Дополнительные параметры xfs_repair см. На странице руководства.
$ man xfs_repair
Заключение
Это была демонстрация того, как можно восстановить поврежденную файловую систему xfs с помощью команды xfs_repair. Мы надеемся, что теперь вы уверены в том, что исправили поврежденную файловую систему xfs в Linux.