Cara yang tepat untuk menangani sistem file XFS yang korup

18

Saya baru-baru ini filesystem XFS menjadi korup karena kegagalan daya. (Sistem CentOS 7). Sistem tidak mau boot dengan benar.

Saya mem-boot dari CD cadangan dan mencoba xfs_repair, ia memberi tahu saya untuk memasang partisi untuk menangani log.

Saya memasang partisi, dan melakukan lsuntuk memverifikasi bahwa ya, tampaknya ada di sana. Saya melepas partisi dan mencoba xfs_repairlagi dan mendapatkan pesan yang sama.

Apa yang harus saya lakukan dalam situasi ini? Apakah ada yang salah dengan CD cadangan saya (System Rescue CD, versi 4.7.1)? Apakah ada prosedur lain yang harus saya gunakan?

Saya akhirnya hanya mengembalikan sistem dari cadangan (cepat dan mudah dalam hal ini), tetapi saya ingin tahu apa yang harus dilakukan di masa depan.

Michael Kohne
sumber

Jawaban:

20

Jika Anda mencoba menjalankan xfs_repair , mendapatkan pesan kesalahan yang menyarankan pemasangan sistem file untuk memutar ulang log, dan setelah pemasangan masih menerima pesan kesalahan yang sama, Anda mungkin perlu melakukan perbaikan paksa (menggunakan -Lbendera dengan xfs_repair). Opsi ini harus menjadi pilihan terakhir.

Sebagai contoh, saya akan menggunakan case di mana saya memiliki partisi root yang rusak pada instalasi CentOS 7 saya. Ketika mencoba me-mount partisi, saya terus menerima pesan kesalahan di bawah ini:

mount: mount / dev / mapper / centos-root on / mnt / centos-root gagal: Struktur perlu dibersihkan

Sayangnya, memaksa perbaikan akan melibatkan memusatkan perhatian (menghancurkan) log sebelum mencoba perbaikan. Saat menggunakan metode ini, ada potensi berakhir dengan data yang lebih korup daripada yang diperkirakan sebelumnya; namun, kita dapat menggunakan alat xfs yang sesuai untuk melihat kerusakan seperti apa yang mungkin terjadi sebelum membuat perubahan permanen.

Menggunakan xfs_metadump dan xfs_mdrestore , Anda dapat membuat gambar metadata dari partisi yang terpengaruh dan melakukan perbaikan paksa pada gambar daripada partisi itu sendiri. Manfaat dari ini adalah kemampuan untuk melihat kerusakan yang datang dengan perbaikan paksa sebelum dilakukan pada partisi.

Untuk melakukan ini, Anda memerlukan USB berukuran besar atau hard drive eksternal. Mulailah dengan memasang drive USB - USB saya berada di /dev/sdb1, nama Anda mungkin berbeda.

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

Setelah dipasang, jalankan xfs_metadumpuntuk membuat salinan metadata partisi ke USB - lagi, partisi Anda yang terkena mungkin berbeda. Dalam hal ini, saya memiliki partisi root yang rusak yang terletak di /dev/mapper/centos-root:

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

Selanjutnya, Anda ingin mengembalikan metadata ke gambar sehingga kami dapat melakukan perbaikan dan mengukur kerusakan.

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

Saya menemukan bahwa dalam mode penyelamatan xfs_mdrestoretidak tersedia, dan sebagai gantinya Anda harus berada dalam mode penyelamatan dari CD CentOS langsung.

Akhirnya, kita dapat melakukan perbaikan pada gambar:

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

Setelah perbaikan selesai dan Anda telah menilai output dan kemungkinan kerusakan, Anda dapat menentukan apakah Anda ingin melakukan perbaikan terhadap partisi.

Untuk menjalankan perbaikan terhadap partisi, jalankan:

xfs_repair -L /dev/mapper/centos-root

Jangan lupa untuk memeriksa partisi lain untuk korupsi juga. Setelah perbaikan, reboot sistem dan Anda harus dapat boot dengan sukses.

Ingatlah bahwa -Lbendera harus digunakan sebagai upaya terakhir di mana tidak ada opsi lain yang mungkin untuk diperbaiki.

Saya menemukan bahwa artikel online ini membantu:

resmi
sumber
OK, jadi -L adalah pilihan terakhir, dan ini adalah instruksi yang SANGAT BAIK tentang cara melihat seberapa buruknya jika kita menggunakan -L. Opsi apa lagi yang kurang saya gunakan -L?
Michael Kohne
1
@MichaelKohne Memulihkan dari cadangan, tentu saja. Anda seharusnya tidak mendekati level neraka ini kecuali Anda tidak punya backup.
Michael Hampton
1
@MichaelHampton - Oke, cukup adil. Tapi saya tidak berpikir saya pernah kehilangan sistem file seperti ini karena kesalahan ext4 pada powerfail - apakah xfs kurang tangguh? Atau apakah aku hanya mengalami nasib buruk kali ini?
Michael Kohne
@MichaelKohne Saya pikir Anda baru saja sangat tidak beruntung. XFS adalah sistem file yang cukup andal.
Michael Hampton
3
kami dulu hanya bisa melakukan itu dari initrd. "kemajuan" luar biasa yang kami buat.
Florian Heigl
1

Saya mengalami kesalahan ini ketika centos 7 berhenti buruk di dalam mesin virtual kvm:

korupsi metadata terdeteksi di xfs ...

ketika saya menggunakan log whit "journalctl -xe", saya menemukan kesalahan pemasangan:

/ dev / mapper / root / sysroot

Saya menyelesaikannya menggunakan:

xfs_repair / dev / mapper / root

Kemudian sistem menyelesaikan tujuh fase dan kemudian Anda reboot menggunakan

./menutup

Dan kemudian mesin virtual centos 7 bekerja dengan baik ...

Salam

Catatan: mungkin Anda / dev / mapper / root memiliki nama lain, harap perhatikan log kesalahan Anda dengan journalctl -xe untuk menemukan nama unit Anda tidak terpasang dengan benar

davidleosam
sumber