한 디렉토리에서 다른 디렉토리로 좋은 파일만 복사하는 방법은 무엇입니까?

한 디렉토리에서 다른 디렉토리로 좋은 파일만 복사하는 방법은 무엇입니까?

파일 시스템이 손상되었습니다. 나는 "생존자", 남은 좋은 파일을 복사하고 싶습니다. 그래서 제 질문은 한 디렉터리에서 다른 디렉터리로 좋은 파일만 복사하는 방법입니다.

예를 들어 하나의 파일은 10GB가 될 수 있으며 5GB를 복사할 수 있습니다. 따라서 복사를 담당하는 도구가 복사된 콘텐츠를 저장하기 위해 즉시 대상 디렉터리를 사용하는 경우 전체 파일을 복사할 수 없다는 것이 분명해지는 즉시 해당 부분 파일을 제거해야 합니다(읽을 수 없기 때문에).

좋은 파일-- I/O 오류 없이 처음부터 끝까지 읽을 수 있는 파일입니다.

중요한: 자동으로 수행되어야 합니다. 즉, 사용자 상호 작용 없이(사용자 상호 작용을 사용하면 이미 Midnight Commander를 사용하고 있습니다).

업데이트: 실용적인 이유로 파일을 읽으려는 최대 시도를 지정할 수 있어야 합니다. 그렇지 않으면 파일을 계속해서 읽으려는 시도만으로 도구가 쉽게 무한 루프에 빠질 수 있습니다. 예를 들어, 주어진 파일 청크를 읽을 수 없고(I/O 오류로 인해) X 시도가 있었다면 파일이 좋지 않다고 가정합니다.

답변1

ddrescue또는이라는 유틸리티가 있습니다 dd_rescue. 이들은 동일한 작업을 수행하기 위해 서로 다른 접근 방식을 사용하는 두 가지 서로 다른 유틸리티입니다. A에서 B로 데이터를 복사하는데, cp와는 달리 실패하지 않지만 여러 번 시도를 반복하고 데이터를 읽을 수 없으면 건너뜁니다.
이러한 유틸리티는 파일 시스템을 인식하지 않지만 수동으로 또는 find.
그러나 가능하다면 dd_rescue손상된 드라이브 전체를 안전한 장소에 있는 단일 이미지 파일로 복사한 다음 해당 이미지를 마운트하고 거기에서 일반적인 방법으로 파일을 복사하는 것이 좋습니다. 이미지는 오류 없이 읽을 수 있습니다.
먼저 dd_recue를 사용하세요.

답변2

가장 쉬운 방법은 손상된 파일 시스템에서 fsck -a또는를 실행하는 것입니다 fsck -y(루트 파일 시스템인 경우 Live CD로 부팅하고 외부 볼륨으로 마운트합니다). 복구할 수 있는 모든 파일은 원래 위치에 보관되며, 다른 파일은 /lost+found원하는 경우 해당 파일에서 무언가를 복구해 볼 수 있는 위치 에 보관됩니다 .

언급된 옵션은 다음과 같습니다.

다양한 파일 시스템별 fsck에 대한 옵션은 표준화되지 않았습니다. 확실하지 않은 경우 파일 시스템별 검사기의 매뉴얼 페이지를 참조하십시오. 보장되지는 않지만 대부분의 파일 시스템 검사기에서는 다음 옵션을 지원합니다.

-ㅏ 질문 없이 파일 시스템을 자동으로 복구합니다(이 옵션은 주의해서 사용하세요). e2fsck(8)은 이전 버전과의 호환성을 위해서만 -a를 지원합니다. 이 옵션은 일부 파일 시스템 검사기가 지원하는 -a 옵션과 달리 사용하기에 안전한 e2fsck의 -p 옵션에 매핑됩니다.

(...)

-와이 일부 파일 시스템 관련 검사기의 경우 -y 옵션을 사용하면 fs 관련 fsck가 항상 감지된 파일 시스템 손상을 자동으로 수정하려고 시도합니다. 때로는 전문가가 fsck를 수동으로 더 잘 구동할 수도 있습니다. 모든 파일 시스템별 검사기가 이 옵션을 구현하는 것은 아닙니다. 특히 fsck.minix(8) 및 fsck.cramfs(8)는 이 글을 쓰는 시점에서 -y 옵션을 지원하지 않습니다.

관련 정보