파일 시스템의 의미론적 무결성 확인

파일 시스템의 의미론적 무결성 확인

방금 Linux 상자를 부팅했는데 파일 시스템 중 하나에서 오류를 발견했습니다. 실행 fsck하고 y반복적으로 클릭하려면 루트로 로그인해야 했습니다. 하나 있다많은실수. 너무 많아서 플라스틱과 루빅스 큐브를 사용하여 키를 누르고 있었습니다 y(이 경우 자동 예 옵션은 허용되지 않았습니다). 키를 눌러도 y확인을 완료하는데 몇 시간이 걸렸는데, 키를 누르자 시스템이 부팅되고 파일 시스템에 접근할 수 있었다.

따라서 컴퓨터에 관한 한 문제의 파일 시스템은 좋습니다. 하지만 내가 알고 싶은 것은 내 모든 파일이 괜찮은지 여부입니다. 이 특정 파일 시스템에는 수천 개의 이미지가 있습니다. 빠른 무결성 검사를 수행하여 그 중 일부를 볼 수 있었지만 각 파일이 손상되지 않았는지 수동으로 확인할 수는 없었습니다.

일반적으로든 구체적으로든 내 파일 시스템의 파일이 손상되지 않았는지 확인할 수 있는 방법이 있나요? 파일 시스템은 ext3입니다.

답변1

일반적으로든 구체적으로든 내 파일 시스템의 파일이 손상되지 않았는지 확인할 수 있는 방법이 있나요?

참고할 문서의 사본이 없으면 이것이 가능하지 않다고 생각합니다. 들어가서 살펴보셨나요 /lost+found? 무언가가 부식되어 조각나면 그 조각들은 그대로 남게 됩니다 fsck.

나는 이전에 이런 일이 일어나는 것을 본 적이 있으며, 내가 알 수 있는 한 파일 시스템은 괜찮은 것 같습니다. 궁극적인 원인은 디스크 장애로 인해 e2fsck -c대량의 불량 블록 목록이 생성되기 때문입니다. 시스템이 응답하지 않고 로드 평균이 급증하는 문제가 발생하는 경우("D"로 인해)방해받지 않는 수면I/O 문제가 있고 커널을 루핑하는 데 바쁜 프로세스), 이것이 문제입니다.

얼마 지나지 않아 디스크를 교체했지만 몇 달 동안 계속 작동했습니다. (아마도 연결했다면 여전히 작동했을 것입니다.) 사용할 수 없는 블록이 여전히 남아 있기 때문에 다시 포맷했는지 e2fsck -c확인 하기만 하면 됩니다 .man e2fsck

이런 일이 다시 발생하면 -c스위치를 사용하십시오.

답변2

하지만 내가 알고 싶은 것은 내 모든 파일이 괜찮은지 여부입니다.

Ext3에는 이 기능이 없지만 IT 보안에서도 비슷한 문제가 발생합니다. 해결책은 파일 및 해당 메타데이터에 대한 해시 및 합계(즉, 실제로 위조할 수 없는 체크섬) 목록을 생성하고, 파일 무결성에 문제가 있거나 문제가 있을 경우 저장된 합계를 실제 합계와 비교하는 것입니다. Tripwire 및 AIDE와 같은 호스트 기반 침입 탐지 시스템은 정교한 수준에서 이를 수행할 수 있습니다.

내가 이해한 바에 따르면, 귀하는 운영 오류를 방지하기를 원하며, 이 경우 헤비급 HIDS는 과잉입니다.

귀하의 질문에 대해서는 관심 있는 파일의 SHA-1 합계를 수집하는 것으로 충분합니다.

이 특정 파일 시스템에는 수천 개의 이미지가 있습니다. 빠른 무결성 검사를 수행하여 그 중 일부를 볼 수 있었지만 각 파일이 손상되지 않았는지 수동으로 확인할 수는 없었습니다.

예를 들어, 이미지가 /images 아래에 있으면 다음과 같습니다.

find /images -type f -exec sha1sum {} \; > images.sha1sums

체크섬이 생성됩니다(시간이 걸립니다).

sha1sum -c images.sha1sums

실제 파일이 저장된 체크섬과 일치하는지 확인합니다.

답변3

댓글을 추가할 수 없습니다. 그래서 여기에 넣었습니다. 파일 시스템 테스트 외에도 디스크 유틸리티를 사용하여 디스크에서 SMART 테스트를 실행하고 디스크 상태를 확인할 수 있습니다.

관련 정보