내 환경: BananaPI, 커널은 3.4.108
SD 카드에서 파일 시스템 검사를 실행할 때마다 블록 134217729에서 읽기 오류가 발생합니다. 실제로 이 32GB 카드에는 두 번째 대형 EXT4 FS에 대한 블록이 7167999개에 불과하므로 이는 놀라운 일이 아닙니다.
또한 fsck.ext4 -f -c(아래 참조)를 실행해 보았지만 도움이 되지 않았습니다. 불량 블록은 아닙니다. 손상된 inode가 틀림없는 것 같습니다. "오류 무시" 질문에 "아니요"라고 대답하는 것도 도움이 되지 않습니다.
분명히 fsck.ext4는 파일 시스템에서 문제를 찾을 수 있지만 문제를 해결할 수는 없습니다.
내 질문 이러한 문제로 인해 손상된 EXT4 fs를 복구하는 데 사용할 수 있는 다른 비파괴 도구가 있습니까?
// 한스
# fsck.ext4 -f -c /dev/sda2 e2fsck 1.42.5(2012년 7월 29일) 불량 블록 확인(읽기 전용 테스트): 완료 루트: 잘못된 블록 inode를 업데이트합니다. 패스 1: inode, 블록, 크기 확인 블록 134217729를 읽는 동안 오류가 발생했습니다(잘못된 매개변수). 오류를 무시하시겠습니까? 예 강제로 다시 작성하시겠습니까? 예 스캔에서 다음 inode를 가져오는 동안 블록 134217729(잘못된 매개변수)를 쓰는 동안 오류가 발생했습니다. 오류를 무시하시겠습니까? 예 2단계: 디렉터리 구조 확인 3단계: 디렉터리 연결 확인 4단계: 참조 횟수 확인 패스 5: 그룹 요약 정보 확인 루트: ***** 파일 시스템이 수정되었습니다***** 루트: 193003/1794048개 파일(0.3% 불연속), 1988723/7168000개 블록
답변1
예를 들어 파일 시스템 편집기를 사용해 볼 수 있습니다 debugfs(8)
. 섬세하고 상세한 작업입니다. 하지만 이 문제를 해결할 수 있을지 의심스럽습니다. fsck(8)
문제를 해결할 수 없거나 해결할 수 없다면매우심각합니다(또는 적어도 이상함).
파일 시스템의 내용을 백업합니다. 그런 다음 를 사용하여 해당 복사본을 파일로 가져와 dd(1)
해당 복사본을 사용할 수 있습니다. 문제를 해결한 경우 원래 명령을 다시 실행하십시오.
아니면 그냥 백업하고 다시 포맷하세요.
미디어를 확인하고 문제가 있으면 폐기하세요. 당신이 저장하는 데이터는 더 가치가 있습니다.