Проверка диска Centos 7 на наличие ошибок xfs

Обновлено: 02.07.2024

Недавно я столкнулся с повреждением файловой системы XFS из-за сбоя питания. (система CentOS 7). Система не загружалась должным образом.

Я загрузился с аварийного компакт-диска и попробовал xfs_repair , он сказал мне смонтировать раздел для работы с журналом.

Я смонтировал раздел и выполнил ls, чтобы убедиться, что да, похоже, он там есть. Я размонтировал раздел и снова попробовал xfs_repair и получил то же сообщение.

Что мне делать в этой ситуации? Что-то не так с моим аварийным компакт-диском (System Rescue CD, версия 4.7.1)? Есть ли какая-то другая процедура, которую я должен был использовать?

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

2 ответа 2

Если вы пытаетесь запустить xfs_repair, получая сообщение об ошибке, предлагающее смонтировать файловую систему для воспроизведения журнала, и после монтирования по-прежнему получаете такое же сообщение об ошибке, вам может потребоваться выполнить принудительное восстановление (используя флаг -L). с помощью xfs_repair). Этот вариант должен быть последним средством.

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

монтирование: смонтировать /dev/mapper/centos-root на /mnt/centos-root не удалось: требуется очистка структуры

К сожалению, принудительное восстановление потребует обнуления (уничтожения) журнала перед попыткой исправления. При использовании этого метода существует вероятность получения большего количества поврежденных данных, чем предполагалось изначально; однако мы можем использовать соответствующие инструменты xfs, чтобы увидеть, какой ущерб может быть причинен, прежде чем вносить какие-либо постоянные изменения.

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

Для этого вам понадобится USB-накопитель приличного размера или внешний жесткий диск. Начните с монтирования USB-накопителя — мой USB-диск находился в /dev/sdb1 , ваш может называться по-другому.

После подключения запустите xfs_metadump, чтобы создать копию метаданных раздела на USB-накопителе — опять же, ваш затронутый раздел может быть другим. В этом случае у меня был поврежденный корневой раздел, расположенный в /dev/mapper/centos-root:

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

Я обнаружил, что в режиме восстановления xfs_mdrestore недоступен, и вместо этого вам нужно находиться в режиме восстановления живого компакт-диска CentOS.

Наконец, мы можем восстановить изображение:

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

Чтобы запустить восстановление раздела, просто запустите:

Не забудьте проверить и другие разделы на наличие повреждений. После ремонта перезагрузите систему, и вы сможете успешно загрузиться.

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

Файловая система XFS — это высокопроизводительная файловая система для журналирования. XFS поддерживает максимальный размер файловой системы 500 ТБ и максимальный размер файла 16 ТБ. Вы можете создать файловую систему XFS на обычном разделе диска и на логическом томе. Он невероятно хорошо работает при большой нагрузке и масштабируется с большими файлами, но в результате он также подвержен повреждениям, и именно с учетом этого мы сейчас рассмотрим набор инструментов, которые позволят нам устранять неполадки на сервере и восстановить файловую систему.

Доступны дополнительные утилиты XFS для обслуживания файловой системы. Эти утилиты включают следующее:

  • xfs_fsr: XFS — это файловая система на основе экстентов. Утилита xfs_fsr реорганизует и улучшает расположение экстентов файла, что повышает общую производительность. Запустите эту команду в смонтированной файловой системе XFS или в отдельных файлах в файловой системе.
  • xfs_repair: восстановление поврежденной файловой системы XFS. Размонтируйте файловую систему перед запуском этой команды. Если файловую систему нельзя восстановить, восстановите файлы из резервной копии с помощью xfsrestore.
  • xfs_db: отладка файловой системы XFS. Эта утилита предоставляет набор команд, который позволяет выполнять сканирование файловой системы, а также перемещаться и отображать ее структуры данных.

Восстановление файловой системы XFS с помощью xfs_repair

Утилита xfs_repair может использоваться для восстановления поврежденной файловой системы XFS. Основной синтаксис, используемый xfs_repair, выглядит следующим образом:

Как и утилита fsck, утилита xfs_repair исправляет несмонтированные файловые системы xfs в несколько этапов. Пример вывода восстановления XFS показан ниже:

Если вы хотите просто проверить наличие проблем с файловой системой, но не устранять какие-либо проблемы, запустите команду xfs_check вместо команды xfs_repair.

Вы также можете использовать команду «xfs_repair -n», чтобы выполнить пробный запуск для xfs_repair. Некоторые дистрибутивы не включают команду xfs_check. В этом случае вы можете использовать эту опцию, так как они работают одинаково.

Команда xfs_repair восстанавливает поврежденные файловые системы XFS.

Он обладает высокой масштабируемостью, высокой производительностью и предназначен для эффективного восстановления даже очень больших файловых систем с большим количеством индексных дескрипторов. В отличие от других файловых систем Linux, xfs_repair не запускается во время загрузки, даже если файловая система XFS не была полностью размонтирована.

Это 64-разрядная файловая система с журналированием, которая поддерживает очень большие файлы (8 ЭБ) и файловые системы (16 ЭБ) на одном хосте. XFS — это файловая система по умолчанию для Red Hat Enterprise Linux 7.

Исправляемая файловая система не должна монтироваться перед выполнением xfs_repair, иначе результирующая файловая система может быть несовместимой или поврежденной.

Эту же процедуру можно использовать для других системных разделов, которые нельзя размонтировать во время работы системы.

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

Общий синтаксис:

Повреждение файловой системы XFS

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

Обратите внимание: не проверяйте это на рабочем сервере, так как это может сильно повредить ваши данные.

Корзина возникает для случайно выбранных битов в выбранных блоках. Эта команда доступна только в отладочных версиях «xfs_db». Это полезно для тестирования xfs_repair и xfs_check.

Повреждение файловой системы xfs с помощью команды xfs_db.

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

1) Восстановление файловой системы XFS

Вы можете восстановить поврежденную файловую систему XFS без полномочий root в работающей системе Linux. Вам может потребоваться загрузить систему в режиме восстановления или аварийном режиме, чтобы восстановить файловую систему, если ее нельзя размонтировать во время работы системы.

Шаг 1. Размонтируйте файловую систему, в которой вы хотите запустить fsck.

Шаг 2. Запустите xfs_repair с параметром «-n», чтобы выполнить пробный запуск. Обратите внимание, что инструмент xfs_check устарел и заменен на xfs_repair -n.

Шаг 3. Запустите xfs_repair, чтобы восстановить файловую систему:

Шаг 4. После восстановления файловой системы смонтируйте раздел.

2) Восстановление тома XFS LVM с помощью xfs_repair

xfs_repair можно запускать на логических томах LVM так же, как файловые системы на стандартных разделах. Следуйте приведенной ниже процедуре восстановления раздела LVM:

Шаг 1. Убедитесь, что конкретный том LVM находится в активном состоянии, чтобы запустить xfs_repair. Чтобы проверить статус LVM, запустите:

Если он неактивен, активируйте его, выполнив следующую команду.

Шаг 2. Размонтируйте устройство или файловую систему, на которой вы хотите запустить xfs_repair.

Шаг 3. Запустите xfs_repair, чтобы восстановить файловую систему. Вы должны указать путь к тому LVM для запуска xfs_repair, а не к реальному физическому разделу.

Шаг 4. После восстановления файловой системы смонтируйте раздел.

Заключение

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

RHEL предоставляет утилиты администрирования файловой системы, способные проверять и восстанавливать файловые системы. Эти инструменты часто называют инструментами fsck, где fsck — это сокращенная версия проверки файловой системы . В большинстве случаев эти утилиты запускаются автоматически во время загрузки системы, если это необходимо, но при необходимости их также можно вызвать вручную.

Проверки файловой системы гарантируют согласованность только метаданных в файловой системе. Они не осведомлены о фактических данных, содержащихся в файловой системе, и не являются инструментами восстановления данных.

27.1. Сценарии, требующие проверки файловой системы

Соответствующие инструменты fsck можно использовать для проверки вашей системы в следующих случаях:

  • Система не загружается
  • Файлы на определенном диске повреждаются
  • Файловая система отключается или становится доступной только для чтения из-за несоответствий.
  • Файл в файловой системе недоступен

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

Инструменты проверки файловой системы не могут исправить проблемы с оборудованием. Для успешного восстановления файловая система должна быть полностью доступна для чтения и записи. Если файловая система была повреждена из-за аппаратной ошибки, ее необходимо сначала перенести на исправный диск, например, с помощью утилиты dd(8).

Для журналируемых файловых систем все, что обычно требуется во время загрузки, — это повторно воспроизвести журнал, если это необходимо, и обычно это очень короткая операция.

Однако, если возникает несогласованность или повреждение файловой системы, даже для журналируемых файловых систем, для восстановления файловой системы необходимо использовать средство проверки файловой системы.

Можно отключить проверку файловой системы при загрузке, установив для шестого поля в /etc/fstab значение 0 . Однако Red Hat не рекомендует этого делать, если только у вас не возникают проблемы с fsck во время загрузки, например, с очень большими или удаленными файловыми системами.

Дополнительные ресурсы

  • справочная страница fstab(5).
  • справочная страница fsck(8).
  • справочная страница dd(8).

27.2. Возможные побочные эффекты запуска fsck

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

  • Сильно поврежденные индексные дескрипторы или каталоги могут быть удалены, если их нельзя восстановить.
  • В файловой системе могут произойти значительные изменения.

Чтобы гарантировать, что неожиданные или нежелательные изменения не будут внесены навсегда, убедитесь, что вы выполняете все меры предосторожности, описанные в процедуре.

27.3. Механизмы обработки ошибок в XFS

В этом разделе описывается, как XFS обрабатывает различные виды ошибок в файловой системе.

Нечистое размонтирование

Журналирование поддерживает транзакционную запись изменений метаданных, происходящих в файловой системе.

В случае сбоя системы, сбоя питания или другого нечистого размонтирования XFS использует журнал (также называемый журналом) для восстановления файловой системы. Ядро выполняет восстановление журнала при монтировании файловой системы XFS.

Коррупция

В этом контексте повреждение означает ошибки в файловой системе, вызванные, например:

  • Сбои оборудования
  • Ошибки в прошивке хранилища, драйверах устройств, программном стеке или самой файловой системе.
  • Проблемы, из-за которых части файловой системы перезаписываются чем-то вне файловой системы

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

Пример 27.1. Запись в системном журнале, сообщающая о повреждении XFS

Утилиты пользовательского пространства обычно выдают сообщение Ошибка ввода/вывода при попытке доступа к поврежденной файловой системе XFS. Монтирование файловой системы XFS с поврежденным журналом приводит к сбою монтирования и следующему сообщению об ошибке:

Для устранения повреждения необходимо вручную использовать утилиту xfs_repair.

Дополнительные ресурсы

27.4. Проверка файловой системы XFS с помощью xfs_repair

Эта процедура выполняет проверку файловой системы XFS только для чтения с помощью утилиты xfs_repair. Вы должны вручную использовать утилиту xfs_repair для исправления любого повреждения. В отличие от других утилит восстановления файловой системы, xfs_repair не запускается во время загрузки, даже если файловая система XFS не была полностью размонтирована. В случае нечистого размонтирования XFS просто воспроизводит журнал во время монтирования, обеспечивая согласованность файловой системы; xfs_repair не может восстановить файловую систему XFS с грязным журналом без ее предварительного монтирования.

Хотя двоичный файл fsck.xfs присутствует в пакете xfsprogs, он присутствует только для выполнения сценариев инициализации, которые ищут системный двоичный файл fsck.file во время загрузки. fsck.xfs немедленно завершает работу с кодом выхода 0.

Процедура

Воспроизведите журнал, подключив и размонтировав файловую систему:

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

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

Смонтировать файловую систему:

Дополнительные ресурсы

  • справочная страница xfs_repair(8).
  • справочная страница xfs_metadump(8).

27.5. Восстановление файловой системы XFS с помощью xfs_repair

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

Процедура

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

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

Воспроизведите журнал, перемонтировав файловую систему:

Используйте утилиту xfs_repair для восстановления несмонтированной файловой системы:

Если монтирование прошло успешно, дополнительные параметры не требуются:

Если монтирование завершилось неудачно с ошибкой Структура нуждается в очистке, журнал поврежден и не может быть воспроизведен. Используйте параметр -L ( принудительное обнуление журнала ), чтобы очистить журнал:

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

Смонтировать файловую систему:

Дополнительные ресурсы

27.6. Механизмы обработки ошибок в ext2, ext3 и ext4

Файловые системы ext2, ext3 и ext4 используют утилиту e2fsck для проверки и восстановления файловой системы. Имена файлов fsck.ext2 , fsck.ext3 и fsck.ext4 являются жесткими ссылками на утилиту e2fsck. Эти двоичные файлы запускаются автоматически во время загрузки, и их поведение зависит от проверяемой файловой системы и состояния файловой системы.

Выполняется полная проверка и восстановление файловой системы для ext2, которая не является файловой системой с журналированием метаданных, и для файловых систем ext4 без журнала.

Для файловых систем ext3 и ext4 с ведением журнала метаданных журнал воспроизводится в пространстве пользователя, и утилита завершает работу. Это действие по умолчанию, поскольку воспроизведение журнала обеспечивает целостность файловой системы после сбоя.

Если эти файловые системы обнаруживают несоответствия метаданных при монтировании, они записывают этот факт в суперблок файловой системы. Если e2fsck обнаруживает, что файловая система помечена такой ошибкой, e2fsck выполняет полную проверку после воспроизведения журнала (если он есть).

Дополнительные ресурсы

27.7. Проверка файловой системы ext2, ext3 или ext4 с помощью e2fsck

Эта процедура проверяет файловую систему ext2, ext3 или ext4 с помощью утилиты e2fsck.

Процедура

Воспроизведите журнал, перемонтировав файловую систему:

Выполните пробный запуск, чтобы проверить файловую систему.

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

Дополнительные ресурсы

27.8. Восстановление файловой системы ext2, ext3 или ext4 с помощью e2fsck

Эта процедура восстанавливает поврежденную файловую систему ext2, ext3 или ext4 с помощью утилиты e2fsck.

Процедура

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

Серьезно поврежденные файловые системы могут вызвать проблемы с созданием образа метаданных.

Если вы создаете образ для тестирования, используйте параметр -r, чтобы создать разреженный файл того же размера, что и сама файловая система. Затем e2fsck может работать непосредственно с результирующим файлом.

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

Воспроизведите журнал, перемонтировав файловую систему:

Автоматическое восстановление файловой системы. Если требуется вмешательство пользователя, e2fsck указывает на неустраненную проблему в своих выходных данных и отражает этот статус в коде выхода.

Читайте также: