손상된 홈 디렉토리 강제 복사

손상된 홈 디렉토리 강제 복사

디스크에 손상된 파일이 많은 홈 디렉터리가 있습니다. 최대한 많은 파일을 저장하려고 노력 중입니다. 다음 명령을 사용하여 외부 드라이브에 홈 디렉터리의 백업을 만들려고 합니다.

tar -cvf backup /home/myHome

그리고 또한 시도했다

rsync -vfh /home/myHome /media/backup

손상된 파일이 발견되면 두 방법 모두 중지됩니다. 복사를 계속하고 잘못된 파일을 무시하고 가능한 모든 것을 복사하고 복사되지 않은 파일 끝에 로그를 표시하도록 강제하는 방법이 있습니까?

감사해요.

답변1

외장 드라이브에 충분한 공간이 있는 경우 복구할 수 없는 섹터를 건너뛰고 파티션 전체 복사를 수행합니다. 그럼 복사해서 전화 fsck해보세요.

실패한 드라이브에서 파티션을 복사하려면 다음을 사용하세요.myrescue또는 이것이 충분히 유연하지 않은 경우ddrescue또는dd_rescue. 이러한 도구는 모두 읽을 수 없는 영역을 건너뛰거나 반복 읽기가 작동할 가능성이 있는지(예: 광학 미디어 또는 플로피 디스크)에 따라 조정하거나 반대로 실패한 드라이브를 더 빨리 마모시킵니다(예: 대부분의 하드 드라이브). 드라이브 오류) ). 당신은 또한 볼 수 있습니다실패한 드라이브의 데이터 저장,손상된 SD 카드에서 데이터를 복구하는 방법은 무엇입니까?

sudo myrescue /dev/sda42 >/media/backup/home.raw
cp /media/backup/home.raw /media/backup/home.recovering
/sbin/fsck -f /media/backup/home.recovering
sudo mount -o loop /media/backup/home.recovering /mnt
cp -a /mnt /media/backup/home.saved

답변2

나는 이것을 위해 작은 스크립트를 썼다

#!/bin/bash
echo "copying from $1"

find $1 -type f -print0 | while read -d $'\0' -r file ; do
    echo Processing "$file"
    target="$2""$file"
    if (test -f "$target") then
        echo File Exists:  "$target"
    else
        echo copying to "$target"
        targetDir=`dirname "$target"`

        if (! [ -d "$targetDir" ]) then
            mkdir "$targetDir"
        fi

        ddrescue -e0 -r0 -v -n "$file" "$target"
        if ([ $? -ne 0 ]) then
            echo Copy failed, deleting "$target"
            rm -f "$target"
        fi
    fi
done

답변3

우선, rsync -aHv---를 사용하는 것은 rsync -vfh원하는 작업에 적합하지 않습니다.

rsync에는 사용할 수 있는 --ignoring-existing 플래그가 있습니다. rsync -aHv --ignore-existingI/O 오류로 종료될 때까지 실행합니다 . 실패한 파일의 이름을 기록하고 rsync가 작동하면 복사될 외부 드라이브에 빈 버전의 파일을 만듭니다. --ignore-existing을 사용하여 rsync 명령을 다시 실행하면 실패한 파일 복사를 시도하지 않게 됩니다. rsync가 다른 모든 것을 복사하기를 바라지만, 다시 중지되면 프로세스를 반복하십시오. rsync가 완료될 때까지 반복합니다.

답변4

cpio -ivd -H tar명령 사용

맨 페이지에는 다음과 같은 내용이 있습니다.

그러면 디렉토리.cpio 파일에 보관된 파일이 검색되어 현재 디렉토리에 배치됩니다. "-i" 옵션은 아카이브를 추출하고 "-v"는 추출된 파일 이름을 표시합니다. 아카이브 디렉토리 트리를 다루는 경우 "-d" 옵션을 사용하여 필요에 따라 디렉토리를 생성해야 합니다.

-H는 형식을 나타냅니다.

바라보다이것그리고 이것

관련 정보