ext4 파일 시스템 구조를 포괄적으로 검사하는 방법은 무엇입니까?

ext4 파일 시스템 구조를 포괄적으로 검사하는 방법은 무엇입니까?

500,000개의 파일이 있는 2TB ext4 파티션이 있습니다.
이 파티션에 오류가 있는지 확인하고 싶습니다.
불량 블록을 검색하고 싶지 않고 논리적 구조만 확인하면 됩니다.

파티션을 마운트 해제하고 실행했지만 fsck /dev/sda2실제로 전체 파일 시스템을 확인하지 않고 fsck가 즉시 종료 코드 0을 반환합니다.
전체 파티션 검사를 완료하는 데 몇 시간이 걸릴 것으로 예상됩니다.
읽었 man fsck지만 "철저한 테스트"에 대한 옵션을 찾지 못했습니다.

내 파티션에 일부 섹터가 실수로 정크 데이터로 덮어쓰여졌을 수도 있다는 걱정이 됩니다.
내 HDD가 이전에 다른 OS에 연결되어 있었고 해당 OS의 잘못된 동작으로 인해 ext4 파티션이 손상될 수 있었습니다.
그렇기 때문에 전체 트리 구조가 정확히 올바른지 확인하고 싶습니다.

즉, chkdsk.exeWindows에서 유틸리티가 수행하는 것과 유사한 검사를 수행하고 싶습니다.
데비안에서 ext4 파일 시스템을 완전히 검사하려면 무엇을 사용해야 합니까?

답변1

말한 바와 같이카츠라 사토, e2fsck"강제" 모드로 실행:

e2fsck -f /dev/sda2

이는 시스템이 파일 시스템이 깨끗하다고 ​​생각하는 경우에도 강제로 검사를 수행합니다. "Verbose" 옵션도 유용합니다.

e2fsck -vf /dev/sda2

참고로 귀하의 경우에는 적용되지 않지만 저장을 위해 LVM을 사용하는 경우 깔끔한 작은 것을 사용할 수 있습니다lvcheck마운트된 파일 시스템에서 "오프라인" 파일 시스템 검사를 실행하기 위한 도구입니다(검사에서 오류가 발견되지 않으면 LVM 스냅샷을 사용하고 파일 시스템 메타데이터를 업데이트합니다).

답변2

또한 -y질문에 답변하지 않도록 플래그를 추가할 수도 있습니다.

매뉴얼에서:

-yyes모든 질문에 대한 대답은 e2fsck비대화형 사용 허용이라고 가정합니다.

따라서 확장된 답변(아직 댓글을 달 수 없기 때문에)@사토- 다음을 실행할 수 있습니다.

e2fsck -vfy /dev/sda2

답변3

Linux 시스템 부팅 시 확인시스템 테이블forcefsck또는 장치의 루트 디렉터리에 이름이 지정된 파일이 있는 경우. fstab의 마운트 라인의 마지막 번호가 이면 0부팅 중에 장치를 확인합니다. 파일을 생성하려면 forcefsck다음 명령을 사용하십시오.

sudo touch /forcefsck
sudo reboot

이 파일을 루트 디렉터리에 배치하면 fstab의 내용에 관계없이 (재)부팅 중에 동일한 볼륨을 확인합니다.

단점은 fsck 중에 시스템을 사용할 수 없으며아니요예를 들어 SSH를 통해 원격 요청에 응답합니다.

(@kusalananda 댓글을 기반으로 편집됨)

답변4

당신은 또한 사용할 수 있습니다2fs 조정이를 위해 예를 들어 다음 명령은 2개월 또는 100회 설치 후 디스크를 확인합니다.

tune2fs -c 100 -i 2m /dev/sda1

관련 정보