손상된 XFS 파일 시스템을 처리하는 올바른 방법


18

최근에 정전으로 인해 XFS 파일 시스템이 손상되었습니다. (CentOS 7 시스템). 시스템이 제대로 부팅되지 않았습니다.

복구 CD로 부팅하고을 시도했는데 xfs_repair로그를 처리하기 위해 파티션을 마운트하라는 메시지가 표시되었습니다.

파티션을 마운트하고 ls예를 확인했습니다. 파티션을 마운트 해제하고 xfs_repair다시 시도했는데 같은 메시지가 나타납니다.

이 상황에서 어떻게해야합니까? 복구 CD (System Rescue CD, 버전 4.7.1)에 문제가 있습니까? 사용해야 할 다른 절차가 있습니까?

백업에서 시스템을 복원하는 것만으로 끝났지 만 (이 경우에는 빠르고 쉬웠지만) 앞으로 수행 할 작업을 알고 싶습니다.

답변:


20

xfs_repair 를 실행하려고 시도하는 경우 파일 시스템을 마운트하여 로그를 재생하라는 오류 메시지가 표시되고 마운트 한 후에도 여전히 동일한 오류 메시지가 수신되면 강제 복구를 수행해야합니다 ( -L플래그를 사용하여 xfs_repair). 이 옵션은 최후의 수단이어야합니다.

예를 들어 CentOS 7 설치에서 손상된 루트 파티션이있는 경우를 사용합니다. 파티션을 마운트하려고 할 때 계속해서 다음과 같은 오류 메시지가 나타납니다.

mount : / mnt / centos-root에서 mount / dev / mapper / centos-root 실패 : 구조를 청소해야합니다.

불행하게도, 수리를 강요하면 수리를 시도하기 전에 로그를 제로화 (파기)해야합니다. 이 방법을 사용하면 처음에 예상 한 것보다 더 손상된 데이터로 끝날 가능성이 있습니다. 그러나 적절한 xfs 도구를 사용하여 영구적으로 변경하기 전에 어떤 종류의 손상이 발생했는지 확인할 수 있습니다.

xfs_metadumpxfs_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 CD의 복구 모드에 있어야합니다.

마지막으로 이미지를 복구 할 수 있습니다.

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

복구가 완료되고 출력 및 잠재적 손상을 평가 한 후 파티션에 대해 복구를 수행할지 여부를 결정할 수 있습니다.

파티션에 대해 복구를 실행하려면 다음을 실행하십시오.

xfs_repair -L /dev/mapper/centos-root

다른 파티션도 손상되었는지 확인하는 것을 잊지 마십시오. 복구 후 시스템을 재부팅하면 성공적으로 부팅 할 수 있습니다.

기억 -L플래그가 수리에 대한 다른 가능한 옵션이없는 최후의 수단으로 사용되어야한다.

이 온라인 기사가 도움이되었음을 발견했습니다.


-L은 최후의 수단이며, -L을 사용하면 얼마나 나쁜지를 보는 방법에 대한 훌륭한 지침입니다. -L을 사용하지 않는 다른 옵션은 무엇입니까?
Michael Kohne

1
@MichaelKohne 물론 백업에서 복원. 백업을받지 않은 경우를 제외하고이 수준의 지옥 근처에 있으면 안됩니다.
Michael Hampton

1
@MichaelHampton-알겠습니다. 그러나 powerfail에서 ext4 오류로 인해 이와 같은 파일 시스템을 잃어 버린 적이 없다고 생각합니다 .xfs는 덜 탄력적입니까? 아니면 이번에 정말 운이 나빴나요?
Michael Kohne

@MichaelKohne 당신이 방금 운이 좋다고 생각합니다. XFS는 매우 안정적인 파일 시스템입니다.
Michael Hampton

3
우리는 단순히 initrd에서 그렇게 할 수있었습니다. 우리가 얼마나 훌륭한 "진보"를 이루 었는가.
Florian Heigl

1

kvm 가상 머신 내부에서 centos 7이 잘못 중지되면이 오류가 발생했습니다.

xfs에서 메타 데이터 손상이 감지되었습니다 ...

로그 오순절 "journalctl -xe"를 사용할 때 오류 마운트를 발견했습니다.

/ dev / mapper / root / sysroot

나는 그것을 사용하여 그것을 해결한다 :

xfs_repair / dev / mapper / root

그런 다음 시스템은 7 단계를 완료 한 다음

./일시 휴업

그리고 가상 머신 centos 7은 잘 작동합니다…

문안 인사

참고 : 어쩌면 당신은 / dev / mapper / root 다른 이름을 가지고 있습니다, journalctl -xe로 오류 로그를보고 장치의 이름이 잘못 장착되어 있는지 확인하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.