| [ windows ] in KIDS 글 쓴 이(By): child (:: 아리 ::) 날 짜 (Date): 1999년 11월 28일 일요일 오전 01시 40분 09초 제 목(Title): NT4.0에서 NTFS 파티션테이블복구 평소 문제가 생겨서 이리저리 자료를 찾다보면 느끼는 것이 정작 정말 도움이 필요한 문제에 대한 답은 없다는 것이다. '[질문] 이거 어떻해요?' 까지만 있지, [답변] 이 없다. 그래서 느낀 건데, 나름대로 짜증났던 문제가 해결 되었을 때 는 누가 안 물어봐도 이런데 올리는 것이 도움이 되리라 싶어 서 올립니다. --------------------------------------------------------- 증상: 탐색기에서 해당 파티션을 보려고 클릭했을 때, 엑세스 가 안된다고, 어쩌구저쩌구하며 볼 수가 없다. '디스트 관리자'로 보면 파일 시스템이 '알 수 없음'으 로 되어있다. 뱔생원인: 너무 많은 요인이 있어 알 수 없음. 단지, 필자의 개인적인 경우, 개발용으로 디스크 하나를 C: D: 두 개의 파티션으로 나눠 쓰고 있던 중, 회사에서 너무너무너무 오락이 하고 싶어서, 하드랙으로 다른 하드 를 추가로 설치하고 거기에 win98을 깐 다음, 부팅 순서를 바이오스에서 바꾸는 방법으로 일할 땐, NT4.0. 오락할 땐 win98로 할 수 있도록 계획을 짬. 하드를 달고 win98을 까는데, setup을 돌린 직후, 망할 놈 의, 멍청하기 짝이 없는, scandisk가 돌아가는 것까지는 좋 았는데, 이 놈이, NT가 깔린 디스크의 두번째 파티션(D:)를 인식하더니 이상한 짓을 해놓고 '문제없음'을 표시함. (필자, 이 상황에서 돌아버림. 왜? 업무시간에 몰래 인스톨 하고 있었기 때문......-_-; 어디 하소연할 곳조차 없었다.) 작동불능이유: 여러가지가 있지만, 여기서 논할 것은 파티션 테이 블이 날아간 경우임.(그리고 특별히 그 파티션이 Primary partition인 경우, Extended인 경우는 아래 언급한, microsoft knowledge base에서 Q153973의 후반부를 보면 된다.) 그럼 파티션 테이블이란 무엇인가? 파티션이 뭔지 모르면 주위 사람한테 물어보시고, 해당 파티션에 대한 정보(파티션 크기, 구성)을 저장하고 있는 부 분을 파티션 테이블이라 부른다. 이것은 파티션 맨 앞부분에 존재하는데, 이게 깨지면, 당연히 파티션 정보를 읽을 수 없으므로, 파일 시스템의 종류, 크 기 등을 모르고 따라서 해당 파티션에 접근할 수 없 게 된다. 데이터는 멀쩡하더라도. 따라서 이렇게 중요한 파티션 테이블을 보호하기 위해 보통 파티션 테이블을 여러 개 가지고 있어 하 나가 깨져도 여분의 파티션 테이블을 통해 복구할 수 있다. 그럼 디스크에 파티션이 몇 개 있는지, 각각의 파티 션 테이블의 위치는 어떻게 알 수 있을까? 그런 정 보들이 있는 부분이 MBR(Master boot record)이다. 디스크에 맨 처음 섹터부터 MBR이다. NTFS에서는 각 파티션의 파티션 테이블이 파티션 맨 처음 하나, 맨 뒤에 백업으로 하나가 있다. 따라서 디스크 전체를 보면 다음과 같다. MBR PT1 1번파티션 PT1 PT2 2번 파티션 PT2 그래서 맨 앞의 PT(파티션 테이블)이 깨졌다면 맨 뒤의 파티션 테이블을 가져다 맨 앞에 다시 써주면 되는 것이다. 실제 적용: www.microsoft.com 에서 knowledge base에서 Q153973을 찾으면, 자세한 방법이 있다. 여기서 간단히 옮겨보면, 우선 NT4.0 Resouce kit이라는 서비스팩 비스무리한 것 이 있어야 한다. 이 안에는 'DskProbe.exe'라는 파일이 있는데, 이것은 일종의 sector editor다. 우선 NT로 부팅한 다음(만약 C가 날아가서 부팅이 안되면 NT를 깐 다른 컴에 손상된 디스크를 붙이는 방법으로 해결 해야한다.), DskProbe를 실행한다. Select Drive 메뉴에서 해당되는 Physical disk를 선택한 다음, Read only 체크박스에서 체크를 지우고, 그것을 SetActive 버튼으로 Active시킨다. 이제 이 디스크를 access 할 수 있게 된 것이다. 그 다음은 MBR을 우선 찾아간다. 맨 앞에 있으므로, SECTOR 메뉴에서 Read를 선택, 0번 섹터 부터 1개만 읽도록 선택한다. 그러면 MBR로 가게 된다. MBR에 있으니, 우리는 이 디스크의 파티션 정보를 알 수 있 다. 이 정보를 통해 손상된 파티션 테이블의 위치를 찾아가 야 한다. Partition table 메뉴를 선택하면, 그 정보가 쫙 나온다. 오른쪽 위에 파티션이 1,2,3,4 네 개가 보일 것이다. 파티션이 두 개라도 네 개가 보이므로 걱정할 필요는 없다. 손상된 파티션을 선택해 더블클릭하면, 그 파티션에 대한 MBR의 정보가 표시된다. 우리가 필요로 하는 것은 해당 파티 션의 시작 sector인데, 이것은 'Relative Sector'라는 항목 에 표시가 된다. 바로 옆에 Go 버튼을 누르면 그 곳으로 이 동한다. 이제 우리는 손상된 파티션의 파티션 테이블 시작 위치에 있다. 필자의 경우, 화면을 보니 엉뚱하게 FAT 어쩌 구로 파티션 테이블이 시작하는 것이다. 한 7,8줄 이후는 정상이고. 멍청한 win98 setup이 이 파티션의 맨 첨 부분을 FAT으로 인식하고 거기에 써버린 것이다. 원래는 NTFS로 시 작해야 하는데. 이젠 NTFS Bootsector 메뉴를 선택한다. 그리고 나오는 화 면에서 Volume End 버튼을 누른다. 이것은 맨 끝으로 가는 것이다. 그러면 이제 우리는 두번째 파티션 테이블에 와 있 다. 방금 전에 봤던 첫번째 파티션과 비교해보라. 두번째가 온전하다면 복구할 수 있다. 그러나, 첫번째 파티션 테이블 이 심하게 손상되었다면(필자의 경우다), 두번째 파티션 테 이블 위치를 못찾을 수 있다. 즉, Volume End 버튼을 눌러 도 제대로 안간다는 얘기다. 이 때는, 다시 Partition table 메뉴에서 아까 봤던 Relative Sector와 그 옆의 total sector 값으로 두번째 파티션 위치를 찾아내야 한다. 말은 어렵지만 실은 간단하다. 두 값을 더한다음 1 빼주면 된다. 그 결과가 두번째 파티션 위치다. 파티션 위치(섹터번호)를 알았으므로 SECTOR메뉴에서 Read로 그 위치를 찾아가면 된다. 이래서 두번째 파티션 테이블에 도달해 내용을 본 후, 복구 가 가능하다는 판단이 들면 SECTOR에서 Write를 선택한다. 이것은 현재 화면의 내용을 다이얼로그에서 입력받는 위치 에 기록하겠다는 것이다. 현재 우리가 두번째 파티션 테이블 에 있으므로, 첫번째 파티션 테이블 위치, 즉, 아까 봤던 Relative sector의 값을 적으면, 현재 두번째 파티션 테이블 내용을 첫번째 파티션 위치에 쓴다는 얘기가 된다. Write 한다음에는 DskProbe를 종료하고 재부팅한다. 제대로 됐다면, 이제 해당 파티션을 NTFS로 인식하고 access할 수 있을 것이다. ---------------------------------------------------------------- 난 끊임없이 누군가를 찾는다. metheus@iname.com 내가 누구인지도 모른 채... |