[apple] 오류를 무시하고 모든 파일을 복사하는 가장 좋은 방법은 무엇입니까?

디스크 유틸리티로 복구 할 수 없지만 읽기 전용으로 마운트하여 데이터에 액세스 할 수있는 부분적으로 손상된 HD가 있습니다.

복구 가능한 모든 내용을 예비 HD에 복사하려고하지만 오류가 발생하면 시도하는 모든 방법이 실패하여 나머지 파일은 복사하지 않습니다.

파인더-실패 SuperDuper-실패 Ditto (터미널 명령)-실패

Ditto가 트릭을 수행하기를 바라고 Ditto 매뉴얼 페이지는 다음과 같이 말합니다.

모든 것이 복사되면 ditto는 0을 반환하고, 그렇지 않으면 0이 아닙니다. ditto는 거의 포기하지 않고 오류를보고하는 것을 선호합니다. 진단 메시지는 표준 오류로 인쇄됩니다.

광고 된대로 작동하지 않는 버그를 Apple reditto에 제출했습니다.

다른 아이디어가 있습니까?



답변

나는 cp -Rfv sourcefile destinationfile꽤 정기적으로 성공과 함께 사용 합니다.

cp = 복사

R = 파일 계층을 유지

f = 기존 대상 파일을 열 수 없으면 제거하고 다시 시도하십시오.

v = 상세 모드, 진행되는 동안 전송 된 파일을 표시합니다

sourcefile = 복사하려는 데이터

destinationfile = 복사하려는 디렉토리 / 드라이브


답변

Gnu ddrescue를 사용해보십시오 -복사 작업 중에 손상된 데이터 복구로 블록 기반 복사를 수행하는 데이터 복구 프로그램입니다. 터미널 창에 입력 하여 Homebrew 를 사용하는 경우 OS X 용으로 얻을 수 있습니다 .

brew install ddrescue

arstechnica에 대한 안내서는 ddrescue를 사용하여 고장난 디스크를 구출하는 방법을 설명합니다. 유용한 정보가 포함 된 안내서를 반드시 읽으십시오. 여기에가는 방법에 대한 요점이 있습니다.

  • 를 사용하여 드라이브를 찾으십시오 diskutil list. 식별자 열은 당신이 찾고있는 것입니다 :

    /dev/disk1
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *750.2 GB   disk1
       1:                        EFI EFI                     209.7 MB   disk1s1
       2:                  Apple_HFS Macintosh HD 2          80.0 GB    disk1s2
       3:                  Apple_HFS Home                    509.1 GB   disk1s3
    
  • 해당 디스크를 마운트 해제하십시오.

    diskutil unmount /dev/disk1s3
    
  • 디스크를 이미지로 복구 작업을 시작하십시오. 의 위치 Rescue.dmg가 원하는 위치로 바뀌 었는지 확인하십시오 .

    sudo /usr/local/bin/ddrescue -v -n -c 4096 /dev/disk1s3 Rescue.dmg Rescue.log
    
  • 이미지를 드라이브 로 복구하십시오 .

    sudo /usr/local/bin/ddrescue --force -v -c 4096 Rescue.dmg /dev/disk2s0 recovery.log
    

ddrescue의 매뉴얼을 읽고 실행하여 사용 가능한 옵션에 대한 교육을 받으십시오 man ddrescue.


답변

rsync손상된 소스에서 기능 대상으로 파일을 복사하기 위해 사용 하는 것이 좋습니다.

rsync -auv --delete --ignore-errors /path/to/source/ /path/to/destination/

어디에:

-a = “아카이브 모드”= 디렉토리로 재귀, 심볼릭 링크를 심볼릭 링크로 복사, 권한, 시간, 그룹 및 특수 파일을 보존하고 소유자 (소유자 = 루트 인 경우) 및 장치 (소유자 = 루트 인 경우)도 보존

-u= 대상 의 해당 사본 이 최신 인 경우 소스 의 파일을 건너 뜁니다.

-v = 자세한 출력

--delete= 소스에 존재하지 않는 대상의 파일은 삭제됩니다

--ignore-errors = 복사 과정에서 I / O 오류가 발생한 경우 파일 / 디렉토리를 삭제합니다


답변

Macworld 힌트 는 dd를 사용하여 비트 단위로 복사 (오류 무시) 한 다음 결과 이미지를 Finder에 마운트하여 파일을 복구 할 것을 제안합니다. 나는 그것을 시도하지 않았지만 그것이 효과가있는 것처럼 들린다.


답변

dd명령을 사용하여 손상된 HDD에서 새 HDD로 블록 별 복사를 수행 할 수 있습니다 .

새 HDD ( /dev/disk2)가 손상된 HDD ( /dev/disk1)와 크기가 같거나 크다고 가정하면 다음을 발행 할 수 있습니다.

dd if=/dev/disk1 of=/dev/disk2 bs=4096 conv=notrunc,noerror

4k에서 차단, 모든 데이터 블록을 자르지 말고 모든 오류를 무시하십시오.

장치 이름을 찾으려면 mount먼저 터미널 에서 실행하십시오 .


답변

ditto명령은 내가 사용하는 것, 작업을해야 ditto와 함께 -v당신은 무엇을 복사 당신에게 오류를 제공 정확하게 볼 수 있도록 자세한 정보에 대한 옵션을 선택합니다.


답변

SuperDuper를 실행하고 io 오류가있는 파일은 무시하고 대부분의 데이터를 가져 오는 매우 효과적인 방법 인 스마트 업데이트 기능을 사용하면 파일을 무시할 수 있습니다. (가능하다면 dd 명령이 바람직하다고 생각합니다).

단계 :

  1. 백업 전략으로 ‘모든 파일 백업’을 선택하십시오.
  2. 옵션에서 ‘스마트 업데이트’를 선택하십시오 (그렇지 않으면 하나 이상의 오류가있는 경우이 프로세스는 엄청나게 오랜 시간이 걸립니다.
  3. 복사본을 실행
  4. 복사에 실패하면 로그를 읽고 복사에 실패한 파일을 찾은 다음 확인 / 닫기를 눌러 ‘시작’화면으로 돌아갑니다.
  5. 사용 드롭 다운에서 ‘선택한 사본 스크립트 편집’을 선택하십시오.
  6. 스크립트 명령에서 복사에 실패한 파일을 추가하면 파일 목록에 추가되면 ‘무시’라고 표시되어야합니다.
  7. 스크립트를 일부 이름으로 저장하십시오 (예 : 손상된 파일 무시)
  8. 스크립트를 선택하고 필요한 모든 파일을 무시하려면 3-7 단계를 반복하십시오.