Правильний спосіб боротьби з пошкодженими файловими системами XFS


19

Нещодавно файлова система XFS стала пошкодженою через вихід з ладу. (Система CentOS 7). Система не завантажиться належним чином.

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

Я змонтував розділ і зробив, lsщоб перевірити, що так, здається, він є. Я відключив розділ і спробував xfs_repairще раз, і отримав те саме повідомлення.

Що я повинен зробити в цій ситуації? Щось із моїм компакт-диском для порятунку щось не так (System Rescue CD, версія 4.7.1)? Чи є якась інша процедура, яку я повинен був використовувати?

Я закінчив просто відновити систему з резервних копій (у цьому випадку це було швидко і просто), але я хотів би знати, що робити в майбутньому.

Відповіді:


22

Якщо ви намагаєтеся запустити xfs_repair , отримуючи повідомлення про помилку, яке передбачає встановлення файлової системи для відтворення журналу, а після монтажу все ще отримує те саме повідомлення про помилку, можливо, вам доведеться виконати примусовий ремонт (використовуючи -Lпрапор xfs_repair). Цей варіант повинен бути в крайньому випадку.

Наприклад, я буду використовувати випадок, коли в моїй установці CentOS 7 у мене був пошкоджений кореневий розділ. При спробі встановити розділ, я постійно отримував повідомлення про помилку нижче:

mount: mount / dev / mapper / centos-root on / mnt / centos-root не вдалося: структура потребує очищення

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

Використовуючи xfs_metadump та xfs_mdrestore , ви можете створити зображення метаданих ураженого розділу та виконати примусове відновлення зображення, а не самого розділу. Переваги цього - можливість бачити пошкодження, які виникають із примусовим ремонтом, перед тим, як виконати його на перегородці.

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

mkdir -p /mnt/usb
mount /dev/sdb1 /mnt/usb

Після монтажу запустіть, xfs_metadumpщоб створити копію метаданих розділу на USB - знову ж таки ваш впливовий розділ може бути іншим. У цьому випадку у мене був пошкоджений кореневий розділ, розташований за адресою /dev/mapper/centos-root:

xfs_metadump /dev/mapper/centos-root /mnt/usb/centos-root.metadump

Далі ви захочете відновити метадані до зображення, щоб ми могли виконати ремонт та виміряти пошкодження.

xfs_mdrestore /mnt/usb/centos-root.metadump /mnt/usb/centos-root.img

Я виявив, що в режимі порятунку xfs_mdrestoreнедоступний, і замість цього вам потрібно буде перебувати в режимі порятунку живого компакт-диска CentOS.

Нарешті, ми можемо виконати ремонт зображення:

xfs_repair -L /mnt/usb/centos-root.img

Після завершення ремонту та оцінки ваших результатів та можливих пошкоджень, ви можете визначити, чи хочете ви виконати ремонт відносно розділу.

Щоб запустити ремонт відносно розділу, просто запустіть:

xfs_repair -L /dev/mapper/centos-root

Не забудьте перевірити й інші розділи на предмет корупції. Після ремонту перезавантажте систему, і ви зможете успішно завантажитися.

Пам'ятайте, що -Lпрапор слід використовувати як крайній захід, коли немає інших можливих варіантів ремонту.

Я виявив, що ці онлайн-статті допомогли:


Гаразд, так -L є крайнім засобом, і це чудові інструкції, як зрозуміти, наскільки погано це буде, якщо ми будемо використовувати -L. Які ще варіанти я маю використовувати -L?
Майкл Коне

1
@MichaelKohne, звичайно, відновлення з резервного копіювання. Ви не повинні знаходитись дедалі ближче до цього рівня пекла, якщо у вас немає резервного копіювання.
Майкл Хемптон

1
@MichaelHampton - Гаразд, досить справедливо. Але я не думаю, що я коли-небудь втратив подібну файлову систему, щоб помилки ext4 у powerfail - xfs менш стійкий? Або мені цього разу просто пощастило?
Майкл Коне

@MichaelKohne Я думаю, що вам просто надзвичайно пощастило. XFS є досить надійною файловою системою.
Майкл Хемптон

3
ми звикли просто робити це з initrd. який чудовий «прогрес» ми досягли.
Флоріан Хейгл

1

У мене виникла помилка, коли centos 7 погано зупиняється у віртуальній машині kvm:

виявлено пошкодження метаданих у xfs ...

коли я використовую журнал із журналом "journalctl -xe", я виявив помилку під час монтажу:

/ dev / mapper / root / sysroot

Я вирішую це за допомогою:

xfs_repair / dev / mapper / root

Потім система завершить сім фаз, а потім перезавантажте y

./закрити

А потім віртуальна машина centos 7 працює добре ...

З повагою

Примітка. Можливо, у вас / dev / mapper / root є інше ім’я, перегляньте свій журнал помилок у журналі journalctl -xe, щоб знайти ім'я вашого пристрою, що невірно встановлений

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.