달리는 동안
e2fsck -cck /dev/mapper/xxx
시스템에서 메시지를 표시합니다.
has 487 multiply-claimed block(s), shared with 84 file(s):
... (inode #221446306, mod time Tue Feb 20 19:48:38 2018)
... (inode #221446305, mod time Tue Feb 20 19:48:32 2018)
... (inode #221446304, mod time Tue Feb 20 19:48:38 2018)
... (inode #221446303, mod time Tue Feb 20 19:48:12 2018)
... (inode #221446302, mod time Tue Feb 20 19:59:04 2018)
... (inode #221446300, mod time Tue Feb 20 19:47:52 2018)
Clone multiply-claimed blocks<y>?
계속해서 '예'라고 대답하면 어떤 결과가 발생할 수 있나요? 데이터가 완전히 손실되나요? 계속해서 "아니오"라고 말하면 어떻게 될까요?
답변1
다중 선언 블록은 둘 이상의 파일에서 사용되는 블록이므로 사용하면 안 됩니다. 이로 인해 영향을 받는 블록 중 하나에서 이러한 파일 중 하나를 변경하면 해당 블록을 공유하는 파일에도 변경 사항이 나타나는데, 이는 원하는 바가 아닙니다. (하드 링크는 다른 경우이므로 여기에 표시되지 않습니다.)
여기에 데이터 손실이 있는 경우,그것이 일어났다, 쉽게 되돌릴 수는 없지만 상황이 더 악화될 수 있습니다.
이 질문에 "아니요"라고 대답하면 fsck
파일 시스템은 일관성 없는 상태로 유지됩니다. "예"라고 대답하면 fsck
공유 블록이 복사되어 개별 파일로 재배포될 수 있습니다. 관련 파일은 84개이며 각 블록은 83번 복사됩니다. 예상한 대로 파일 변경이 각 개별 파일로 제한되므로 이렇게 하면 향후 데이터 손실을 방지할 수 있습니다.하지만블록을 복제하려면 현재 사용되지 않는 것처럼 보이지만 보관하려는 데이터가 포함될 수 있는 다른 블록의 데이터를 덮어쓰는 작업이 포함될 수 있습니다.
따라서 전통적인 데이터 복구 조언이 적용됩니다. 파일 시스템에서 데이터를 복구해야 한다고 생각되면 해당 데이터를 다른 디스크에 복사하고 그 안에 있는 데이터를 복구하세요. 여기에 필요할 수 있는 시나리오는 다음과 같습니다. 파일 A와 B는 한때 분리되어 있었지만 어딘가에서 손상된 후 파일 B는 이제 파일 A와 블록을 공유합니다. 파일 B의 이전 블록을 덮어쓰는 것이 없으면 데이터는 여전히 존재하지만 더 이상 액세스할 수 없습니다. 이 블록을 덮어쓰는 일이 없다면 복원할 수 있습니다(아마도 상당한 노력이 필요할 것입니다). 그러나 일단 덮어쓰면 여기에서는 사라지고 파일 A에서 공유 블록을 복제하면 이전 데이터를 덮어쓸 수 있습니다.
요약하자면, 백업이 있거나 데이터를 쉽게 복원할 수 있다는 것을 알고 있다면 "예"라고 대답하세요. 그렇지 않은 경우 중지하고 fsck
파일 시스템을 다른 곳에 복사한 후 fsck
다시 실행하고 시스템 백업이 필요하고 실행 중이면(그리고 복사본에서 데이터를 복원해야 하는 경우) "예"라고 대답합니다. 데이터가 중요하고 복원이 필요한 경우 파일 시스템을 다른 곳에 복사하되 원본 파일 시스템은 그대로 두십시오. 시스템을 백업하고 실행해야 하는 경우 다른 복사본을 만들어 실행한 후 시스템을 실행하십시오 fsck
.