FATパーティションのDOSブートイメージファイル'BOOTSECT.DOS'を作るプログラム

dosbtimg Version 1.10

  Copyright(C) 2015-16 DOSsoft

2016.4.1

 *バージョン1.10からGRUBがインストールされたLinuxのEXTパーティションに対応しました。この場合はBOOTSECT.GRBというファイルが作成されるので、下記の文中のBOOTSECT.DOSBOOTSECT.GRBにに読み替えてください。

1.このプログラムの目的

 本プログラムは、ハードディスクドライブのMS-DOS起動パーティション(FAT16/FAT32)の「ブートセクタ」をイメージファイル化し、「BOOTSECT.DOS」という名前で保存します。

 作成されるBOOTSECT.DOSファイルは、アクティブなMS-DOS/PC-DOS起動パーティションがある状態でWindows2000/XPをインストールすると自動で作られるファイルと同等です。ところがWindows Vista/7/8/10では通常のインストール時にBOOTSECT.DOSのようなファイルは作られず、DOSとのマルチブートができるようになっていません。

 しかしBOOTSECT.DOSファイルを本プログラムで作ってDOSパーティションに置き、そのDOSパーティションからWindows Vista/7/8/10を起動できるようにブートローダを変更し、適切にBCDファイルを編集すれば、DOSとWindows Vista/7/8/10のマルチブートが実現できます。詳しくは下記の関連記事をお読みください。なおマルチブート対象のOSはMS-DOSに限りません。1セクタのブートローダから起動できるOSなら対応するはずです(バージョン 1.01より)。
関連記事1 関連記事2 

2.使い方

 Windows95/98に付属のMS-DOS(7.10)などのDOSを起動します。ハードディスクのDOS領域でもよいですが、なるべくCD-ROMやUSBメモリ、FDからの起動がよいでしょう。アーカイブを解凍して得た dosbtimg.exe が「カレントディレクトリ」(*)にある状態で、コマンドラインから dosbtimgと打ってENTERを押します。

 実行が開始されると、まず対象のディスクドライブの選択メニューが出ますので↓↑キーで選択してENTERを押してください。続いて対象パーティションの選択メニューが出ますので、同様に選んでください。

選んだ基本パーティションがFAT16またはFAT32の場合には、このプログラムを実行している「カレントディレクトリ」に BOOTSECT.DOS というファイルが作られます。

 既にカレントディレクトリにBOOTSECT.DOSファイルが存在している場合は確認メッセージが出ます。上書きしてよければYで応答してください。

 このファイルを、いま対象としたFATパーティションのドライブのルートディレクトリに保存します(GRUBを対象とした場合は後述の 5.を参照)。

 どのドライブレターのものが対象かは各自で把握しておいてください。実際にこのファイルを役立てるには、DOSとWindows2000/XPとのマルチブートやDOSとWindows Vista/7/8/10とのマルチブートを構築するノウハウ、すなわち、boot.iniあるいは bcdを編集するということについて熟知している必要があります。詳しくは関連記事1および関連記事2をお読みください。

*カレントディレクトリの意味がわからないかたはDOSは使いこなせません。DOSに関連する基本的な概念は学んでおいてください。

3.コマンドオプション /F

 実行時にコマンドラインオプション /F をつけると、現在DOSをブートできる状態にないパーティション、すなわちWindows 2000/XPやWindows Vista/7/8/10のブートマネージャを起動するFAT16/FAT32パーティションであっても、MS-DOS 7.1をブート可能なイメージを合成してBOOTSECT.DOSを作成します。ただし作成されるのはWindows 98付属のMS-DOS7.1をブートするコードになります(他のバージョンのDOSや他の種類のOSはブートできません)。

 このオプションのメリットがあるのは次のような場合です。既にFAT16/FAT32のパーティションからWindows Vista/7/8/10のブートマネージャを起動している場合、通常は一旦DOSのブートコードをブートセクタに入れ(DOSのSYSコマンド使用)、ブートセクタのイメージをBOOTSECT.DOSとして抽出し、またWindowsのブートマネージャを起動できるブートセクタに戻しておく作業が必要ですが、/F をつけての実行の場合はその手間がなく作成できる利点があります。

4.注意

・対象としているパーティションを間違えないよう十分注意してください。

・作られた BOOTSECT.DOSファイルは、作成時のパーティション専用となります。他のパーティションに流用はできません。

・作られた BOOTSECT.DOSファイルは「ポータブル」ではありません。パーティション位置に依存するだけでなく、ファイルシステムにも依存するので、該当するパーティションを再フォーマットすると、以前のBOOTSECT.DOSファイルは使えなくなる可能性があります。

・FAT16およびFAT32専用です。FAT12やNTFS、その他のファイルシステムのパーティションはDOSのブートイメージは作れません。

・MS-DOS以外でも、FATパーティション先頭1セクタからのブートができるOSならば、Windows Vista/7/8/10ブートマネージャや Windows 2000/XPブートローダからのそのOSの起動に利用できる可能性があります。

5.GRUBのあるLinuxパーティションの場合(バージョン1.10から)

 FAT/FAT32だけでなく、LinuxのEXTパーティションを選択することができます(次の図)。

 そのLinuxパーティション内にGRUBがインストールされていてそのパーティションのLinuxが起動していた環境であれば、WindowsのブートマネージャからのGRUBおよびLinux起動が可能になります。作成されたBOOTSECT.GRBファイルをWindowsのブートマネージャが起動するドライブにBOOTSECT.DOS という名前に変更してコピーしておき、さらにブートマネージャがそれを参照できるように編集する必要があります。すなわち、boot.iniあるいは bcdを編集するということについても熟知している必要があります。さらにはWindowsのブートマネージャが起動できるパーティションを「アクティブ」に変更する必要もあります。

 上の図で言えば、2番目のFAT32のパーティションにBOOTSECT.DOSを置いてさらにブートセクタを構築し、ブートに必要なWindowsファイルを置き、このパーティションをアクティブにするということになります。さらに、Windows 2000/XPであればboot.iniにCドライブ起動の指示を記入し、Windows Vista/7/8/10であればBCDeditを使ってBOOTSECT.DOSを読むようにブートマネージャの設定を変更します。Windows Vista/7/8/10の場合ファイル名はBOOTSECT.GRBのままでもよく、BCDeditでその通りの名前を記述すれば問題ありません。DOSを起動するためのBOOTSECT.DOSと併存させることもできます。

 なおGRUBがMBRとその後続セクタにインストールされているような環境(普通にLinuxをインストールすればこれになる)では全く使用できませんのでご注意ください。そもそもそのような環境ではWindowsのブートマネージャから起動していませんのでBOOTSECT.DOSファイルは役にたちません。またLinuxパーティションが拡張DOSパーティション内部にある場合には適用できません。

 【注意】GRUB(2.0)は、それ自身以外の環境からパーティション構成を変えるとLinuxを起動できなくなるので、GRUBのブート環境設定の仕方に熟知していない限り、むやみにWindows ブートマネージャ起動環境への変更をするべきではありません。

6.お約束

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

7.開発履歴

日付    版  内容
2015. 8. 3 1.00 初版
2016. 2. 1 1.01 MS-DOS 7.1以外の種類のOSを起動できるBOOTSECT.DOSが作られなかったのを修正。オプション /F を追加。
2016. 4. 1 1.10 LinuxのEXTパーティションをブートするBOOTSECTファイルを作成できるようにした。

[戻る]