외장 하드 디스크에 액세스 할 수 없습니다. “디스크 구조가 손상되어 읽을 수 없습니다”


11

1TB AgentGoFlex Seagate 외장 HDD가 있습니다.

최근에는 데이터가있는 파일이없는 몇 개의 폴더와 같은 문제가 발생했습니다. 일부 폴더가 열리지 않았습니다.

그래서 chkdskWindows 8에서 실행 을 시도했지만 성공적으로 완료되지 않았습니다. 그래서 HDD를 분리했습니다. HDD를 시스템에 장착 할 때 인식되지 않습니다. Linux에서는 전혀 인식되지 않습니다.

Win8에서 명령 프롬프트에서 디스크에 액세스하려고하면 "디스크 구조가 손상되어 읽을 수 없습니다"라고 표시됩니다.

심지어 chkdsk오류와 함께 지금 실패 : "파일 시스템이 NTFS 인 볼륨 버전과 상태를 확인할 수 없습니다 chkdsk를 중단..."

F : 에서 "유틸리티 검사"를 실행하려고하면 → 마우스 오른쪽 버튼으로 클릭 → 속성 → 도구 → 검사를하면 아래 오류가 발생합니다.

오류 스크린 샷 : Windows가 디스크에 액세스 할 수 없기 때문에 디스크 검사를 수행 할 수 없습니다

디스크를 포맷하는 것은 매우 중요한 데이터가 있기 때문에 옵션이 아닙니다.

하드 디스크에 액세스하기 위해 수행 할 수있는 작업을 제안하십시오.


1
디스크를 전문적인 데이터 복구 회사에 보낼 수 없다면 다음으로 가장 좋은 해결책은 디스크가 완전히 고장 나기 전에 디스크의 현재 상태로 디스크 이미지를 만드는 것입니다. 그런 다음 이미지 파일을 "안전한 복사본"으로 유지하고 디스크 나 복제 된 이미지 파일을 복구 해보십시오. 적어도 어떤 수준에서는 Linux가 드라이브를 인식하므로 무료 디스크 이미징 도구를 가져 와서 다른 디스크에 이미지를 먼저 쓰십시오!
Waxhead

1
Ramhound가 옳을 지 모르겠습니다. 운전이 죽었을 수도 있습니다. 데이터를 복구 할 수는 있지만 집에서하는 경우 더 많은 파일이 손실 될 수 있습니다. 일부 전문가가 도와 드릴 수도 있습니다. 그리고 백업에는 두 가지 종류의 사람들이 있다는 것을 기억하십시오.
gronostaj

답변:


10

우선 , 디스크 에서 더 이상 아무것도하지 마십시오 (적어도 절대 쓰지 마십시오 ). 인식되지 않는 디스크 ( "인식되고 비어 있거나 데이터를 읽을 수 없음"과는 대조적으로)는 완전히 블라스팅 된 디스크, chkdsk그렇지 않은 디스크 또는 파티션 테이블 또는 디스크 구조에 문제가 있음을 나타냅니다. 또는 USB 인클로저가 처리하는 방식. 하드웨어 고장도 가능합니다.

USB 인클로저가 연결된 컴퓨터와 디스크 사이의 협상을 시도 할 때 발생할 수 있습니다 . 따라서 가장 먼저해야 할 일은 dd리눅스에서 가능한 가장 가까운 물리 수준에서 디스크의 이미지를 찍는 것 입니다. 그런 다음 실제 디스크에 추가 손상을 입히지 않고 이미지 내용을 마음의 내용에 담아 볼 수 있습니다.

업데이트 : Linux에서 장치 인식

"외부 디스크"에는 엔티티 가 3 개 이상 있습니다. 블록 장치로 노출되는 USB 인클로저 하드웨어. 인클로저 내부의 물리 디스크. 물리적 장치, 즉 LBA 섹터의 순서는 처음부터 끝까지입니다. 마지막으로 파일 시스템을 호스팅하는 0 개 이상의 데이터 파티션. "인식"되어 데스크탑에 표시 되려면 체인의 모든 링크가 작동해야합니다. 그러나 물리적 장치의 이미지를 찍으려면 처음 두 개만 필요합니다. 장치를 연결하고 명령 줄 dmesg을 루트로 실행하면 다음과 같은 내용이 표시됩니다.

[4984939.028491] usb 8-6: new high speed USB device using ehci_hcd and address 3
[4984939.166658] usb 8-6: configuration #1 chosen from 1 choice
[4984939.170660] scsi7 : SCSI emulation for USB Mass Storage devices
[4984939.172003] usb-storage: device found at 3
[4984939.172005] usb-storage: waiting for device to settle before scanning

... 인클로저가 인식되고 자체와 그 내용을 식별합니다.

[4984939.170660] usb 8-6: New USB device found, idVendor=1058, idProduct=1021
[4984939.170660] usb 8-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[4984939.170660] usb 8-6: Product: Ext HDD 1021
[4984939.170660] usb 8-6: Manufacturer: Western Digital
[4984939.170660] usb 8-6: SerialNumber: 574D43305431303831303734
[4984944.400970] usb-storage: device scan complete

당신은 드라이버가 여기, 그 형상, 자연의 통보, 그리고 암시 적으로 자신의 디바이스 노드 볼 다음으로 sdd(SCSI 디스크 포에 대한 이후 sda, sdb그리고 sdc이미 찍은) :

[4984944.404739] scsi 7:0:0:0: Direct-Access     WD      Ext HDD 1021    2021 PQ: 0 ANSI: 4
[4984944.404739] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)
[4984944.407367] sd 7:0:0:0: [sdd] Write Protect is off
[4984944.407369] sd 7:0:0:0: [sdd] Mode Sense: 17 00 10 08
[4984944.407371] sd 7:0:0:0: [sdd] Assuming drive cache: write through
[4984944.408741] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)

그런 다음 커널은 파티션이 있음을 인식합니다 (이것이 보이지 않으면 파티션이 없거나 잘못되었습니다).

[4984944.411497]  sdd: sdd1

이제 Linux는 필요한 모든 것을 갖추고 있으며 성공적인 연결을보고합니다.

[4984944.416739] sd 7:0:0:0: [sdd] Attached SCSI disk
[4984944.416739] sd 7:0:0:0: Attached scsi generic sg4 type 0

그리고 데이터 파티션에 대한 검색이 시작됩니다. 즉, 우리는 가지고 있습니다 sdd1. 그러나 거기에 무엇이 있습니까? 대답은 다음과 같습니다.

[4984997.498613] NTFS driver 2.1.29 [Flags: R/W MODULE].
[4984997.554613] NTFS volume version 3.1.
[4984997.568859] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean.  Mounting read-only.  Mount in Windows.
[4985390.027808] NTFS-fs error (device sdd1): ntfs_remount(): Volume has errors and is read-only.  Cannot remount read-write.
[4985442.423299] NTFS volume version 3.1.
[4985442.425032] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean.  Mounting read-only.  Mount in Windows.

이것은 "좋은"마운트였습니다. 그러나 단지 장치 인 것을 알고 sdd, 또는 sdc또는 sdb, (I 충분한 여유 공간이 가정 나를 이진 복사 할 수 있습니다 /mnt/backupdisk) : 입력 파일 /dev/sdd, 출력 파일 DiskImage.raw, 블록 크기 1MB의 :

# dd if=/dev/sdd of=/mnt/backupdisk/DiskImage.raw bs=1M

참고 입력 파일인지 /dev/sdd 하지 /dev/sdd1 (또는 다른 번호). 이제 원한다면에서 데이터 파티션의 오프셋을 찾고 DiskImage.raw루프 장치를 사용하여 마운트 할 수 있습니다. 여기에서 당신은 더러운 세부 사항을 확인할 수 있습니다.

첫 번째 복구 시도

두 번째로해야 할 일은 물리 디스크를 다른 인클로저에 넣어서 인클로저가 양호한 지 확인하고 새 인클로저가 디스크를 올바르게 해석 할 수있는 기회를 얻는 것입니다. 디스크가 다시 나타나면 이전에 고장난 인클로저 일 수 있습니다. 만일을 대비하여, 새로 발견 된 모든 드라이브 내용을 백업하고 백업을 확인한 후 디스크 덮어 쓰기 유틸리티를 사용하여 디스크를 0으로 만들어 완전히 바보 가되도록하십시오 (장치 체인에 다른 의견을 가진 두 개의 장치를 가질 수 없음). 기본적으로 Windows에서 데이터를 복원하십시오. 그것은 운이 좋은 샷이지만, 나는 그것이 일어나는 것을 보았습니다. 그 시도는 너무 비싸지 않고 좋은 인클로저는 약 US $ 19,99에 갈 것입니다.

원래 인클로저가 불량한 경우 디스크를 다시 포맷 할 수 없거나 디스크에 액세스 할 수 없습니다. 당신은 새로운 인클로저를 시도하고 작동하는지, 기존의 인클로저를 교체하거나 새를 계속 사용하거나 (하지만 새로운 인클로저가있는 경우이 가치가있다 매우 더 나은 US $ 19.99 엘 사기꾼 이하).

전문적인 회복

Google에서 찾을 수있는 전문적인 복구 서비스 너무 정직하지 않은 방법은 물리 디스크를 전송하는 것입니다. – "예, 하드웨어 손상이 없으며 US $ $$$, $에 대한 모든 데이터를 복구 할 수 있습니다. $$! " 답 - 잘 다음 줄 알고 데이터가 아직 모두 복구했다. 따라서 촬영 한 이미지 백업에서 무료로 직접 시도해 볼 수 있으며 진단 및 디스크 S & H에 대해서만 비용을 지불하면됩니다. 실패한 경우 요청한 반죽을 기침하는 옵션이 여전히 있습니다. 이 경우 하드웨어 손상을, 전문 서비스는 기본적입니다 옵션을 선택합니다. "가장 죽은"디스크를 (일시적으로) 부활시키는 몇 가지 부두 트릭이 있습니다.매번 작동하는 것은 보장 되지 않습니다 (디스크 가열, 냉각, "회전"– 딱딱한 표면에 스마트 랩을하는 것이 좋습니다). 그들 모두는 더 많은 피해를 입힐 것입니다. 즉, 처음으로 작동하는 한 가지 트릭을 사용해야합니다. 그렇지 않으면 디스크를 영원히 죽일 것입니다. 난 그냥 당신이 부활 디스크에 대한 성공 사례를 볼 수 있습니다 이유를 설명하기 위해이 추가 : 거기에 있는 같은 이야기. 그러나 당신이 (대부분) 당신에게 일어날 것이라고 확신한다면 , 전문가를 고용하십시오.

디스크 회전, 딸랑이 소리, 이상한 소리 나 윙윙 거리는 소리, 찰칵 소리가 나는 재 교정 없음 등 하드웨어가 정상인지 확인한 경우에는 "모든" chkdsk데이터 가 엉망입니다.

DIY 복구

"홈"복구는 일반적으로 다음과 같이 진행됩니다 (기본적으로 하드웨어 손상이 할인 된 후 전문가가하는 것과 동일). 디스크 이미지 복사 작업 :

  • 디스크 이미지의 첫 번째 섹터가 유효한 파티션 테이블인지 확인하십시오. 그렇지 않은 경우 장치에있는 FS에 따라 유효한 파티션 테이블 또는 인식 가능한 NTFS 또는 FAT32 부팅 섹터를 찾는 디스크 이미지를 스캔하십시오 (1TB 장치의 경우 NTFS가 유일한 논리적 가능성으로 보입니다). 어느 쪽이든 처음 몇 메가 바이트 내에서 무언가를 찾아야합니다.

  • 파티션 테이블을 찾으면 데이터 파티션이 파티션 테이블에있는 위치를 확인하십시오. 그렇지 않은 경우 이것은 매우 좋은 소식입니다. 아마도 파티션 테이블이 전부 잘못되었을 것입니다. 수정이 쉬우 며 (여러 Linux 파티션 편집기에서이를 수행 할 것임) 디스크가 100 % 복구 될 것으로 예상 할 수 있습니다. 안전을 위해 Linux에서 데이터 파티션을 읽기 전용 모드의 루프 장치로 마운트하여 읽을 수 있는지 확인하십시오. 만약 그렇다면, 파티션 보킹이 확인되고 디스크가 확실하고 완전하게 복구되는 도중에 발음 될 수 있습니다. 그렇지 않은 경우 파티션이 올 바르고 데이터 파티션의 일부가 다시 작성되었습니다. 이것은 나쁘다; 아래의 '사물이 사라졌습니다'를 참조하십시오.

  • 그것이 발견되고 유효한 경우 드라이브 지오메트리와 비교하여 확인하십시오. 일치하지 않으면 문제의 근본 원인을 발견했을 수도 있기 때문에 실제로 좋은 것입니다. 물리적 지오메트리를 강제로 커널로 만들 수 있습니다 (Linux 부트시 가져 오기 ). 새로운 지오메트리가 Linux에서 디스크를 인식하는지 확인하십시오. 그렇다면 데이터를 백업하고 백업이 올바른지 확인하고 디스크를 dd0으로 sd만듭니다 ( 적절한 장치에 몇 메가 바이트의 0 이면 충분합니다). 컴퓨터의 전원을 끄십시오 (재부팅하지 말고 확인하십시오. 편집증이지만 비용이 거의 들지 않고 무언가를 달성 할 수 있습니다) .Windows를 부팅하고 현재의 단서가없는 디스크를 가장 좋은 형식으로 포맷하십시오. 이렇게하면 Windows와 충돌하지 않습니다. 디스크의 데이터를 복원하십시오. 즐겨.

  • 지오메트리 트릭이 작동하지 않거나 파티션을 찾을 수 없거나 일단 비어있는 것으로 보이면 문제가 발생합니다. 손실 된 데이터의 데이터 영역 (MFT 등)을 검색하기 위해 디스크 이미지 를 스캔 할 수있는 복구 도구가 필요 합니다. 일단 발견되면 데이터를 얻기 위해 해석하십시오. 이것은 어려운 작업이며 항상 완전히 자동화 할 수는 없습니다. 더 낮은 수준의 절망적 인 수준에서는 개별 파일 의 서명을 스캔 하여 디스크의 연속 된 블록에 배치되기를 희망합니다. 그래도 이런 종류의 작업은 전문가에게 기꺼이 맡길 것입니다. 오래된 FAT 디스크로 항상 여러 번 성공적으로 수행했습니다. 새롭고 더 크고 조각난 FAT32 디스크로 약 50 %를 성공적으로 다시 수행했습니다. 나는 시도했다 훨씬 더 복잡한 NTFS 및 ext4 파일 시스템에서 결과가 좋지 않은 결과 (그러나 전체 백업이 있었으며 실제로 모든 것을 제공하지는 못했습니다)의 몇 번.

리눅스에서 수동 복구

좋아, 그래서 당신은 리눅스에서 파티션을 마운트하려고 시도하고 오류를 얻는다 ( 이미지가 다른 것을 주목 하십시오 )./dev/sdc /dev/sdcN /dev/sdc

# mount -t ntfs /dev/sdc1 /mnt/recovery
ntfs_mst_post_read_fixup_warn: magic: 0x00000000  size: 1024   usa_ofs: 0  usa_count: 65535: Invalid argument
Record 1 has no FILE magic (0x0)
Failed to open inode $MFTMirr: Input/output error

... 이것은 시스템이 생각하는대로 파티션 이 잘못되었거나 심각하게 손상 되었음을 나타냅니다 . 첫 번째 옵션을 먼저 확인하십시오.

# fdisk /dev/sdc

다음과 같은 것을 얻습니다.

Disk /dev/sdc: 1000.2 GB, 1000204885504 bytes
1 heads, 63 sectors/track, 31008335 cylinders, total 1953525167 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9d2b7596

Device       Boot      Start    End          Blocks       Id  System
/dev/sdc1              63       1953520127   976760032+   7   HPFS/NTFS/exFAT

다음 단계는 실제 파티션 시작을 확인하는 것입니다. 이미지 파일 (또는 /dev/sdc)을 찾아 NTFS 서명을 검색합니다.

  00000000:EB 52 90 4E 54 46 53 20 -20 20 20 00 02 08 00 00 .R.NTFS ........ 
  00000010:00 00 00 00 00 F8 00 00 -3F 00 FF 00 3F 00 00 00 ........?...?... 
  00000020:00 00 00 00 80 00 80 00 -4A F5 7F 00 00 00 00 00 ........J....... 

# dd if=/dev/sdc bs=512 count=1 skip=63 2>/dev/null | hexdump -C | head -n 1

... 위의 데이터를 사용하면 NTFS 부팅이 63 번 섹터에있을 것으로 예상됩니다 skip. 또한 우리는 첫 번째 (예를 들어) 메가 바이트의 모든 섹터를 시도 할 것입니다 ...

# dd if=/dev/sdc bs=512 count=2000000 2>/dev/null | hexdump -C | grep "00:EB 52 90 4E 54 46 53"

... 부팅 섹터 가 하나만 있는지 (FAT32 디스크에이 문제가 있었지만 여전히 ) 읽기 오류가 없는지 확인하십시오.

결과

00007e00  eb 52 90 4e 54 46 53 20  20 20 20 00 02 08 00 00  |.R.NTFS    .....|

섹터 63은 63 × 512 = 32256 = 7e00 16 진수의 오프셋을 제공합니다. NTFS 부팅 섹터가 있고 파티션 테이블이 올바른 것 같습니다 .

우리는 지금의 큰 덩어리를 복사 할 수 있습니다 그래서 /dev/sdc1말하자면, 위에, /tmp/mydisk.img리눅스에서 그것을 해결하기 위해 시도합니다. 물리 디스크는 손상되지 않으며 다른 시도에서는 변경되지 않은 상태로 계속 사용할 수 있습니다. 그리고 지금 우리는 PT가 옳다는 것을 알고 있기 때문에, 우리는 /dev/sdc1이전에 할 수 없었던 희망을 즐겁게하고 사본을 사용할 수 있습니다 .

# dd if=/dev/sdc1 of=/tmp/mydisk.img bs=1G count=10
...after copying 10 gigabytes...

# ntfsfix /tmp/mydisk.img

NTFSfix가 제대로 작동하지 않으면 문제가있는 것입니다. 있습니다 보다 정확한 유틸리티 하지만 시도 할 수 있습니다. JPEG 사진 파일을 복구해야하고 파일 시스템이 조각화되지 않은 경우 JPEG 헤더를 찾아서 자동으로 수행 할 수 있습니다. 같은, 거의 것을 제외하고, PDF, TIFF 및 Office 문서에 간다 나는 (I는 JPEG 파일에 대한 것입니다 :-))를 인식하는 방법을 모르겠어요. 마지막 옵션으로 나는 이 사람들을 찾았습니다 – 나는 그들을 모르고, 그들과 관련이 없으며 어떤 비난도 용납하지 않을 것입니다. 그러나 이러한 일이 진행되면서 가격은 매우 합리적입니다.


@ Iserni-정보 주셔서 감사합니다. 나에게있어 첫 번째 문제는 리눅스에서 HDD의 이미지를 전혀 인식하지 못하기 때문에 이미지를 만들 수 없다는 것입니다. 창에서는 최소한 감지되지만 액세스 할 수 없습니다.
Anurag Rana

답변을 다시 업데이트 : "인식되지
않음

@Isreni-도움을 주셔서 대단히 감사합니다. 디스크의 데이터 이미지를 만들 수는 있지만 디스크의 데이터는 400GB이고 랩톱에서 사용 가능한 최대 크기는 200GB입니다. 따라서 완전한 이미지를 만들 수 없습니다. 중간에 중단됩니다. 400GB 중 200GB 만 내 랩톱에 복사 한 다음 200GB 이미지에서 일부 데이터를 복구 할 수있는 방법이 있습니까?
Anurag Rana

예, 매개 변수 dd와 함께 사용 count하여 지정된 수의 기가 바이트 만 얻을 수 있습니다 (dd와 디스크 공급 업체가 GB의 크기에 동의하지 않는 것으로 간주합니다. 하나의 "200GB"는 다른 하나의 "190GB"를 의미 할 수 있습니다). 그러나 또한 새로운 것을 고려해야 500 개 아마 가치가 희생 될 것이다 USD 59,99 주위 GB의 USB 디스크 비용이. 사실을 당신이 이미지 십중팔구 하드웨어가 완벽하다는 디스크 수단은 우리는 소프트웨어를보고있는 수. 여기서 오작동 (중요 영역에서 섹터 하드웨어 오작동으로 인해 피의 불운이 발생 하지 않는 한)
LSerni

@Isreni -Thank u :) 오늘 씨게이트 복구 소프트웨어 (무료 버전)를 사용했으며 HDD를 읽고 모든 폴더를 (있는 그대로) 나열하며 64kb (무료 버전) 미만의 모든 파일을 복구 할 수 있습니다. 즉, HDD에 하드웨어 오류가 없어야합니다. dd를 사용하여 200GB 데이터를 랩톱에 복사 한 후 일반 디렉토리에 액세스하는 것처럼 해당 덤프에 액세스 할 수 있습니까? No..right .. 생성 된 덤프는 일반적인 응용 프로그램이 설치되어 있으면 열 수없는 파일이기 때문입니다. 그렇다면 덤프에서 필요한 폴더 / 파일을 어떻게 추출 / 복사 할 수 있습니까?
Anurag Rana

-2

관리자 권한으로 cmd로 이동하여 chkdsk X를 입력하십시오. / f ( "X"는 드라이버의 볼륨 이름, "/ f"는 수정)


@Iserni 대답은 미안 해요, 너무 높은 응답 수준을 왼쪽하지만 난 downvote해야한다
시스코 타 피아

OP에서 : "chkdsk조차도 오류가 발생하여 실패합니다."파일 시스템이 NTFS입니다. 볼륨 버전 및 상태를 확인할 수 없습니다. chkdsk가 중단되었습니다. ""
Ƭᴇcʜιᴇ007

-3

저와 제 동료 모두에게 디스크를 마운트하고 chkdskWindows 7에서 사용하는 단순한 솔루션입니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.