次のページ 前のページ 目次へ

8. 問題を解決する

どうぞ注意深くやってください。これから行う説明は、最近何かをインストールし たなら、それをあきらめて、以前のシステムに戻してしまいますから。 選択をしなくてはいけません。

8.1 より単純な場合

fdisk -l の結果が手元にある場合

それで十分です。

  1. linux を起動します。
  2. fdisk /dev/hda (あるいは救助するディスク) を起動します。
  3. fdisk で、損傷を受けたディスク上にあるすべてのパーティションを 削除(d オプション)します。
  4. fdisk で基本パーティション(1-4)を作ります。
  5. パーティションに適切なタグ(t オプション)を与えます。 Linux のスワップパーティションには 82 。 Linux のメインパーティションには 83 (L はリストを表示します)。 5 は拡張領域で、論理パーティションを作る前に領域を確保しなければなりません。
  6. 論理パーティションを作ります。

fdisk は小さいですが、とてもよくできたプログラムです。別の種類の fdisk もありますが、私はシンプルなものをお勧めします(もちろん、Linux の fdisk です。ほかの OS の fdisk はお勧めしません)。

訳注:fdisk プログラムには同じ機能を持ったものが複数あります。 cfdisk、sfdisk があります。 Linux を使っているなら man fdisk,cfdisk,sfdisk で確認してみてください。

fdisk は w (書き込みコマンド)を入力してリターンキーを入れるまではディス クには何も書き込みません。間違いを恐れるなら、安全に終了するために、q を入力するか、Ctrl C を使ってください。

新しいパーティションテーブルを書きこんで Linux を再起動します。もしか したらいつものように起動してこないかもしれません。lilo が壊れてしまっ たなら、起動ディスクを使うか、CD (``インストールしたパーティションから 起動する''を選択します)から起動する必要があります。

lilo で起動するなら、root でログインして、``lilo''を入力し、 お好みのブートローダを再インストールするためにリターンキーを入れます。

Linux がすべてそこにあるはずです。テストしましょう。問題がないなら、 windows もちゃんと起動するか試しておきましょう。もしうまくいかないなら、 セクターの読み取りで生のセクターを読むことで、もしかすると Linux から あなたのデータを読めるかもしれません(ほとんどないかもしれませんが)。ディ スクのセクターにあなたのデータがあるのを確認したら、dd を使ってファイ ルにそれをコピーします。こういうことはテキストデータだけにしておくほう がよいでしょうが。これを復旧するのは、この mini-HOWTO の範囲ではありま せんのであしからず。

8.2 それほど単純ではない場合

手動で行う

先に述べた方法が使えない時、たとえば、fdisk の結果を書いた紙がない、あ るいは古いマシンなので動かないなら、この方法でやりましょう。

まず、ディスクに書きこまない( fdisk をする以外に)限りはデータを消すこ とはできませんから、ブロックごとに試してみることができます。つまり、パー ティションの開始番号を知っている必要があるということです。153 がうまく いかないというなら、154 を試します。以下同様。

訳注:fdisk でパーティションを作成する時、作成するパーティションについ て先頭シリンダの番号を入力します。さらに、パーティションの容量は + 記 号に続けて容量と単位を入力、またはそのパーティションの最終シリンダ番号 を直接入力することで指定できます。

やっかいなことになりますが、Linux パーティションのだいたいのサイズを覚 えているなら、うまくやれるでしょう。

gpart

ネットにアクセスできるか、gpart を持っているならよい方法があります。

``gpart 、 PC-type ハードディスクパーティションを推測する''については、 gpart のオンラインマニュアルの最初の行に書いてあります。

``gpart はハードディスク上にあるパーティションを推測してみるものです。 基本パーティションテーブルが失われていたり、上書きされてしまっている、 あるいは、壊されてしまっていると、ディスク上にまだパーティションが存在 するにもかかわらず、オペレーティングシステムはそれにアクセスできなくなっ てしまいます。''この gpart がまさにわれわれが必要としていたものです。

gpart はまだβ版ですが、とてもよくできたツールです。

問題は次のようなことです。どのパーティションの最初のブロックも特徴的な データを持っており、新たに上書きされない限りそのデータを消すことができ ません。このため、たいていの``パーティションにある最初のブロック''は以前 のままでディスク上に残っており、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

ご覧の通り、基本パーティションは修復できていますが、 拡張パーティションの修復にはまだやるべきことが残っています。

訳注:gpart-0.1b のgpart README も参照してください。 現在のところ、gpart は基本パーティションの修復には有効ですが、 論理パーティションの修復には、まだ改良されるべきことが残っています。

Windows 2000(これは恐ろしい体験だった!) をインストールしようとしたと きに作られた DOS パーティションは、``Windows NTFS''とラベルされています。 ``invalid''(よくない)のは、実際のところ拡張パーティションです。

この結果をもとに fdisk を使うことで、パーティションテーブルを再生する ことができます。(もとのパーティションテーブルがすでに失われてしまって いるのであれば、この作業によって失われるものはもうなにも無いのだという ことを覚えておいてください)。

訳注:gpart は Gpart is a small tool which tries to guess what partitions are on a PC type harddisk in case the primary partition table was damaged. 2000年7月現在の最新版は gpart-0.1f.tar.gz http://home.pages.de/~michab/gpart/ http://sunsite.unc.edu/pub/Linux/system/filesystems などで入手できます。

8.3 裕福な人の場合

パーティションマジックは商用の製品で、それほどお安くはないので使ってい る人は少ないですが(フランスでは約 100 ドルほど)、あちこちで高い評価を 得ています。しかし、私は使用していませんので、よくわかりません。パーティ ションの修復も含めて、パーティションに何かをすることができると言われて います。

Ralf 氏のオリジナルの partition-rescue mini HOWTO はパーティションマジッ クを使用するのを前提にしています。あなたが Linux パーティション上に貴 重なデータを置いているが、Linux には初心者であるならこれを使うのはよい 解決方法であると思います。しかし、パーティションマジックにはつい最近出 た新しいバージョンがあるので、マニュアルを読むことをお勧めしたいと思い ます。


次のページ 前のページ 目次へ