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

2. FIPS の説明書 (FIPS.DOC)

FIPS へようこそ

ハードディスクの内容を壊さずにパーティションを分割する初めての対話型ツール
Version 2.0
1998年5月11日
Copyright 1993-95 by Arno Schaefer
Parts of the code Copyright 1997/98 Gordon Chaffee

【訳注】以下の章番号は、原文では 0〜11 ですが SGML 化するツールの仕様により 2.1〜2.12 となっています。

2.1 FIPS の利用にあたって必要なこと

すべてのデータをハードディスクの最初に集めるために、デフラグメントのツー ルが必要です。FIPS は、パーティションの後ろに十分な空き領域がある場合に 限って、そのパーティションを分割します。Windows95 や最近のバージョンの MS-DOS には、DEFRAG というツールが入っていて、この目的に使えます。他の ツールとして、Norton Speedisk、PCTools' Compress、Novell DOS 7 の DISKOPT や、シェアウェアの ORG, DOG, SAFPAK があります。(シェアウェアは、 SimTel の diskutil ディレクトリ内にあります。SimTel のどのミラーサイトか らも anonymous FTP で入手可能です)。ただし、これらのツールはテストしてい ません。ここでの目的にうまく使えないかもしれませんのでご了承ください。

また、FIPS の利用前と利用後にハードディスクを検査するために、Norton Disk Doctor(あるいは DOS 6.* や Windows 95 の scandisk)のようなツールが便利で しょう。

FIPS は、DOS 5.0 で開発されました。3.0 以上で問題なく動くはずで、2.0 で もいいかもしれません。しかし、大きなサイズのパーティションは、DOS 4 以降 からサポートされていますので、古い DOS ではあまり役立たないでしょう。 DOS 6.0 と 6.2 と Novell DOS 7 で動くことは報告されています。Windows95 の パーティションでもうまく使えた、という報告もあります。長いファイル名は、 FIPS にとっては何の問題もないということを補足しておきます。というのは、 FIPS は、 ディレクトリ構造とは全く関連のない、より低いレベルで動作するか らです。そのような状況でセットアップするには、FIPS を使う前に DOS のフロ ッピーディスクから起動したほうが、おそらく賢明でしょう(2.7 項を参照)。

2.2 はじめに

このツールは、Linux プロジェクトがヒントになりました。DOS/Windows が利用さ れている PC に Linux をインストールするときには、DOS ソフトのために小さな パーティションを取っておきたいと思うことが多くあります。しかし、ほとんどの ハードディスクは、大きな単一のパーティションだけで構成されているため、たい ていは、まずはじめに完全なバックアップを取り、次にパーティションを消去し、 そして新しいパーティションを作成する必要があります。 それから、バックアップしたものを新しく作ったパーティションのどこかに復元し てやることになるでしょう。 今日のシステムでは、ハードディスクの容量が大抵500MB 以上あり、一度でもドラ イブが相当量のファイルで満たされると、テープドライブのような大容量メディア なくしては、完全なバックアップは現実的に不可能です。 実際には、大切なデータだけをバックアップしておくという方が多いようです (これは、どんな場合にもお勧めできる作業ではありますが)。しかしこの場合 ソフトウェアパッケージを全てインストールし直すには、長い時間あるいは数 日が必要となってしまいます。

FIPS は、この問題を解決するために作られました。FIPS を使えば、データをま ったく失うことなくパーティションを分割できます。ただし、古いパーティショ ンの後ろの部分に十分な空き領域が存在していることが必要になります。

2.3 FIPS とは? (訳注:必読)

FIPS は、パーティションテーブルとブートセクタの中のある値を変更すること により、パーティションのサイズを小さくしています。FIPS は、パーティション のフォーマットを変えるわけではありません。ましてや、クラスタサイズやファ イルアロケーションテーブル(FAT)のサイズを変えるわけではありません。 したがって、サイズが小さくなったパーティションは、一部が使われない FAT を 持つことになりますが、これは DOS では問題ありません。

FIPS は、以上の操作により得られた空き領域から、新しい *基本DOSパーティション*を作成します。

もし新しいパーティションを他の OS (たとえば Linux) 用に使いたい場合は、その OS についている FDISK 相当のソフトを使って必要な設定を行ってください(その OS のマニュアルを参照)。

もし新しいパーティションを DOS/Windows 用に使いたい場合は、(フォーマット後 に!)そのまま使えます。しかし、以下の点に注意してください。

正式には、DOS は 1 つの基本パーティションしか持てないことになっています。 ところが、(少なくても 5.0 以降の)すべてのバージョンの DOS では、幸いにも 複数の基本パーティションを持つことができます。しかし、これは非公開の機能 です。もし正式な利用法に従いたいのであれば、(もう 1 つの)新しいパーティシ ョンをFDISK によって削除し、そこに拡張パーティションを作ることになります。

複数の基本パーティションを持つと、FDISK を使ってアクティブパーティション (活動区画)を切り替えて、異なるパーティションから起動できるという利点があ ります。

しかし、複数の基本パーティションを作ると、以下の問題が生じることが知られて います。

- もし、誤って FDISK などで 1 つの基本パーティションを削除してしまうと、基 本パーティションを簡単には作り直せなくなってしまいます。(FDISK に拒否され るからです)。これを解決するために他の FDISK相当のソフトがあるかもしれませ ん。しかし、それでも駄目な場合は、Linux の起動ディスクから Linux の fdisk を動かすという方法があります。しかし、かなり面倒です。

- パーティションテーブルを調べて動作するソフトウェアがあり、複数の基本パー ティションがあると問題を起こすかもしれません。その 1 つとして Peter Gutmann さんによる SFS(Secure file system) がありました。たぶん彼は、こう いった普通ではない構成に対応するようにプログラムを修正したのではないかと 思います。しかし、ほかにも問題を起こすソフトウェアがあるかもしれません。

2.4 安全性

FIPS は、特に安全性に関して最大限に配慮して設計されています。まず最初に、 パーティションテーブル、ブートセクタ、FAT を見て、不整合がないかを調べます。 もし、何かおかしな点があれば、その旨を教えてくれます。もしエラーがあれば、 FIPS はそれ以上進みません。

実際の作業前に、ルートセクタとブートセクタのバックアップをフロッピーディ スクに保存できます。もし、何か問題が発生したら、そのバックアップを restorrb.exe を使ってハードディスクに復帰できます(2.6 項を読んでください)。 この機能を使うことを強く推奨します。restorrb.exe を使えば,後でパーティショ ンを元の状態に戻すことも可能となるので、ルートセクタとブートセクタを安全な 場所に保管しておくことをお勧めします。

FIPS はパーティションに空きがあるかどうかを調べて、次に新しいパーティショ ンの先頭シリンダを尋ねます。

新しいパーティションテーブルとブートセクタを計算した後に、FIPS は、もう 一度全てチェックします。別の問題がここで見つかるかもしれないからです。完全 に問題がないときのみ、新しいルートセクタとブートセクタをディスクに書き込ん でよいかの最終確認をユーザに求めます。

2.5 制限

2.6 はじめる前に (訳注:必読)

分割したいパーティションに対して、CHKDSK あるいは SCANDISK を実行してくだ さい。もし Norton Disk Doctor かそれに類するものがあれば、それを使うことも できます。ハードディスクに損傷したクラスタが「ない」ことを確認してください。

DOS を起動可能なフロッピーディスクをドライブ A に入れてください。起動可能 ディスクは、DOS においては、
"sys a:"
あるいは、
"format a:/s"
によって作成できます。Windows NT や OS/2 では、他のコマンドになるでしょう。 わからないときは、マニュアルを確認するか、DOS PC から DOS の起動可能ディス クを持ってきて起動してください。

RESTORRB.EXE と FIPS.EXE と ERRORS.TXT をこのディスクにコピーしてください。

そのフロッピーディスクから DOS が起動するか確認してください。そして、起 動後にハードディスクをアクセスできるか確認してください("dir c:" と入力し、 ハードディスクのルートディレクトリが見られるかで確認可能)。もし、 うまく いかない場合は、マニュアルを調べたり詳しい人に聞いたりしてみてください。 どうしても駄目な場合は、 通常どおりハードディスクから起動して、FIPS を使 ってください。多少危険ですが、最後の手段です。

FIPS を開始したとき(おっと、今すぐに開始しないで!)、ドライブ A のフロッ ピーディスクに、ルートセクタとブートセクタのバックアップを取ることができ ます。このバックアップは、ROOTBOOT.00x (x は 0 から 9 の数字) のファイル 名になります。 もし、FIPS を利用中にトラブルが発生したら、このディスクか ら DOS を起動し、RESTORRB を動かすことにより、ハードディスクを元の構成に 戻すことができます。ただし、2 回以上 FIPS を動かしたときには(普通は必要 ありませんが、たまに起こる)、2 つ以上の ROOTBOOT ファイルがフロッピーデ ィスクに作成されます。RESTORRB は、どの ROOTBOOT ファイルを復帰に使うか を指定できます。ROOTBOOT.000 が最初のファイルです。ROOTBOOT ファイルのバ ージョンを混同しないようにしてください。

この ROOTBOOT.00x のバックアップファイルは、後でパーティションの分割を元 に戻すときに必要になります。

FIPS を動かす前に、*必ず*ハードディスクをデフラグメントしてくだ さい。新しいパーティションが利用する領域はすべて空である必要があります。 ただし、ほとんどのデフラグメントツールは、Windows のスワップファイルを動か すことができないことに注意してください。 この場合、Windowsの「コントロール パネル」の中の「エンハンスドモード」の設定を使いスワップファイルを解除し、 FIPS の利用後に再度設定する必要があります。
【訳注】これは Windows 3.1 の場合です。「エンハンスドモードの設定」の中に 「スワップファイルの設定」というのがあります。Windows95 では「コントロール パネル」-->「システム」-->「パフォーマンス」タブ-->「仮想メモリ」です。

もし、IMAGE や MIRROR を使っている場合には、ハードディスクの最終セクタに隠し システムファイルがあり、ミラーファイルへのポインタを持っています。FIPS を使 う前に、*必ず*このファイルを削除する必要があります(次にミラーを動 かすときにこのファイルは再生成されます)。ルートディレクトリで
"attrib -r -s -h image.idx"
あるいは、
"attrib -r -s -h mirorsav.fil"
とやってから、このファイルを削除してください。

もし、新パーティションのためのディスク領域を思ったほど確保できない場合は、 以下のことが考えられます。

a. 現在のパーティションにまだデータがたくさん残っているのかもしれません。 新しく作る区画のサイズを小さくするか、現在の区画にあるデータの一部を消去 することを検討してください。

b. 新パーティションの領域に、デフラグメントツールでは移動できない隠しファ イルがあるかもしれません。'dir /a:h /s' (システムファイルの場合は 'dir /a:s /s' )として、隠しファイルを見つけることができます。

どのソフトウェアがその隠しファイルを作っているかを確かめてください。 NDOS のようなプログラムのスワップファイルなら、消去しても安全です(あと から必要になった場合には自動的に再作成されます)。各ソフトウェアのマニュ アルを読んでください。

コピープロテクションが隠しファイルを使っている場合は、その隠しファイル を使用しているプログラムをアンインストールする必要があります。そして、 FIPS の使用後、再度インストールします。

これでも解決しない場合は、今のところ何とも言えません。 本当にどう対処 してよいかわからなければ、直接連絡をください。

★注意★

DOS の隠しファイル(ibmbio.com や ibmdos.com やそれに類するファイル)を *移動しない*でください。ハードディスクから何も起動しなくなっ てしまいます。これらのファイルは、最初からパーティションの先頭セクタに あるはずなので、動かす必要はないはずです。DOS 5.0 やそれ以降のバージョン では、少なくともシステムファイルの 1 つは*動かしても*よいので すが、いずれにせよシステムファイルはそのままにしておくのが良策です。

FIPS でパーティションを分割したら、再起動しなければなりません。そのため、 config.sys や autoexed.bat 中にある、ディスクに書き込みを行なうあらゆる プログラム、特に MIRROR コマンドや IMAGE コマンドが再起動のときに実行され ないようになっていることを、確認してください。一時的にこれらのファイルの 名前を変えると簡単です。

パーティションテーブル内の DOS パーティションの位置が変更される可能性が あります。新しいパーティションを DOS で使い、しかも拡張パーティションを 持っているか、ハードディスクが 2 台あった場合は、パーティションの名前が 変わるかもしれません(たとえば、D ドライブが E ドライブに変わるなど)。 FIPS は、起動に問題が発生しないように、C ドライブは、できるだけ C ドライ ブのままになるようにしています。

また、CD-ROM ドライブがあると、殆んどの場合、CD-ROM のドライブレターが変 更されます。 従って、autoexec.bat で MSCDEX コマンドに /L オプションをつ けてCD-ROM のドライブレターを明示的に指定している場合は、 それを変更する 必要があるかもしれません。 MSCDEX コマンドに /L オプションをつけていない 場合は、MSCDEX コマンドは自動的に空いているドライブレターの最初のものを 使います。そのため、何も変更する必要はありません。

ドライブレターについて:DOS はドライブレターを次の順序で指定します。

1.各々のドライブの最初の基本DOSパーティション
2.全てのドライブ中の拡張パーティションにある論理パーティション
3.全てのドライブ中の残りの基本DOSパーティション
例:
C: 1台目のハードディスクにある最初の基本DOSパーティション
D: 2台目のハードディスクにある最初の基本DOSパーティション
E: 1台目のハードディスクにある拡張パーティション中の最初の論理パーティ ション
F: 1台目のハードディスクにある拡張パーティション中の 2 番目の論理パー ティション
G: 2台目のハードディスクにある拡張パーティション中の最初の論理パーティ ション
H: 2台目のハードディスクにある2番目の基本DOSパーティション
I: CD-ROMドライブ

この指定方法を簡単に変更する方法はわかりません。特に、あるパーティション に対して、任意のドライブレターを割り当てることはできません。しかしながら、 ある基本 DOS パーティションを拡張パーティションに変更して、ドライブレター の順番を変更することはできます。

○ Linux ユーザへ

以上のことは、Linux 環境下において DOS パーティションのデバイス番号が変更 される場合があることも意味します(たとえば、/dev/hda3 が /dev/hda1 になる)。 既存の Linux のパーティションは変わらないので、起動に問題が生じることはあ りません。起動時に DOS パーティションをマウントしている場合は、/etc/fstab を変更する必要があります。

2.7 マルチタスク OS での利用

OS/2, Desqview, Windows, Novell タスクマネージャ, Linux のDOS エミュレー タなどのマルチタスク環境の下で FIPS を使わないでください。

これらのシステムでは、 FIPS がハードディスクの構造を変更したあとに、実際 にディスクに書き込む可能性があります。この結果ハードディスクを破壊してし まうかもしれません。必ずこうなるわけではなく、ほとんどの場合は問題なく動 くのではないかと思います。しかし、安全性は FIPS の最優先の項目です。 起動ディスクから DOS を起動して、そこで FIPS を動かすのが安全です。

FIPS Version 1.0 からは、Windows と Desqview の環境を自動検出する機能を 追加しました。これに関して Dave McCaldon さんの協力に感謝します。

OS/2 と Novell タスクマネージャの検出は、まだできていません。Linux DOS エミュレータを検出するコードは削除する必要がありました。多くのマシンでハ ングアップしてしまうからです。

2.8 FIPS を使う (訳注:必読)

2.6 項で説明した手順で起動可能なフロッピーディスクが用意できたら、まず、 そのフロッピーディスクから起動します。

★重要★

Smartdrive のようなディスクキャッシュプログラムが動作していないことを確認 してください。FIPS の行なった変更内容がディスクの一部にのみ書き込まれ、こ のために、その後ディスクが壊れてしまった、という報告があります。これは、 Smartdrive を使っていたために起きたものと考えられます。Smartdrive のデフォ ルトの設定は、ディスクへの書き込みを数秒送らせる、というものです。あまりに も早く再起動してしまうと、変更内容のいくつかが失われてしまうかもしれません。

DOS プロンプトで

FIPS [Enter]
と入力して FIPS を起動します。

FIPS の中では、<CTRL-C> によっていつでも FIPS を終了できます。

  1. FIPS は、まず最初にどの OS で走らせているのかを判断します。もし、Windows あるいは Desqview 上で動かしている場合は、警告メッセージを出し、フロッピ ーディスクから起動するように促します。強制的に操作を続行することもできます が、この場合は、あなた自身の責任の下で FIPS を動かすということに留意してく ださい(2.9 項参照)。

    その後 FIPS は、ハードディスクを調べます。もし 2 台以上のハードディスク が接続されている場合は、どのハードディスクを対象にするかを尋ねてきます。

    FIPS の以前のバージョンでは、 ハードディスクの台数を正しく認識できません でした(特に、Gateway社の Pentium マシンで)。現在は正しく認識できるはずで すが、もしうまくいかない場合は、知らせてください。-n オプションを使えば、 明示的にドライブを指定できます(後述)。

  2. 次に FIPS は、ハードディスクのルートセクタを読み、パーティションテーブル を表示します。

    例:

         |        |     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
    

    もし、この表示の意味がわからなくてもかまいません。MB の欄のディスク容量 を見て、分割したいパーティションの番号(Part.)がわかるだけでよいです。 そして FIPS は、ルートセクタにエラーがないか調べます。

  3. もしディスク上の 2 つ以上のパーティションがあった場合は、どのパーティ ションを分割するのかを聞いてきます。Part の欄にある数字を入力します。 選択したパーティションのブートセクタが読まれ、いくつかの情報が表示され ます。
    例:
    Bytes per sector: 512
    Sectors per cluster: 8
    Reserved sectors: 1
    Number of FATs: 2
    Number of rootdirectory entries: 512
    Number of sectors (short): 0
    Media descriptor byte: f8h
    Sectors per FAT: 145
    Sectors per track: 63
    Drive heads: 16
    Hidden sectors: 63
    Number of sectors (long): 141057
    Physical drive number: 80h
    Signature: 29h

    FIPS は、この情報がパーティションテーブルの内容と矛盾していないかを調べ ます。

    FAT の 2 つの複製が完全に一致しているかを調べます。もし一致していない場合 は、FIPS はエラーメッセージを出して終了します。

    すべてのチェックが OK になると、FIPS は、パーティションの後ろの空き領域を 探します。新パーティションは、少なくても 1 つのシリンダが必要です。もし 最後のシリンダが空いていないと、パーティションを分割することはできません。 この場合、FIPS は、エラーメッセージを出して終了します。この場合、ミラー ファイルかイメージファイルを削除し忘れている可能性があります(2.6 項参照)。

  4. 【訳注】以下の部分は、原文にはありません ========ここから============
    ルートセクタとブートセクタのバックアップを取るかを聞いてきます
    Do you want to make a backup copy of your root- and bootsector before proceeding (y/n)?
    y を入力します。

    ブート可能なフロッピーディスクが A: ドライブにセットされているかの確認です
    Do you have a bootable floppy disk in drive A: as described in the documentation (y/n)?
    y を入力します。
    =========== ここまで ================================================

  5. ここで、 新パーティションの先頭のシリンダ番号を入力します。 左右のカーソルキーを使って、シリンダ番号を増減できます。
       【訳注】以下のように表示されます。 <newline>
        Old partition   Cylinder    New Partition <newline>
          ○○.○ MB      □□        △△.△ MB
    
    残りのパーティションと新パーティションのサイズがその場で表示されま すので、簡単に正しいシリンダを選べます。上下カーソルで 10 単位でシ リンダを調整できます。設定が終わったら、Enter キーを押します。 FIPS は、ここでもう一度新パーティションが本当に空かどうかをチェックします。 ただし、このチェックは、ダメ押しの安全チェックであり、空き領域はこれよりも 前の段階で決定しているので、この段階でエラーを表示することはありません。

  6. この操作のあと、ルートセクタに対する変更を計算・チェックし、 新しいパ ーティションテーブルの内容を表示します。 パーティションテーブルの内容 を元に戻って変更するか(r)、続行するか(c)を指定します。
    Do you want to continue or reedit the partition table (c/r)?

  7. c を入力すると FIPS は、ブートセクタの変更の再計算と再チェックを行い、 設定内容をディスクに書き込んでよいかの最終確認を行います。
    【訳注】以下のように表示されます。
    Ready to write new partition scheme to disk
    Do you want to proceed (y/n)?

    y を入力すると FIPS は終了します。

2.9 パーティションを分割したあとに (訳注:必読)

変更がディスクに書き込まれたことを確認します。 (私が使わないようにと率直 にすすめたのにもかかわらず:-)Smartdrive のようなディスクキャッシュを使っ ているのならば、数秒待って、キャッシュの内容がディスクにフラッシュされる ようにします。

新しいパーティションは、 次に DOS を再起動した後に認識されます。 *再起動する前には何もディスクに書き込んではいけません*。 再起動した後に、CHKDSK コマンドや Norton Disk Doctor を使って古いパーティ ション(小さくなったパーティション)に問題がないかどうか確認してください。

FIPS の行なった変更が正しく書き込まれていないケースがあります。このケー スにあてはまるのかどうかを確認するために、再起動してから、もう一度 -t オ プションをつけて FIPS を起動します。そして、分割したパーティションを選択 してください。開始シリンダーを尋ねる前に FIPS がエラーを表示しなければ、 問題はないので、<CTRL-C> で中止してください。問題があったときは、 RESTORRB コマンドで変更をもとにもどして、私宛てに E-mail で連絡してくだ さい(訳注:もちろん英語で)。

エラーが一つもみつからなければ、元の config.sys と autoexec.bat を使って システムを再起動してください。何かソフトウェアを動かして、データが問題な く読めることを確かめてください。

新パーティションを DOS 用に使いたい場合は、フォーマットする必要があります。 複数のパーティションがハードディスク内にある場合は、間違いなく正しいパーテ ィションをフォーマットしてください。ドライブ名が変更されているかもしれませ んので、十分注意してください。

新しいパーティションを Linux 用に使いたい場合は、Linux の fdisk を使って システムインジケータのバイトを変更してから、mkfs を使います。

新しいパーティションをさらに小さなパーティションに分割したい場合は、 まず最初にそのパーティションを DOS でフォーマットする必要があります。 そうでないと FIPS が警告を出します。

2.10 オプションスイッチ

コマンドラインで与える FIPS に対するオプションを説明します。もし DOS ス タイルの方がよければ、 '-' の代わりに '/' を使っても指定できます。2 つ以 上のオプションを組み合わせることもできます。オプションの一覧は、 FIPS - help と入力すると表示されます。以下に詳しく説明します。

2.11 トラブルシューティング

FIPS は、これまで大きな問題もなく多くの人に使われています。しかし、FIPS は、依然として実験的なソフトウェアの一面を持っています。FIPS は、もしシ ステムの状態に何か疑いがある場合は、安全になるように配慮しています。そし て、そのことをエラーメッセージで表示します。また、いくつかのマイナーなエ ラーは無視しています。

まずは、この文書をしっかりと読んでください。また、頻繁に受ける質問をまと めた FIPS.FAQ も見てください。

それでもなお、 発生した問題を解決できなかったり、FIPS が扱えないような構 成を持っていたり、FIPS のバグの疑いがあるときには、-d スイッチを使って操 作の履歴を取り、FIPSINFO.DBG のファイルとそれに対する注釈を mailto:schaefer@rbg.informatik.th-darmstadt.de に送ってください(訳注:もちろん英語で)。 もしかしたら、その問題は、すでに解決されているかもしれません。

2.12 クレジット

Arno Schaefer < mailto:schaefer@nacamar.de>


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