본문 바로가기
운영체제 (LNX,WIN)

testdisk - 파티션 복구 프로그램

by 날으는물고기 2009. 8. 4.

testdisk - 파티션 복구 프로그램

1. 파티션 문제의 원인

리눅스 부팅용 USB 부팅 디스크를 만들려고 dd.exe (윈도우용)을 실행 했는데 장치 번호를 잘못지정하여 하드디스크의 디스크를 지정하고 말았다. 하드디스크가 윈도의 C:\와는 다른 파티션 이라서 윈도우는 살아 있으나 작업 데이터가 모두 보이지 않았다. 앞이 깜깜... 

http://www.chrysocome.net/dd

E:\boot\dd>dd --list
rawwrite dd for windows version 0.5.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by the GPL.  See copying.txt for details
Win32 Available Volume Information   link to \\?\Device\HarddiskVolume1
  fixed media
  Mounted on \\.\c:

\\.\Volume{a45b27ab-b3e4-11dc-9a4b-806d6172696f}\
  link to \\?\Device\HarddiskVolume2
  fixed media
  Mounted on \\.\d:

. . . ( 중략 ) ...

\\.\Volume{0381085c-a4b1-11dd-a013-001d7da1eb3b}\
  link to \\?\Device\Harddisk2\DP(1)0-0+6
  removeable media
  Mounted on \\.\i:

NT Block Device Objects
\\?\Device\CdRom0
  size is 4381736960 bytes

\\?\Device\Harddisk0\Partition0
  link to \\?\Device\Harddisk0\DR0
  Fixed hard disk media. Block size = 512
  size is 500106780160 bytes
\\?\Device\Harddisk0\Partition1
  link to \\?\Device\HarddiskVolume1
\\?\Device\Harddisk0\Partition2
  link to \\?\Device\HarddiskVolume2
\\?\Device\Harddisk0\Partition3
  link to \\?\Device\HarddiskVolume3
\\?\Device\Harddisk0\Partition4
  link to \\?\Device\HarddiskVolume4
\\?\Device\Harddisk1\Partition0
  link to \\?\Device\Harddisk1\DR1
  Fixed hard disk media. Block size = 512
  size is 263208960 bytes
<\\?\Device\Harddisk1\Partition1
  link to \\?\Device\HarddiskVolume5   link to \\?\Device\Harddisk2\DR5
  Removable media other than floppy. Block size = 512
  size is 516423680 bytes
\\?\Device\Harddisk2\Partition1
  link to \\?\Device\Harddisk2\DP(1)0-0+6
  Removable media other than floppy. Block size = 512
  size is 516391424 bytes

Virtual input devices
 /dev/zero   (null data)
 /dev/random (pseudo-random data)
 -           (standard input)

Virtual output devices
 -           (standard output)

E:\boot\dd>dd if=fedora.img of=\\.\d:

-> 이렇게 하면 하드의 D:가 부팅영역이 문제가 생기고 윈도우에서 인식이 되지 않고 포맷하라고 뜬다.

E:\boot\dd>dd if=fedora.img of=\\.\i: -> 이 한글자가 디스크를 못쓰게 만들 수 있음을 심각해야 하는 것을...

이것을 복귀하려고 인터넷을 뒤져 testdisk을 찾아 복구하여 살려 보았다. 이것으로 다시 파티션을 복구 하였다. 리눅스는 fedora의 USB 부팅 만드는 프로그램으로 해결 하였다.

https://fedorahosted.org/liveusb-creator/wiki

이 프로그램은 리눅스 부팅 USB을 만들어 주는 프로그램이다.

 

2. 파티션 분석

TESTDISK - 파티션 복구

파티션 복구를 위한 testdisk는 다음 사이트에서 다운할 수 있다.

http://www.cgsecurity.org

다운로드 : http://www.cgsecurity.org/wiki/TestDisk_Download

이 프로그램은 리눅스 쪽에서 사용되는 것을 PC로 포팅한것으로 보인다. 압축을 풀면 cygwin1.dll가 보이는 것으로 보아... 리눅스에서 개발된 프로그램을 윈도우에서 적용하는 대표적인 것이 cygwin이다. 그렇지만 cygwin을 설치할 필요는 없다.

Step1. testdisk 실행

D:\testdisk\testdisk-6.10\win>testdisk_win

log을 새로 만들었다.

Step2. 하드디스크 결정

복구해야할 하드를 결정한다.

Step3. OS 결정

AMD을 사용하고 있지만 Intel PC로 설정 한다. 이것은 OS을 정하는 것으로 [Intel   ]은 Windows계열을 말하는 것이다.

현재 컴퓨터는 Windows XP prof. SP3 버전이다.

Step4. 문제 파티션을 찾기 위한 파티션 분석-[Analyse] 실행

Step5. 문제 파티션 파악

각 파티션이 표시 되어 있다.

1 : Windows XP가 설치되어 있는 파티션이다. 다행이 이 파티션은 살아 남아 있으므로 현재 컴퓨터에서 작업이 가능 하다.

그러나 이 윈도우 자체가 문제가 생기면 블루 스크린을 뜨면서 윈도우가 멈추었을 것이다. 그러면 DOS로 부팅하거나 다른 컴퓨터에 하드디스크을 연결하여 처리 해야 했을 것이다.

2. E extended LBA : 보통 하드디스크가 Primary 파티션을 4개까지 할수 있지만 보통 windows에서 파티션을 나누면 2번 부터는 extended LBA로 하고 이 밑에서 다시 논리 디스크를 만든다. 이것 역시 이 방식이다. 현재 이 밑에 5,6,7번 파티션 3개 존재 한다.

이중에 5번이 문제가 발생한 파티션이다.

5. L HPFS - NTFS : 이 파티션이 작업용 데이터 저장을 위한 파티션으로 사용하고 있었다. label이 [work]로 되어 있었는데 문제가 발생하여 'Invalid NTFS boot'로 나타난다. boot영역이 문제가 생긴 것이다.

6,7 L HPFS - NTFS : 정상 데이터 영역 파티션

다행히 복구하려는 파티션이 보인다. 이것이 잘못되어 있다면 심층탐색을 선택하여 찾아보야야 할 판인데... dd에서 사용한 fedora.img는 14K 밖에 되지 않아서 boot 영역을 넘어서지 않는 작은 크기 이므로 위와 같은 결과가 나온것으로 보인다.

만약 원래 사용하고 있었는데 파티션 자체가 보이지 않는다면 [Deeper Search]을 동원해야 한다.

[Deeper Search]에 관한 내용은 다음 블로그를 참조할 수 있다.

http://sirjhswin.tistory.com/174

[Analyse] 모드에서 복구를 시도 했으나 실패 했다. 따라서 다음 과정으로 진행 한다.

3. 파티션 복구

다시 testdisk을 실행하여 [Advanced] 메뉴를 사용하여 복구 하였다.

다음 3단계는 위의 분석과정과 같다.

Step1. testdisk 실행

Step2. 하드디스크 결정

Step3. OS 결정

Step4. 복구 방식 결정

복구를 위해 분석 메뉴가 아닌 [Advanced]을 선택한다.

Step5. 복구 파티션 결정

5을 선택하고 아래의 [boot]을 선택 한다. 이미 존재하는 부팅 영역을 복구하는데 사용 한다.

Step6. 복구 메뉴 [boot] 실행

'Boot sector'의 'Status : Bad'가 나타나고 'Backup boot sector'는 아직 살아 있는 OK로 나타났다. 따라서 복구하기 위해 [Backup BS]을 선택 했다. 이것은 backup boot 테이블 데이터를 사용하여 복구는 것을 말한다.

Step7. 복구 메뉴 [boot] 확인

확인 'y'을 누르고 다음을 진행하면

Step8. 복구 확인

'Boot sector'의 'Status : OK'가 나타나고 이제는 윈도우가 이 파티션을 읽을 수 있다.

Step9. 복구 끝

일단은 여기서 'Quit'하고  종료 하였다.

다시 testdisk을 실행하여 [Analyse]을 실행하여 체크 하였다.

5번 [work] 파티션이 복구 되었음을 나타낸다.

윈도우의 도구 중에서 디스크 검사를 했더니 가장 최근의 MTF와는 달라서 몇가지 수정이 되었다.

끝나기 전에 [Repair MFT]을 실행하면 이것은 해결은 되지 않아나 쉽다.

어째든 다시 하드의 파티션 영역이 살아났다. 데이터가 많은데 복구하려면 상당한 노력이 필요 했을 것이다.


출처 : http://blog.naver.com/dolicom

728x90

댓글