다음 이전 차례

8. 문제 해결하기

조심해라 ! 당신이 이전의 시스템으로 돌려주는 것을 이끌 다음의 설명을 따라 해라 ! 당신은 결정을 해야 한다...

8.1 간단한 경우

이제 할 작업은 모두 간단하다 :

이 정도면 충분하다

  1. 리눅스를 시작하라.
  2. fdisk /dev/hda (복구할 디스크)를 실행하라.
  3. 피해를 입은 디스크에 존재하는 모든 파티션들을 지우기 위해 (d 명령) fdisk를 사용하라.
  4. 종이에 업급된 모든 프라이머리 (1-4) 파티션을 만들기 위해 fdisk를 사용하라.
  5. 적합한 태크 (t 명령)을 주라 : 82 는 리눅스 스왑, 83은 리눅스 메인 (L은 리스트를 보여준다), 5는 확장 그리고 논리 파티션을 만들기전에 해야만 한다.
  6. 논리 파티션을 만든다.

fdisk는 작지만 훌륭한 프로그램이다. fdisk로 만든 다른 프로그램이 많이 있다. 그러나 드러난 것을 좋아한다 (나는 리눅스의 것을 말하며, 물론, 다른 운영체제는 아니다...).

fdisk는 w를 치기 전에는 디스크에 어떠한 것도 기록하지 않는 다는 것을 알아둬라. 당신이 실수를 두려워하는 경우라면, q (quit) 혹은 Ctrl C (\^{ }C) 를 쳐서 안전하게 종료하라.

당신의 새 파티션 테이블이 쓰여졌을때, 리눅스를 다시 시작하라. 평상시 대로 하면 안된다 : lilo는 피해를 입었을 수 있고 당신은 부트 플로피 혹은 부팅 시디가 필요할 것이다 ("설피된 파티션으로 부팅"을 골라라).

당신이 lilo를 사용하여 부팅을 한다면, 루트로 로그인 하자마자, 당신이 제일 좋아하는 부트 로더를 재설치하기 위해 "lilo"를 쳐라.

당신의 리눅스는 모두 있을 것이다, 테스트 해보라. 윈도우가 있다면 윈도우로 시작해보라. 만약 할 수 없다면, 당신의 데이터를 리눅스로부터 읽을 수 있다면, (매우 조그만) 문제가 있다. 아마도 섹터 리드에 의한 raw 섹터일 것이다. 만약 당신이 당신의 데이터가 디스크 섹터에 있다는 것을 확인할 수 있다면, 그 것을 파일로 복사하기 위해 dd를 사용하라. 이 것은 형명한 것이다. 기 것은 이 복구 mini-HOWTO의 범위에 벗어난다.

8.2 간단하지 않은 경우

By hand

이 것은 이 전의 방법으로 못 할때, fdisk 문서의 부족 혹은 데이터 밖의 사용을 사용하지 못 할때이다.

먼저, (fdisk를 제외하고) 디스크를 쓰는 작업을 중단해야 하는 것을 알아둬라. 당신은 데이터를 지울 수 없고, 그래서 블럭 바이 블럭을 시도해 볼 수 있다. 이 것으로 파티션이 시작한다는 것을 알아야할 필요가 있다. 만약, 153이 맞지 않다고 말하면, 154를 시도하고, 등등.

이 것은 지겨운 작업이지만 리눅스 파티션의 사이즈는 대체로 기억하고 있다면, 할 수 있는 기회가 있다.

gpart

그러나 넷에 접속할 수 있거나 "gpart"를 가지고 있다면 더 좋은 방법이 있다.

"gpart - guess PC-type hard disk partitions" 은 gpart (man gpart)의 맨 페이지의 첫째줄에 있다.

"gpart 하드 디스크에 있는 파티션을 추측한다. 만약 프라이머리 파티션 테이블이 없어졌고, 덮어썼거나 파괴된 디스크가 존재하지만 운영체제는 그들에 접근을 못 한다.". 이 것은 정확히 우리가 필요하다.

gpart는 아직 베타임에도 불구하고 아주 좋은 툴이다.

문제는 아래와 같다 : 어떤 파니션의 첫번째 블록이 마크되었다. 그러나 덮어쓰여지지 않았다면 절대 "unmarked"가 아니다. 그래서 많은 "첫번째 파티션 블록"은 오래된 디스크에 존재하고 있으며 gpart는 작업을 하려고 시도 하는 프로그램 중 좋은 프로그램이다. 사실은 시도 하는 것이 아주 어렵지 않다. gpart에 의해서 쓰는 것은 아무 것도 없다.

hdb의 이전의 gpart의 결과이다 :

root@charles:/home/jdd > gpart /dev/hdb

Begin scan...

Possible partition(Linux ext2), size(1200Mb), offset(0Mb)

Possible partition(Windows NTFS), size(1200Mb), offset(1200Mb)

Possible partition(Linux ext2), size(1004Mb), offset(2402Mb)

Possible partition(Windows NTFS), size(1600Mb), offset(4102Mb)

End scan.

Checking partitions...

* Warning: partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX) ends beyond disk end .

Partition(Linux ext2 filesystem): primary

Partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX): primary

Partition(Linux ext2 filesystem): primary

Partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX): invalid primary

Ok.

Guessed primary partition table:

Primary partition(1)

type: 131(0x83)(Linux ext2 filesystem)

size: 1200mb #s(2457880) s(63-2457942)

chs: (0/1/1)-(152/254/61)d (0/1/1)-(152/254/61)r

Primary partition(2)

type: 007(0x07)(OS/2 HPFS, NTFS, QNX or Advanced UNIX)

size: 1200mb #s(2457880) s(2457944-4915823)

chs: (152/254/63)-(305/253/60)d (152/254/63)-(305/253/60)r

Primary partition(3)

type: 131(0x83)(Linux ext2 filesystem)

size: 1004mb #s(2056256) s(4919781-6976036)

chs: (306/61/49)-(434/60/47)d (306/61/49)-(434/60/47)r

Primary partition(4)

type: 000(0x00)(unused) size: 0mb #s(0) s(0-0) chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

당신이 보는대로, 프라이머리 파티션은 덮어 쓰여졌을 수 있다. 그러나 확장은 그대로다.

도스 파티션은 "windows NTFS"하고 라벨이 붙어있는데 Windows 2000 (매우 무서운 경험 !)를 설치하려고 시도하는 동안 만들어졌다. "invalid"는, 사실은 확장 파티션.

이 것과 함께, fdisk를 사용하여 파티션 테이블을 다시 만들 수 있다.

8.3 부자의 경우

Partition Magic는 상업 제품이지만, 싸지는 않지만 매우 좋은 평가를 받고 있는 프로그램이다 (프랑스돈으로 백 달러에 거의 가깝다). 그렇지만 나는 절대 이 것을 사용하지 않을 것이며 평가도 하지 않을 것이다. 이 것은 파티션과 어떠한 것도 할 수 있다고 하고 복구시킬 수도 있다.

최초의 Ralf partition-rescue mini HOWTO는 본래 Partiton Magic의 사용에 기반을 두었다. 그래서 나는 당신의 리눅스 파티션에 가치가 있는 데이터가 있고 능력이 있다면 이 것이 가장 좋은 해결책이라고 생각한다. 그렇지만 매우 최근의 Partition Magic보다 더 좋은 프로그램이 있다고 생각하고 더 좋은 메뉴얼이 있다고 생각한다.


다음 이전 차례