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

3. FIPS で頻繁に受ける質問 (FIPS.FAQ)

■ FIPS で頻繁に受ける質問(FAQ)

ここには、私が頻繁に受ける質問のいくつかをまとめました。これでよくあるト ラブルを解決できると思います。私に電子メールを送る前に、このファイルをよ く読んでください。FIPS に関するすべてのことを知りたい場合は、README.1ST を読んでください。

ここには、以下の質問に対する答えがあります。

Q01. FIPS を使ってパーティションを分割できるのであれば、複数のパーティ ションを一つのパーティションに併せることはできますか?

Q02. FIPS がハードディスクに行った変更を元に戻せますか?

Q03. もしルートセクタとブートセクタを保管していなかった場合は、パーティ ションの分割を元に戻すことはできないのですか?

Q04. クラスタサイズはパーティションのサイズで決まり、 クラスタサイズが 小さいほうが、ハードディスクの利用効率が上がるそうです。FIPS を使 ってクラスタサイズを小さくすることはできますか?

Q05. 大きなパーティションを 3 つか 4 つのパーティションに分割したいと 思っています。FIPS を何度も使って分割することは可能ですか?

Q06. FIPS により、DOS 基本パーティションを 2 つ存在させることになりま すが、これは許されているのですか?

Q07. Info: Partition table inconsistency (訳注:パーティションテーブルが 矛盾している) というメッセージはどういう意味ですか?

Q08. FIPS からエラーメッセージが出て、その先に進まなくなってしまいまし た。どうすればいいですか?

Q09. FIPS が私の SCSI ハードディスクを認識しません。

Q10. FIPS が パーティションのタイプが 56h のパーティションだけを認識し、 DOS パーティションを認識しません。

Q11. FIPS は問題なく動作して、DOS から新しいパーティションが見えるのに、 Linux の fdisk コマンドでは新しいパーティションが見えません。

Q12. FIPS は Windows95 でも動きますか?

------------------------------------------------------------------

●Q01. FIPS を使ってパーティションを分割できるのであれば、複数のパーティ ションを一つのパーティションに併せることはできますか?

○A01.a

一般にはできません。技術的な詳細には立ち入りませんが、DOS でフォーマット されたパーティションには、 ファイルアロケーションテーブル(FAT)があり、そこ にはそのパーティションのすべてクラスタのエントリが格納されています。たいて いは、1 つの FAT は 2 つのパーティションの情報を持つほどには大きくなく、簡 単には 2 つのパーティションを併せることはできません。

可能性がないわけではありませんが、私はこのことを FIPS でできるようにする つもりはありません。

今までのところ、私はパーティションを拡張するというソフトウェアを 2 つ知っ ています。1 つは "Partition Resizer" という無料のプログラムです (presz???.zip というファイル名で、よく行く BBS や FTP サーバで捜してくだ さい)。もう 1 つは、Powerquest 社の PartitionMagic という商業製品です。 わたしはこれらをまだ使っていません。

○A01.b

もしそれらのパーティションが FIPS を使って分割されたものであれば、可能です。

元は十分に大容量でフォーマットされているため、FAT に関する問題は生じませ ん。操作としては、元のルートセクタとブートセクタを復帰するだけです(分割さ れている間、パーティションの内容がどう変更されたかは問題にはなりません)。 この操作は、FIPS についてくる RESTORRB を使って行います。

ただし、以下の条件を満たしている必要があります。

- 元のルートセクタとブートセクタのイメージが保管されていることが必要です。 そのイメージはフロッピーディスクに入っている必要があります。

- パーティションを分割してから併せるまでの間に、2 つの内の最初のパーティシ ョンがフォーマットされていない必要があります。(もしフォーマットされてし まうと、新しい FAT は小さくなってしまうからです)

- 2 番目のパーティション(FIPS によって作成されたパーティション)の内容は、 当然失われます。最初のパーティションの内容はそのままになります。

------------------------------------------------------------------

●Q02. FIPS がハードディスクに行った変更を元に戻せますか?

○A02.

戻せます。A01.b の回答をみてください。元のルートセクタとブートセクタが保 管されていることが条件になります。
------------------------------------------------------------------

●Q03. もしルートセクタとブートセクタを保管していなかった場合は、 パーティ ションの分割を元に戻すことはできないのですか?

○A03.

元に戻すことは難しいです。唯一の選択は、ファイル TECHINFO.TXT を読んでハ ードディスクの構造について勉強し、元のパーティションの情報とフォーマット 情報を手計算して、ディスクエディタを使ってそれを書き込むことです。

操作の概要は以下のようになります。ここでは、元のパーティションから切り離 されたパーティションを 2 番目のパーティションと呼びます。元のパーティショ ンの残りの部分を 1 番目のパーティションと呼びます。

  1. 2 番目のパーティションには重要なデータがないことを確かめてください。 このパーティションのデータは削除されてしまいます。誤操作に備えて、 すべてのルートセクタとブートセクタのバックアップをフロッピーディス クに(!)作ってください。そして、DOS の起動ディスクを作り、その中に ディスクエディタを入れてください。

  2. ディスクエディタの中で、"物理ドライブの編集"と"パーティションテーブ ルの編集"の機能を選んでください。ディスクエディタには、この機能があ ることを前提とします。

  3. どの 2 つのパーティションを併せたいのかを確認するために、パーティシ ョンテーブルを調べます。

  4. 2 番目のパーティションの最終のヘッド値、シリンダ値、セクタ値を調べ、 その値を最初のパーティションの該当するフィールドに書き込んでください。

  5. 最初のパーティションのセクタ数と 2 番目のパーティションのセクタ数を 足して、その値を最初のパーティションのセクタ数のフィールドに書き込 んでください。

  6. 2 番目のパーティションのエントリを 0 で埋めて完全に削除してください。

  7. 最初のパーティションのブートセクタを探し、 その中のセクタ数のフィー ルドに新しいセクタ数を書き込んでください。

自分が何の作業をしているのかを理解していることを確認してください。 もし、ハードディスクの状態が混乱してしまったとしても、私は責任を持てません。 ファイル TECHINFO.TXT をよく読んでください。

------------------------------------------------------------------

●Q04. クラスタサイズはパーティションのサイズで決まり、 クラスタサイズが 小さいほうが、ハードディスクの利用効率が上がると聞きました。 FIPS を使ってクラスタサイズを小さくすることはできますか?

○A04.

元のパーティションから切り離されたパーティションのクラスタサイズは、フォー マットされる時にそのパーティションのサイズにあわせて自動的に決まります。 残った方のパーティションは、再フォーマット(つまり全データを削除)しない限り、 クラスタサイズを変更することはできません。

もし、新しいパーティションが十分に大きければ、残ったパーティションから新し いパーティションにデータをすべてコピーし、残ったパーティションを再フォーマ ットすればいいでしょう。しかし、以下の 2 点に気をつけてください。

  1. 再フォーマット後は、パーティションを元に戻すことはできません (A1.a 参照)。

  2. 新しい FORMAT コマンドは、すでにパーティションがフォーマット済みか どうかを調べ、もしそうであればフォーマット情報を保存します。(間違っ てフォーマットしまった場合に備え、ディスクを簡単に元に戻せるように するためです) FORMAT コマンドにそのパーティションが新しいと思わせる 必要があります。多分、/U スイッチが使えると思います(私はこれをチェ ックする機会がありません。もしうまく行ったら知らせてください)。 もし、これでもうまく行かない場合、ディスクエディタを使い、無効化す るためにそのパーティションのブートセクタを 0 で埋めればいいはずです。
注: ブートセクタを 0 で埋めただけでは十分でないという報告をもらってい ます。古いフォーマットに関する情報が、BIOS テーブルに残っているの ではないかと想像しています。ブートセクタに書き込んだ後、 そのテー ブルをすべてクリアするためにシステム再起動してみてください。DOS のツールは、ときどきインテリジェントすぎることがあるのです :-(。

ここでなにか問題がおきたら、知らせてください。

パーティションのクラスタサイズは、おおむね以下のようになっています。

         パーティションの容量       クラスタサイズ
        --------------------------------
          0 -  32MB       512  Bytes
         32 -  64MB      1024  Bytes
         64 - 128MB      2048  Bytes
        128 - 256MB      4096  Bytes
        256 - 512MB      8192  Bytes
        512 -1024MB     16384  Bytes
------------------------------------------------------------------

●Q05. 大きなパーティションを 3 つか 4 つのパーティションに分割したいと 思っています。FIPS を繰り返して何度も使い、分割可能ですか?

○A05.

可能です。ただし、FIPS の利用ごとに新しく作成されたパーティションをフォー マットする必要があります。クラスタのサイズに関しては、以下を参考にしてくだ さい。

- 1GB のハードディスクを 4 つに分割すると仮定します。各 256 MB とします。

- 元のパーティションは、クラスタサイズが 16KB でフォーマットされていると します。

- 元のパーティションを 256MB / 768 MB に分割します。最初のパーティショ ンのクラスタサイズは 16KB のままです。4KB で十分ですが、再フォーマット しない限り、 これを変更することはできません(A04 参照)。

- 新しい 768MB のパーティションをフォーマットします。クラスタサイズは 16KB のままです。

- 2 番目のパーティションが分割され、256MB / 256MB / 512MB になります。

- 3 番目のパーティションは、クラスタサイズが 8KB でフォーマットされます。

- 3 番目のパーティションが分割され、256MB / 256MB / 256MB / 256MB になります。

- 4 番目のパーティションは、クラスタサイズが 4KB でフォーマットされます。

- ここまでで、クラスタサイズは 16KB - 16KB - 8KB - 4KB となります。

- 2 番目と 3 番目のパーティションはまだ空なので、 再フォーマットしてクラス タサイズを 4KB にすることができます。再フォーマットに関する詳細はA04 を 見てください。

(訳注:原文では上述の MB の部分が KB になっているが、誤りだと思われる)

------------------------------------------------------------------

●Q06. FIPS により、DOS 基本パーティションを 2 つ存在させることになります が、これは許されているのですか?

○A06.

この点に関する議論は、 FIPS.DOC の中の"What FIPS does" (訳注:日本語訳では "FIPS とは?") の章を見てください。
------------------------------------------------------------------

●Q07. "Info: Partition table inconsistency" (訳注:パーティションテーブル が矛盾している) というメッセージはどういう意味ですか。

○A07.

マスターブートレコード(ルートセクタ)にあるパーティションテーブルは、4 つ のエントリからなっており、それぞれ数個のフィールドがあります。

このパーティションテーブルでは、おかしなことに、いくつかのフィールドが冗 長な値になっています。

     |        |     Start      |      |      End       | Start  |Number of|
Part.|bootable|Head Cyl. Sector|System|Head Cyl. Sector| Sector |Sectors  |  MB
----- -------- ---------------- ------ ---------------- -------- --------- ----
1    |    yes |   0  148      1|   83h|  15  295     63|  149184|   149184|  72
2    |     no |   1    0      1|   06h|  15  139     63|      63|   141057|  68
3    |     no |   0  140      1|   06h|  15  147     63|  141120|     8064|   3
4    |     no |   0    0      0|   00h|   0    0      0|       0|        0|   0

開始点の値(ヘッド/シリンダ/セクタ)と終了点の値は、(ヘッド数と1トラックあ たりのセクタ数を BIOS に問い合わせたあとで)開始セクタとセクタ数から計算 されます。実際に、DOS はそうしています。これらのフィールドは DOS (と、私 の知る限りのあらゆる他のOS)では全く使われていません。そのために、 それら のフィールドの値は全てゼロになっていても当然です。しかしながら、そのこと は、フィールドを一貫した状態に保つことを妨げるものではありません。

fdisk コマンドがパーティションテーブルエントリを作成するときは、これらの フィールドに正しい値を入力するはずです。では、どうやって矛盾がおきるので しょうか。少なくとも 2 つの可能性があります。

  1. fdisk プログラムの中には、不正な値を書き込むものがあります。特にシリ ンダ数を 1 ないし 2 ずらします。

  2. アドレス変換を行なう拡張 IDE (EIDE)ドライブを使っているときに起こり ます。最近のハードディスクは 1024 個を超すシリンダを持っていますが、DOS は、 1024 個を超すシリンダは扱えません。そこで、ハードディスクコントロー ラの製造にあたっては、ある仕掛けを組み込みます。ドライブの構成(Geometry) の問い合わせがあったときは、シリンダの総数を減らし、その分ヘッドの総数を 増やします。したがって、たとえば DOS は、63 セクタ、32 ヘッド、1000 シリ ンダあると思っていても、実際のハードディスクには、63 セクタ、16 ヘッド、 2000 シリンダあるといったことがあります。
ここで、もし DOS が 500 番シリンダの最初のセクタを要求したとしても、実際 は、1000 番シリンダの最初のセクタを読んでいるのです。この仕掛けは、「ア ドレス変換」と呼ばれています。

最近の拡張 IDE ドライブでは、BIOS の中でアドレス変換の有効/無効を切り替 えることができます。場合によっては、ディスクがフォーマットされた後に、切 り替えが起こることがあります。つまり、DOS がディスクコントローラに要求を 出した時のディスク構成(Geometry)とディスクがフォーマットされた後の、パー ティションテーブルに反映されているディスク構成が異なってしまう、というこ とです。DOS ではこのことは問題になりませんが、FIPS では version 1.4 より 前のバージョンでは問題がありました。

現在のリリースでは、FIPS はこの種の問題を検出して、 パーティションテーブ ルを、変更されたディスク構成に対応させます。

本当のことをいうと、このメッセージについては心配する必要はありません。全 くもって異常はないのです。

------------------------------------------------------------------

●Q08. FIPS からエラーメッセージが出て、その先に進まなくなってしまいまし た。どうすればいいですか?

○A08.

ファイル FIPS.DOC で述べましたが、これだけでは何ともいえません。もし私に 電子メールを送る場合は、-d スイッチで作成されるデバッグスクリプトのファ イル (FIPSINFO.DBG) を一緒に送ってください。もしこのファイルが送られてい ないと、それを送ってくれるようお願いすることになり、解決までに時間がかか ってしまいます。
------------------------------------------------------------------

●Q09. FIPS が私の SCSI ハードディスクを認識しません。

○A09.

古い SCSI アダプタの中には( Adaptec 1524 には、ここで述べている'特徴' が あると報告されています)、config.sys でデバイスドライバをロードする必要が あり、そうしてはじめてディスクがアクセスできるようになるものがあります (つまり、システムは2台目のハードディスクやフロッピーディスクから起動する 必要があります)。このデバイスドライバは、ハードディスクに対して、'BIOS レベル' のインタフェースは提供しませんが、'DOS レベル'のインタフェースは 提供します(技術者の方へ: BIOS 割り込み 13h のかわりに DOS 割り込み 21h をフックします)。 これにより、パーティションテーブルは、その SCSI アダプ タの内部構造を知っている、特別な fdisk プログラムによってのみアクセス できます。FIPS はこれらのドライブでは動作しないでしょう(実際のところ、 DOS の fdisk も動かないでしょう)。おそらく、その SCSI アダプタに対しては、 新しいドライバが存在して、BIOS レベルのインタフェースを提供するでしょう。 製造元にお問い合わせください。
------------------------------------------------------------------

●Q10. FIPS が パーティションのタイプが 56h のパーティションだけを認識し、 DOS パーティションを認識しません。

○A10.

OnTrack Disk Manager がインストールされています。SPECIAL.DOC 中の対応す る章を読んでください。
------------------------------------------------------------------

●Q11. FIPS は問題なく動作して、DOS から新しいパーティションが見えるのに、 Linux の fdisk コマンドでは新しいパーティションが見えません。

○A11.

どういうわけか DOS が、マスターブートレコードにあるパーティションテーブル とは異なるパーティションテーブルをロードしています。

2つの原因が考えられます。

  1. OnTrack Disk Manager のようなデバイスドライバがロードされてい ます。SPECIAL.DOC 中の対応する章を参照してください。

  2. マスターブートレコードにウィルスがいます。これはしばしば起きるもの ではありませんが、まさにその可能性があります。ウィルスの中には、自分自 身をマスターブートレコードに書き込み、オリジナルのマスターブートレコ ードを別の場所にコピーするものがあります。DOS がパーティションテーブ ルをアクセスしようとすると、ウィルスは BIOS コールに割り込んで、バッ クアップしてあったコピーを返し、考えられる限りのウィルス検査から逃れ ます。ウィルスに感染していない DOS 起動ディスクから起動し、ウィルス検 査ソフトウェアでこのことを確認してください。ウィルスは、DOS の fdisk コマンドに /mbr オプションをつけることで、マスターブートレコードから 除去できます。しかし、この場合、バックアップしてあったパーティション テーブルはリストアされません。そのために、ブートセクタには FIPS によ って変更された新しい情報がありますが、パーティションテーブルはもとも との(1パーティションの)状態のままです。この不一致は修正する必要があり ます(たとえば、ディスクエディタを使う)。
------------------------------------------------------------------

●Q12. FIPS は Windows95 でも動きますか。

○A12.

動きます。Windows95 のファイルシステムは、DOS のファイルシステムと同じも のです。唯一の違いは、長いファイル名をつかえることですが、FIPS はディレ クトリのレベルよりも低いレベルで動作しますので、問題ありません。Windows 95 のパーティションで FIPS は全く問題なく動いた、と報告してきた人もいます。

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