파티션 테이블 손상 (USB 플래시 드라이브)


9

8GB의 Patriot 썸 드라이브로 많은 양의 데이터를 광범위하게 사용했습니다. 오늘은 감지되었지만 모든 데이터가 사라졌습니다. ( 적어도 일부 데이터는 여전히 편집 되어 있지만 파티션 테이블은 사라졌습니다)


@Sathya 편집 (감사합니다) 관련 출력은 sudo fdisk -l다음 과 같습니다.

Disk /dev/sdc: 8019 MB, 8019509248 bytes
247 heads, 62 sectors/track, 1022 cylinders
Units = cylinders of 15314 * 512 = 7840768 bytes

Disk /dev/sdc doesn't contain a valid partition table

/ dev / sdc, 8GB ... 및 파티션 테이블이없는 것 같습니다.

/ dev / sdc (및 dmesg | tail) 를 마운트하려고했습니다 .

/media> sudo mount /dev/sdc mytmp
mount: wrong fs type, bad option, bad superblock on /dev/sdc,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

/media> dmesg | tail
[   24.300000]  sdc: unknown partition table
[   24.320000] sd 2:0:0:0: Attached scsi removable disk sdc
[   24.370000] usb-storage: device scan complete
[   26.870000] EXT2-fs error (device sdc): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[   26.870000] EXT2-fs: group descriptors corrupted!
[   50.420000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[   50.430000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[   50.430000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[ 5565.470000] EXT2-fs error (device sdc): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[ 5565.470000] EXT2-fs: group descriptors corrupted!

@Col 편집 : testdisk의 결과

Disk /dev/sdc - 8013 MB / 7642 MiB - CHS 1022 247 62
Current partition structure:
     Partition                  Start        End    Size in sectors

Partition sector doesn't have the endmark 0xAA55

내가 치고 나면 다음 [proceed]과 같이 말합니다.

Structure: Ok.


Keys A: add partition, L: load backup, Enter: to continue

"구조 : 좋아." 안심할 것 같습니다 ... "A : 파티션 추가"로 기존 데이터에 액세스 할 수 있습니까 (아직있는 경우), 새롭고 새로운 파티션을 만들 수 있습니까?

또 다른 옵션은 " [ MBR Code ] Write TestDisk MBR code to first sector"입니다.이 작업을 수행하는 것이 더 낫습니까?


편집 아래 데이터를 사용하고 영어 텍스트를 더 적게 검색하여 ( "" "와 같은) 내 데이터 중 적어도 일부가 여전히 플래시 드라이브에 있음을 발견했습니다.

cat /dev/sde | tr -cd '\11\12\40\1540-\176' | less

(오늘 일부 추가 드라이브를 연결했기 때문에 드라이브가 "/ dev / sdb"에서 "/ dev / sde"로 변경되었습니다). "/ dev / sde1"이 첫 번째 파티션이라는 것을 배웠습니다. "/ dev / sde"는 전체 드라이브입니다. 유닉스는 이러한 장치들을 파일처럼 취급하기 때문에, 일반적인 유닉스 파일 명령을 모두 사용하고 cat다른 데이터 스트림처럼 처리 할 수 ​​있습니다. tr이상 제거합니다 인쇄 할 수없는 문자 ( "\ 40"나는 보존하고 싶었 공간입니다). 그보다는 Vim과 유사하게 "/"를 사용하여 검색 할 수 있습니다.

데이터가 여전히 있다고 가정하면 어떻게 데이터를 다시 가져올 수 있습니까? 파티션 테이블 만 손상된 경우 표준 "파티션 복구 도구"가 있습니까? 모든 것을 삭제하지 않고 "복구"하는 방법이 있습니까?


@ChrisF 그 대답은 작동하지 않습니다 ... 그리고 거기에 응답 할 수 없습니다-그래서 여기에 있습니다 (질문 편집 참조).
13ren

@ 13ren-두 사이트에서 동일한 OpenID를 사용하는 경우 계정을 연결할 수 있습니다. 그러나 지금은 team@superuser.com으로 전자 메일을 보내어 연결을 요청하십시오. 그동안 두 가지 질문을 병합했습니다.
BinaryMisfit

1
@ 13ren-응답 할 수 없습니다. 질문을 찾을 수 있도록 중재자를위한 링크를 포함 시켰습니다.
ChrisF

ChrisF에게 감사합니다. 오해해서 죄송합니다. 제안한대로 이메일을 보냈습니다. 병합을위한 @Diago 감사합니다, 나는 지금 논평 할 수 있습니다. 다시 이메일로 보내 드리겠습니다.
13ren

1
드라이브를 삽입하고 sudo fdisk -l을 수행하면 출력으로 게시물을 업데이트 할 수 있습니까?
Sathyajith Bhat

답변:


6

장치에서 testdisk를 실행할 가치가 있습니다. 파티션 테이블이 팝업 된 것처럼 들립니다. Testdisk는 데이터를 복구 할 수 있어야합니다.


@ 중령의 감사,하지만 난 TestDisk가 없어 - 나는 시도 sudo testdisk하고 man testdisk. 방금 설치하고 apt-get을 설치하고 8GB가있는 / dev / sdc를 감지합니다 (질문에 추가됨). 조금 더 이해할 때까지 더 이상 진행하고 싶지 않습니다.
13ren

@ 중령, 나는 그것을 시도하고, 질문에 대한 결과를 추가 한
13ren

긴장된 느낌이 든다면 dd를 사용하여 하드 드라이브에 USB 스틱 이미지를 만들 가치가있을 수 있습니다. 비트별로 비트를 복사하므로 마운트 할 수없는 드라이브에서도 작동해야한다고 생각합니다.
Col

고마워, 좋은 생각이야! 그러나 dd로 파일을 어떻게 복사합니까? 매뉴얼 페이지에서 "파일"에 대해 이야기합니다 ... 아, / dev / sdc는 "파일"로 간주됩니까? 난 그냥 전체를 복사 할 수 있습니다 그래서는 / dev / SDC "와 같은 규칙 파일에 dd /dev/sdc mybackupfile?
13ren

1
이제 평판이 나왔으니 투표 할 수 있습니다!
13ren

1

걱정하지 마십시오. 데이터가 사라지지 않습니다. 그래픽 인터페이스의 내용에 관계없이 디스크가 마운트되지 않은 것이 좋습니다.

루트로 다음을 수행하여 마운트 할 수 있습니다.

mount /dev/sdb1 /media/Patriot\ Memory

내가 어디 생각sdb1USB 스틱을 말한다 - 그것은 수 있습니다 sdc1또는sdd1


또는 심지어 sda1컴퓨터의 나이에 따라 (즉, 하드 드라이브가 IDE 인 경우)
Matthew Scharley

@Michiel 감사합니다-그러나 "마운트 : 매체를 찾을 수 없습니다"라고 표시되어 있습니다. sdc1과 sdd1을 사용하면 "mount : 특수 장치 / dev / sdc1이 존재하지 않습니다"라는 메시지가 나타납니다. "sdb1"은 존재하지만 문제가 있다고 생각합니다. 몇 달 동안 작동했지만 아무것도 아는 바가 없었습니다. 그래서 어떤 하드웨어 고장
일까 걱정됩니다

1

파티션 테이블을 재 구축 할 수 있지만 가장 먼저 장치 이미지를 가져와야합니다. dd if=/dev/sdb of=~/memstick.img필요에 따라 경로를 변경 하여이 작업을 수행 할 수 있습니다 .

이 작업을 완료하면 PhotoRec을 실행하십시오. PhotoRec 는 거기에있는 모든 파일을 가져올 수 있어야합니다. 필요한 모든 것이 있으면 스틱을 포맷하고 다시 시작하십시오. 그렇지 않은 경우 추가 데이터 복구를 시도 할 수 있습니다.


1

ddrescue 는 필요한 도구입니다. testdisk 등에서 게시 한 출력을 기반으로 파티션 테이블을 구제하고 다른 방법으로 데이터에 액세스 할 수 있다고 생각하지 않습니다 .

http://www.forensicswiki.org/wiki/Ddrescue

ddrescue 는 데이터 복구 도구입니다. 한 파일 또는 블록 장치 (하드 디스크, CDROM 등)에서 다른 파일로 데이터를 복사하여 읽기 오류가 발생하면 데이터를 구출하려고합니다.

ddrescue의 기본 작동은 완전 자동입니다. 즉, 오류를 기다리거나 프로그램을 중지하고 로그를 읽고 역 모드로 실행할 필요가 없습니다.

ddrescue의 로그 파일 기능을 사용하면 데이터가 매우 효율적으로 복구됩니다 (필요한 블록 만 읽습니다). 또한 언제든지 구조를 중단하고 나중에 같은 시점에 다시 시작할 수 있습니다.

Ddrescue는 입력에서 불량 섹터를 발견 할 때 출력에 0을 쓰지 않으며, 요청되지 않은 경우 출력 파일을 자르지 않습니다. 따라서 동일한 출력 파일에서 실행할 때마다 이미 구조화 된 데이터를 지우지 않고 격차를 메우려 고합니다.

파일, cdrom 등의 손상된 사본이 둘 이상 있고 동일한 출력 파일을 사용하여 한 번에 하나씩 ddrescue를 모두 실행하는 경우, 오류가없는 완전한 파일을 얻을 수 있습니다. 다른 입력 파일의 동일한 위치에서 손상된 영역이 발생할 가능성이 매우 낮기 때문입니다. 로그 파일을 사용하면 두 번째 및 후속 사본에서 필요한 블록 만 읽습니다.

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