MBR形式のディスクパーティション管理情報を操作するプログラム

[ FDSK ] 使用説明書

Version 1.00 Copyright (C) 2008-2011 まりも(DOSsoft)

1.【このプログラムの意義】

 PC-DOSやWindows98SEまでのDOS7.xにはFDISKというコマンド (DOSプログラム)があり、パーティションの作成や削除ができました。 しかしFDISKは、HDDの容量が64GBを超えるようになると、もはや使い物に ならなくなります。そのほか、FDISKではMS-DOSパーティション(つまりは FATパーティション)以外の削除ができなかったり、パーティションの アクティブ設定が特定のHDDに対してしかできないという不都合もあります。 そこでこれらの機能を代替し、さらにいくつかの機能を追加したプログラムを 作成しました。いずれもWindowsXP時代でもあると便利な機能で、 以下のようなものがあります。

  1. 基本パーティション(FAT32)の作成(WD AFTドライブ向けに4KB境界配置も可能)
  2. 基本パーティションのアクティブ属性の設定、切り替え( fdisk /actokに相当)
  3. パーティションの削除
  4. 基本パーティションのFSIDを変更
  5. Master Boot Record中のIPLだけの再作成(fdisk /mbrに相当)
  6. Windowsディスク署名の再設定や消去
  7. MBRなど先頭部分の消去および全セクタ消去(GPTディスクも初期化できる)
  8. 拡張DOSパーティションの拡大
  9. GPT形式のディスクをMBR形式に変換(512B/sで2TB未満のドライブに限る)
  10. MBRセクタのバックアップ保存/復元
 とくに機能4〜9はWin9x DOSのFDISKには無かった機能です。Windows XPなど 以降の diskpartプログラムにはこれらの機能もありますが、回復コンソールの 起動など面倒な手順が必要なので、DOS上でもできるという意義はあるでしょう。

2.【基本的使い方】

 機能選択 

 MS-DOS(6.2)またはWindows95/98のMS-DOSモード(7.x)のコマンドラインから、

 FDSK 

 と打ちます。機能選択メニューが出るので、どれかを↑↓キーで 選び、enterキーを押してください。

DOSの言語モードが日本語モードでも英語モードでも実行できるように設計 されていますが、英語メッセージにはおかしな点があるかもしれません。

 ディスクドライブ(HDD)選択 

 次に、ディスクドライブの選択メニューが出ます。複数のディスク ドライブがある場合はどれかを↑↓キーで選び、enterキーを押してください。 1台しかない場合はそのままenterキーを押してください。

 対象ディスクドライブはシステムのDISK BIOSで認識されているものに 限られますが、ディスクドライブの形式・ベンダ名などは表示されません ので、普通には総容量値で判断するしかありません。間違って、対象とする つもりでないものを選ばないよう充分注意してください。ディスクドライブの 選択後は、装置番号80〜87のような番号で識別することになります。 通常は、起動できるシステムがあるのは装置番号80のものです。

 なお最近のマザーボード機種では、USB接続のストレージ全般が BIOS管理下にあることが多いので、どれが目的のディスクドライブかが わかりづらいかもしれません。あらかじめマザーボードのBIOS設定で、 USBストレージデバイスをハードディスクドライブとして見えないように しておいたほうがよいでしょう。

 このあとは選択した機能が実行されますが、機能ごとに途中の メッセージや操作、実行結果が異なるので、以下のように別途解説します。

3.【機能ごとの解説】

 機能0: ディスクの接続状況とパーティションの状態を表示します. 

 パーティションテーブルの情報を表示します。表示するだけで、 情報の書き込みは一切ありません。表示が終わるとディスクドライブの選択に 戻ります。なお、以降で示す他の機能では、実行後にディスクドライブの選択 には戻らず終了します。連続で適用することはあまりないと考えられるためです。

  パーティションテーブル表示内容は、後述の表示モードオプションに より少し異なりますが、容量(MB)、位置するLBAディスク番地またはサイズの LBA数、ファイルシステムID(FSID)、ファイルシステム名などです。 LBAとFSIDは16進数表記です。(*LBA 論理ブロックアドレス)

 なお、GUID-パーティションテーブル形式(GPT形式)、NEC-PC98形式、 スーパーフロッピー形式のディスク管理がなされている可能性があるディスク ドライブについては、機能7以外が使用できなくなります。これは誤った操作 からデータを保護するためです(後述の諸注意参照)。GPT形式のディスク ドライブである場合、仮のMBRパーティション情報に続き、GPTの情報も表示 します。

情報の表示だけの機能は、後述のオプション /S による起動でもできます。

 機能1: 基本パーティション(FAT32)を作成します. 

 基本パーティションをFAT32で作成します。容量が小さくてもFAT12,16での 作成はおこないませんので、1024MB未満のパーティションを作ることは避けて ください。また最大では128GB(131072MB)を超えないほうがよいでしょう。 Microsoftは32GBを超えるFAT32パーティションの作成を推奨していません。

 この機能を選択すると、ディスクドライブの選択の次に、空きエリアの 選択メニューが出ます。空きエリアは、既存のパーティションの間にあって使用可能な ところです。最大5個に分散して存在する可能性があります。作成したい 場所を含むものをメニューから選んでください。すると次に確保容量を 指定するよう要求してきますので、MB(メガバイト,MiB)単位で指定して ください。例えば10GBならば10240と入力します。ここで数値でなく max と入力すると、選択した空きエリアの全てを確保します。

 パーティション境界はシリンダ境界(一般に16065セクタ)に合わされますが、 オプション /8 または /64が指定されている場合には、2048セクタをシリンダ境界 とします。/240が指定されている場合は、240ヘッド×63セクタをシリンダ境界と します。オプション /NOAが指定されると、シリンダ境界とパーティション境界の 一致を取らず、メガバイト単位で与えた通りとします。

 確保容量の指定に続き、「ディスクに書き込みます」「よろしいですか?(Y/N)」 というメッセージが出るので、Yを押してください。 しかしNを押すと全ての実行が中止されます。

 1つのパーティションを確保し終わると、前の画面に戻ることなく、さらに確保する ことができます。終了したい場合はESCキーを押してください。

 パーティション作成後はシステムを再起動する必要があります。 なお本プログラムで確保したパーティションのパーティションブートレコード (PBR)にはIPLがありませんので、OSのファイルをこのパーティションにコピー しただけでは起動できるようにはなりません。Win9xならばSYSコマンドで 転送する、Windows2000,XPならば回復コンソールを起動してfixbootでブート IPLを書き込む必要があります。あるいは現在稼働しているWindows2000,XPから DRVCPYでPBRのIPLをコピーしてください。(Windows VISTA, 7ではそのような 簡単な方法では起動できるようにはできません。ブートローダの設定情報を 専用ツールで編集する必要があります。)

 機能2: 基本パーティションのアクティブ/非アクティブを切り替えます. 

 パーティションのアクティブパーティションを選択します。 パーティション選択メニューが画面下半分に表示されます。複数の パーティションがある場合は↑↓で選んでからenterを押してください。 1つしか無い場合はそのままenterを押してください。

 アクティブとなっているパーティションには、[A]という表示があり、 そうでないパーティションでは [ ] のように空欄となります。なお、 拡張DOSパーティションは選択できません。拡張DOSパーティションが一つ だけ存在する場合は、「選択できない」という意味の表示で強制終了します。 拡張DOSパーティションにはアクティブ属性を付けてはいけないことに なっています。

 既に[A]となっているパーティションを選んだ場合は、アクティブ属性の 解除になります。つまり設定はトグル動作となります。PCシステム上の仕様 として、アクティブにできるのは1つのパーティションだけとなっていますが、 アクティブなパーティションが1つもない状態は許されています。

 なおPCシステムの仕様で、装置番号80より後のディスクドライブからは、 アクティブの設定があっても起動できない場合があります(装置番号80に アクティブパーティションが全くない場合81以上のものから起動できる システムもあれば、そうでないシステムもある)。

 機能3:【削除】パーティション1つ削除します. 

 基本パーティションおよび拡張パーティション全体を削除します。 パーティション選択メニューが画面下半分に表示されます。複数の パーティションがある場合は↑↓で選んでからenterを押してください。 1つしか無い場合はそのままenterを押してください。実行後はパーティション テーブルを再表示しますが、さらに続けて削除したいパーティションの選択が できます。もう削除の必要がなく終了したい場合は、ESCキーを押してください。

 機能4: 基本パーティションのFSIDを変更します. 

 ファイルシステムIDの変更をします。ファイルシステムIDの詳細説明は ここではおこないません。各自で意味を熟知の上、使用してください。 この機能が必要となる場合というのは、Windows XPの「ディスク管理」が 誤って FAT32パーティションにFAT16のIDを振るバグが発動したときくらいで あろうと思います。この機能で 0C を入力すれば修正されます。

FSIDの一例: 0C FAT32、 07 NTFS、 0F 拡張DOSパーティションの殻

なお、既に拡張DOSパーティションが存在しているときには、値05や0Fを 入力すると、エラーとなるようにしてあります。これは複数の拡張DOS パーティションが存在することは許されないためです(実験的に拡張DOS パーティションを複数設けると恐ろしいことが起きます!)。 その他のFSIDについては別表を参照してください (この表の内容が正しいという保証はありませんし一切責任を負いません)。

 機能5: MBRのIPLを作成します. 

 未使用状態のディスクドライブに、IBM-MS形式のマスターブート レコード(MBR)のIPLを書き込みます。IPLコードだけでなく、それが正しい ことを示すシグナチャも書き込みます。既にパーティションが存在している 場合に適用しても問題ありません。パーティションテーブル部分はそのまま ですので、IPLの書き込みでパーティションが消えることはありません。 ただし、IPLにパッチあてをする特殊なプログラムを組み込んでいた場合、 そのプログラムは動作しなくなります。改めて組み込むことになります。 この機能は、FDISKコマンドの /mbr オプションの実行と同じことを行い ますが、ディスク署名は初期化しない点が異なります。ディスク署名の操作 には次の 機能6を使ってください。

 機能6: Windowsディスク署名を再設定/削除します. 

 Windowsのディスク署名を削除または新たに設定します。 設定に用いるのは16進数の8桁の文字・数字です。何も入力せずにenterを 押すか、0を入力すると、署名は削除されます。どういう場合にディスク署名を 設定・削除するのかについては、充分に熟知したうえでおこなってください。 (Windows2000,XPで起動ドライブのドライブレターが変わってしまった場合など)

 Windows XPやそれ以前のOSでは、「新しいハードディスクデバイスを 見つけた」という扱いで新しい署名がレジストリに記録されるだけで 済みます。しかしWindows 7などでは、ディスク署名を変更すると、異な ハードディスクにコピーしたものとみなされ、アクティベーションが 発生することがあるので、不用意に操作しないよう注意してください。

 機能7: 【消去】パーティションテーブル、IPLを完全消去します. 

 マスターブートレコードに値ゼロを埋めて、ディスクドライブを未使用 と同等の状態にします。ですから不用意に使うと致命的です。この機能で 消去されるのは、セクタ番地0(先頭)から62までです。通常はこれでどのような システム・OSからも「未使用」とみなされるようになります。さらに、 次に出る
"全セクタを消去しますか?(YESで実行/NOで終了)"
の質問にNOで答えると、これで終了します。いっぽう YES で答えると、 その通り最終セクタまでのデータを消去します(非常に時間かかります)。 ハードディスクの譲渡・廃棄の際に活用できると思います。

 機能8: 拡張DOSパーティションを可能な限り大きくします. 

 拡張DOSパーティションの後方に未使用の領域がある場合、それを 含むように拡張DOSパーティションの殻を拡大します。この機能は通常選択 できなくなっていますが、/NOA オプションを指定していると選択できるよう になります。拡張DOSパーティション内のパーティションを操作する機能は 本プログラムにはないので、実際にパーティションを確保するにはWindowsの ディスク管理などを使用してください。

 なおディスクドライブ最後方に未使用パーティションが数MB存在することは よくありますが、リカバリシステムがデータを置いていたり、シリンダ境界規則 に外れることになるので、めいっぱい確保するのは必ずしもよいことではあり ません。そのため -NOA オプション(シリンダ境界を守らない)の指定がある ときだけ選択できるようにしています。

 機能9: GPT形式をMBR形式に変換します.  元に戻すことも可能

 Windows Vista, 7, server 2008以降のWindowsで、GPT形式で ハードディスクをフォーマットすると、XP以前のWindowsで認識できなくて 困ることがあるかもしれません。この機能ではGPT形式をMBRに変換します。 元のGPT情報は消去せずにMBRのみ正当なものを作成します。GPT形式では パーティションテーブルを参照しただだけではファイルシステムがわからない ので、ファイルシステムの中身を分析しないと種別が判明しません。しかし Windowsで作成できるのはベーシックパーティションでNTFSだけと考えられる ので、MBRのパーティションテーブルに登録するファイルシステムIDは、 NTFSと仮定しています。あらかじめ何のファイルシステムであるかわかって いる場合は、機能4を使ってファイルシステムIDを設定してください。

 「制限事項」

 GPT->MBR形式変換機能において、以下のことは制限事項とします。

 「注意事項」 MBR形式に変換したあと、再びGPT形式に戻したいときは、 もう一度この機能を適用してください。この機能は現在の状態をみてトグル 動作をします。GPTの情報とMBRの情報の両方が存在する場合、MBRの情報を 消去して、GPTの情報のみが存在する状態に戻します。GPTのみの情報がある 場合は、GPTの情報を参照してMBRに同等の内容を構築します。この機能では GPTの情報には一切変更を加えません。したがって、パーティション構成を 変えたいときは、いちどGPTに戻し、GPT対応のWindows(Vista,7など)で パーティション構成を変更し、再び本機能でMBRを作り直してください。

5.【上級者向け使い方】

 起動時にコマンドオプション /8 を使うと、FAT32パーティション 作成の際に、Windows Vista以降の方式(先頭パーティションがセクタ番号800h から開始)となります。また独自に、FATのクラスタ境界が8の倍数セクタ境界 と一致するようにフォーマットします。この機能は、Western Digital社の AFT driveを使用する際に有用と考えられます。/8 が指定されないと、 BIOSの指定通り先頭パーティションがBIOSヘッド番号1の境界(通常はセクタ 番号3Fh)からの開始となります。

 起動時にコマンドオプション /Z を与えると、パーティションの 情報表示で開始アドレスと、パーティションの大きさ(セクタ数)を表示 します(16進数)。このオプションが無い場合は開始セクタと最終セクタの アドレスです。

 起動時にコマンドオプション /C を与えると、1023シリンダ 以下にあるパーティションでは、開始位置のシリンダ、ヘッド、セクタ番号を 表示します。またそれ以降にあるパーティションでは、BIOSシリンダ境界に ある場合は "OK" 境界でない場合には "NG"を表示します(下の図を参照)。 なお Windows XP SP3では、パーティションの開始位置がシリンダ境界に なくても、とくに問題が起こることはありません。

 そのほか、機能番号選択をバイパスして直接実行するオプションもあります。
コマンドオプション /S を与えると、全てのディスクドライブの情報をテキスト表示します。
コマンドオプション /N を与えると、機能1 のFAT32パーティションの作成をおこないます。
コマンドオプション /A を与えると、機能2 のアクティブパーティションの設定を実行します。
コマンドオプション /D を与えると、機能3 のパーティションの削除をおこないます。
コマンドオプション /E を与えると、機能7 のMBR全消去をおこないます。
コマンドオプション /G を与えると、機能9 のフォーマット形式変換をおこないます。

コマンドオプション /B を与えると、次で選択したディスクドライブ のMBRのバックアップファイルを作成します。ファイル名は、MBR80.DATという ような名前でカレントディレクトリに無条件で作成します(80の部分は 対象ディスクにより81,82,83...)。なお、DOSをCD-ROM起動していると、 カレントディレクトリがCD-ROMドライブ上では、ファイル書き込みができ ませんから注意してください。

MBRバックアップファイルを書き戻すときは、コマンドオプション /U を付け、スペースを空けてさらにファイル名も指定し、起動して ください。ファイルはカレントディレクトリに置いてください。次に書き 込み対象ハードディスクの選択メニューが出るので、適切なものを選んで ください。書き戻す際にさらにバックアップを作ることはしませんので、 対象ハードディスクをくれぐれも間違えないように注意してください。

次の画面はオプション /S の実行例です。(仕様変更により表示形式は 変わるかもしれません)

 以下は /N と同じく機能1のFAT32パーティションの作成をおこないますが、 先頭パーティションのセクタ番号を通常とは違う値に変更します。しかし 通常使う機能ではないので、詳しい説明は省きます。
コマンドオプション /16 を与えると、3F0hから(16ヘッド×63セクタ相当で)割り当て
コマンドオプション /64 を与えると、800hから(64ヘッド×32セクタ相当で)割り当て (/8と同じ)
コマンドオプション /3EC1 を与えると、3EC1hから割り当て(拡張パーティションに転用に適す)

6.【諸注意】

 このプログラムは、IBM-MSのMBR方式で使用しているハードディスクに対 して各種の処理を行うものです。Windows Vista,Windows7,Windows server 2008 などで採用された新しいパーティション管理システム(GPT方式)には対応しません。 組み込み機器用OSやNEC PC-98など、他のシステムで使用していたと思われる ハードディスクに適用しようとすると、一部の機能を除きエラーメッセージを 返します。チェックされるシステムの種別は、次の通りで、ディスクドライブ 表示のところに現れるMBR というカラム列の位置に、3〜4文字で表示しています。

[GPT]、[NEC]、[sFD]の場合は保護のために本プログラムのほとんどの機能が 適用できないようにしています。ただし機能7 の全消去だけは、どのような 場合にも適用できるようになっています。いままでのシステムのデータを完全 に破棄してよいのであれば、いったん全消去することで、このプログラムの 全ての機能が使用できるようになります。たとえば新規にFAT32パーティション を作りたい場合は、まず機能7で管理情報を消去し、次に機能1でFAT32 パーティションを作成し、必要があれば機能2でアクティブ属性とし、機能5で IPLを作成します。

 IBM-MSのMBR以外のシステムでの使用状況のチェックは完全ではなく、 正しいという保証はありません。未使用と判断して全ての機能が使えるように なっている場合もあります。またブートセクタにパッチをあてて動作している ソフトウェアがある場合、それを誤って検出する可能性もあります。そうした 場合でも、本プログラムを適用してよいかどうかは、使用者自身で判断して ください(MBM、パーティションマジック、システムコマンダー、あるいは その他怪しいブートセクタ型寄生ツールなどとの併用動作の検証は、一切 しておりません)。

 機能によっては、ハードディスクを一撃でまっさらにもできる、大変に 危険なプログラムであることを熟知の上で、各自の自己責任で使って下さい。 とくに、機能7:のMBRの消去機能は、パーティションテーブルをまっさらに してしまうので、適用するディスクドライブを間違えないよう十分注意して ください(1.00版からは事前にMBRのバックアップを自動で取る機能は廃止と なっています)。

 このプログラムはPC/AT互換機専用であり、IBM PS/55、東芝J3100、 NEC PC-9800シリーズなどでは使用できません。WindowsのGUIモード下では 実行できません。拡張int13hをサポートしないDISK BIOSのパソコンや、 バージョン6.2より古いDOSでは実行できません。

 このプログラムはフリーソフトウェアです。自由に使用してよい代わりに サポートのようなものはありません。直接・間接的に、このプログラムの運用の 結果に何があっても、作者は一切責任をとることはないものとします。 著作権は放棄しません。他のサイトへの無断転載も認めません。著作権侵害の ないようにお使いください。

 連絡先メールアドレスは、 トップページに記載されています。

2011-1-1 最終改訂

7.【プログラム改版履歴】

日付     版   内容
2011. 1. 1  1.00 正式版の新規公開 MBRのバックアップ/リストア機能が追加

β版時代の履歴

←戻る