Image: DOSとWindows XPのデュアルブート

ここでやっていることはかなり敷居が高いのでお勧めしません。
仮想マシンでDOS環境を構築するか、デュアルブートはあきらめてDOS専用マシンを組むことをお勧めします。

かつて日本IBMが開発・販売していたPC DOS/VとMicrosoft Windows XPのデュアルブート環境を構築しようという試み。

まず方法を説明する前にDOSの不具合や制限事項を知っておく必要がある。

○DOSの不具合・制限

  • 2014MB以上の領域から起動しない。
  • 2014MB以上の未使用ハードディスクに新規インストールできない。
  • 2014MB以上の領域に新規インストールできない。

これらの不具合はPC DOS J7.00B/Vで修正されている。
次はDOSに付属するFDISK(ハードディスク領域管理ツール)の不具合・制限

  • 基本領域は1ハードディスクに1つしか作れない。
    (他のOSで作成した領域はカウント対象外。)
  • 作成できる基本領域の最大容量は2047MB (FAT16フォーマットでの管理可能最大容量。)
  • ハードディスクの容量表示は最大8GBまでしかカウントされず、8GB以上のハードディスクでは容量表示が不正確になる。
  • 8GB以上の領域にインストールできる場合とできない場合がある (?)
  • 各領域のMB単位の容量表示が5桁以上になるとそれ以後のテキスト表示が崩れる。

これらの不具合はDOS最終バージョンのPC DOS 2000においても修正されていない。
ちなみに最も理想的なのはハードディスクの先頭に空き領域がある状態で、この場合PC DOS J7.00A/V以前の古いバージョンもインストールできる。

○本題

DOSをハードディスクにインストールしてからWindowsをインストールする場合は、Windowsのインストール時にデュアルブートできるように自動で設定されるので問題ない。
問題はWindowsをインストールした環境にDOSをインストールする場合である。
ここではその方法について紹介する。

○A: 新規インストールの手順

[A-1. DOSをインストールするための領域を空ける。]
Windows Vista以降では「ディスクの管理」コンソールやDISKPARTコマンドで領域の縮小操作ができる。
Vistaのインストールディスクにあるシステム回復オプションからコマンドプロンプトを起動し、そこでDISKPARTコマンドを実行するとよい。

[A-2. DOSを起動する。]
再起動後DOSのインストールディスク(1枚目のディスケット)からDOSを起動。
インストール画面が出たらESCキーで中止する。
Setup Program

[A-3. FDISKコマンドで基本領域を1つ作る。]
このとき活動状態の設定は変更しないこと。
Query a list of volumes - FDISK

[A-4. 普通にインストール作業を行う。]
再起動後、先ほど作った基本領域がCドライブになっているはずなのでそこにDOSをインストールする。
インストールが完了して再起動するとDOSではなくWindowsが起動する、はず。

[A-5. DOSをインストールした領域のブートセクタをファイル化。]
Windowsが起動したらコマンドプロンプトを起動して次のようにコマンドを実行する。
(黄:入力するコマンド 緑:補足解説 白:出力例)

C:\Documents and Settings\User>DEBUG
;ドライブ2(C)のセクタ0から1セクタだけ読み込んでメモリ(CS:100)に格納
-L100 2 0 1
:データの書き込み先ファイルを指定
-NC:\BOOTSECT.DOS
;書き込みサイズ(BX:CX)を指定
-RBX
BX 0000
:0
-RCX
CX 0000
:200
;メモリ上のCS:100から0:200だけ指定ファイルに書き込む
-W
00200 バイト書き込み中.
-Q

C:\Documents and Settings\User>

この例ではWindows上から見てDOSがCドライブにインストールされていると仮定している。
他のドライブであれば"L100 2 0 1"の"2"を変える必要がある。
数字はAドライブを0、Bドライブを1、Cドライブを2...とする。

[A-6 作成したファイルの確認。]
CドライブのルートディレクトリにBOOTSECT.DOSという512バイトのファイルができていることを確認する。
(BOOTSECT.DOSはWindows NT系ローダーと同じ場所に置く必要がある。)

[A-7 デュアルブートの設定。]
ファイル名を指定して実行(Winキー+R)を開いて「C:\boot.ini」と入力・実行する。
メモ帳が開いたら一番下の行に次の一文を追加して保存する。
「C:\="PC DOS"」("PC DOS"の部分はわかりやすい名前なら何でもよい。)

A-8 再起動してブートメニューが出ること、"PC DOS"を選択するとDOSが問題なく起動することを確認する。
Select an operating system - Windows boot menu

○B: 既存の領域にDOSをアップグレードインストール、再インストールする。
既にDOSを使っていてかつWindows XPとデュアルブートを組んでいる場合。
(Windows XPのブート関連のファイルとDOSのファイルが同じ領域にあり、Windows XPのシステムファイルが別領域にある状態。)
Query a list of volumes - FDISK

[B-1 普通にインストール作業を行う。]
インストールの際にインストール先の領域をフォーマットしてはいけない。
「Ntldr」「Boot.ini」「Bootfont.bin」「NTDetect.com」の4つのファイルはNT系ローダーで使うのでこれらを消さないように。
インストールが完了して再起動するとDOSが起動する、はず。

[B-2 DOSをインストールした領域のブートローダーをファイル化。]
DOS上でA-5, A-6の作業を行う。
PC DOS J2000 Bootup

[B-3 上書きされてしまったブートローダーを修復する。]
DOSのインストール時にNT系ローダー用のブートローダーがDOS用ブートローダーに置き換えられてしまっているので、これを修復する必要がある。
Windows XPのインストールディスクから回復コンソールを起動。
コマンド「fixboot c:」を実行する。

[B-4 デュアルブートの設定。]
再起動後おそらくWindowsが起動するのでA-7の作業を行う。
既にブートメニューから起動できる状態にある場合はこの作業は不要。

B-5 再起動してブートメニューからDOSが起動できることを確認する。

○Windows Vista、7とのデュアルブート
手順はWindows XPの場合とほとんど変わらない。
ただDOSをインストールした領域のブートセクタをファイル化する際はプロンプトを管理者権限で実行している必要がある。
ファイル化ができたらWindows上で次のようなコマンドを実行する。

bcdedit /create /d “PC DOS” /application BOOTSECTOR
bcdedit /set {DOS_ID} device boot
bcdedit /set {DOS_ID} PATH \BOOTSECT.DOS
bcdedit /displayorder {DOS_ID} /addlast
bcdedit /timeout 5

DOS_IDは"bcdedit /create~"コマンドを実行して返される16進数の番号に置き換える。

実は同じような方法でLinuxのGRUB2ブートローダーとデュアルブートを組むこともできるが、お勧めしない。

最近のマシンではIBM互換機としての互換性が失われつつありDOSが動作しないことがあるので、
あれこれする前に一度DOSが動作することを確認することを勧める。

○関連リンク


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!