WindowsVistaとUbuntuがインストールされているパソコンに、Ubuntuを消してWindows10を追加インストールしましたが、デュアルブートにならなかったので、Windows10のコマンドプロンプトで「bcdedit」コマンドを使ってVistaとデュアルブートします。
WindowsVista→Windows10の順にインストールすると手を加えることなくデュアルブートになるので以下の作業は不要になると思います。
今回、現在WindowsVistaのライセンス認証がネットワークエラーで失敗するためOS初期状態に戻すには事前にバックアップソフトから作成したリカバリーディスクから戻す必要があり、何度か自作リカバリーディスクから戻してます。その影響か分からないですが、後からWindows10を追加インストールしてもシングルブートのままで、手作業でデュアルブートを作る必要がありました。
私自身、bcdeditコマンドを理解して使っているわけではないので見よう見まねで作業してます。また、専門的な用語もよく分かってないまま間違った意味で使用してる場合もありますがご了承ください。
パソコン構成
- CPU:Core 2 Quad Q9650(3.0GHz)
- マザーボード:Intelチップセット P45 ギガバイト製
- メモリ:DDR2-800 8GB(2GBx4枚)
- 光学ドライブ:BDドライブ
- ストレージ1:HDD 640GB Vista
- ストレージ2:SSD 160GB (Ubuntu) ※動作検証のWin10に使う予定
- GPU:Geforce GTX750Ti
- その他:データ用HDD3台、ビデオキャプチャーカード
Windows10でデュアルブートする経緯
WindowsVistaとして使っているパソコン、Vistaのサポートが終了してからはUbuntuを入れてデュアルブートにして、オフラインでビデオキャプチャにVista、ネットやSteamゲームにUbuntuとして使ってきました。
ただ、Steamで購入したゲームはUbuntu版SteamでWRC4など動かないゲームもあり諦めていたのですが、先日グラフィックボードをGeforce GTX750Tiに交換して、それ以来Ubuntuで動かないゲームもやりたくなった。
通販サイトでWindows10の販売状態を調べるとパッケージ販売は無くDSP版しかありませんでした。
世の中はWindows10どころか11です。
このままだとWindows10のDSP版もなくなるかもしれないと思い、今頃ではありますがWindows10導入を考えることに。
ただ、使用してるビデオキャプチャ「SKNET Monster X2」はWindows7までしかドライバが出ていません。
そのため、Windows10とWindowsVistaのデュアルブートすることにしますが、VistaのパソコンでWindows10が動作するかは分かりません。
Windows10は2022年6月時点でMicrosoftのサイトからダウンロードが出来るので、オフラインでライセンス認証しなければ体験版みたいな感じで使えるのを思い出したのでWindows10購入前に動作検証することにしました。
Windows10のブートUSBを作成して動作検証。
バックアップソフトで、パーティション操作も出来るのでUbuntuがインストールされているドライブを削除してWindows10も問題なくインストールできました。
まだWindows10購入前なのでライセンス認証はしてないものの、一通り確認して動作は問題ないようです。
ただ、WindowsVistaもインストールされているのですが、パソコン起動時にOSを選択する画面が現れずWindows10が起動します。
Windows10とWindowsVistaは物理的にドライブを分けて入れてるので、BIOS画面で起動ディスクを選択するとVistaも起動できますが、それだと使い勝手が悪いです。
検索して調べてるとコマンドプロンプトでbcdeditコマンドでデュアルブートの環境を作れるのが分かったので作業に移ります。
Win10とVistaデュアルブートのドライブ構成
Windows10とWindowsVistaのデュアルブートのドライブ構成ですがOSを物理ドライブで分けます。
OSをデュアルブートするときは、同じドライブにパーティションを分けるのが一般的かと思いますが

1つのドライブでパーティションを分けると、OSのバックアップを取ってリカバリーするときに経験上リストアに失敗しやすいです。特にパーティションの後半に入ってるOSが起動失敗しやすい印象。
ディスク単位でバックアップを取ると復元は出来ると思うのですが、一方のOSが不調で戻したくても両方のOSを元に戻すので環境設定とか面倒です。
なので、OSは物理ディスクで分けてインストールします。

これだと、一方のOSだけ元に戻せるので環境設定もそこまで面倒にならない。
もし、ブートローダーでOS選択して起動に失敗しても、MBR修復が必要になるかもしれないですが、BIOSから起動ドライブを選択してOSを起動させることも出来ます。
bcdeditコマンドでデュアルブートにする
Windows10でWindowsVistaとのデュアルブートを作成します。
bcdeditコマンドについては以下のサイトに詳しく説明されています。
※2番目のリンクは大学サイトリニューアルによりリンク切れてます。(2023/10/23確認)
デュアルブートの作成だけではなくデュアルブートの内容の変更や削除についても説明されてます。
デュアルブート作業時の画像はWindows10とWindows11とで混在していますが、画面も手順も変わりありません。
パソコンが古いのでWindow11の動作条件をクリア出来てませんが、MSからダウンロードしたWindows11のISOをRufusでMBRでブートUSB作成するとインストール出来ました。非推奨PCなのでWin11は自己責任で。
事前にVistaのドライブ名を確認
Windows10を起動した状態で、WindowsVistaが入ってるドライブ文字を確認します。

Windows10から見たVistaはDドライブになってます。
ブートローダーに必要なパラメーターを確認
先ほど、bcdeditコマンドを説明しているサイトのリンクを紹介しましたが、そのままコピペでデュアルブートを追加しましたがエラーになりWindows Vistaが起動しませんでした。
冷静になって考えるとWindows起動に必要な実行ファイルを書かなかったので、これじゃ起動しないわけです。
他にも不足してるパラメーターや値のミスもあるかもしれないので、一度インストールメディアからWindowsVistaをインストールして次にWindows10もインストール。
この時、VistaとWin10共にライセンス認証は行っていません。
何も手を加えることなくWin10とVistaのデュアルブートが出来たので、管理者権限で開いたコマンドプロンプトで「bcdedit」コマンドを実行してWindows Vistaのブートローダーの内容を確認しました。

この内容に記載されてるパラメーターを元に追加すればいいと思ったのでブートローダーを追加します。
Windows10でbcdeditコマンドでブートローダーを作る
管理者権限でコマンドプロンプトを起動する。
現在のブートローダーの状態を確認します。
bcdedit
コマンドを入力すると現在のブートマネージャーの状態が確認できます。
Windows ブート マネージャー
--------------------------------
identifier {bootmgr}
device partition=C:
description Windows Boot Manager
locale ja-JP
inherit {globalsettings}
default {current}
resumeobject {c7f1a326-0b66-11ee-bcaf-973e0298535a}
displayorder {current}
{bdc3fe20-0b63-11ee-88ad-f739f258c5e5}
toolsdisplayorder {memdiag}
timeout 30
Windows ブート ローダー
--------------------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Windows 10
locale ja-JP
inherit {bootloadersettings}
recoverysequence {c7f1a328-0b66-11ee-bcaf-973e0298535a}
displaymessageoverride Recovery
recoveryenabled Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {c7f1a326-0b66-11ee-bcaf-973e0298535a}
nx OptIn
bootmenupolicy Standard
{c7f1a326-0b66-11ee-bcaf-973e0298535a}のIDはWindowsをインストールすると変わります。
bcdedit /create /d "Windows Vista" /application osloader
と入力。””内の「Windows Vista」はブートローダーで表示する名前なので任意。
エントリ {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} は正常に作成されました。
{ID}内にIDが生成され、パラメーターをセットするときに使うのでメモを取っておきます。
bcdedit /set {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} device partition=D:
Win10から見てVistaがDドライブに入ってるので、「partition=D:」とDドライブを指定してます。
bcdeditのオプション「/set」で、先ほど「/create」で追加した時に生成された{ID}指定して、項目とパラメーターを追加します。
この操作を正しく終了しました。
セットしたパラメーターが追加されました。
同じように他の項目も追加します。
bcdedit /set {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} path \Windows\system32\winload.exe
Windows起動に必要な実行ファイルを設定。
まだまだ追加する項目があるのでどんどん続けます。
bcdedit /set {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} locale ja-JP
bcdedit /set {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} inherit {bootloadersettings}
bcdedit /set {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} osdevice partition=D:
bcdedit /set {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} systemroot \Windows
bcdedit /set {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} resumeobject {bdc3fe20-0b63-11ee-88ad-f739f258c5e5}
bcdedit /set {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} nx OptIn
全ての項目をセットして「bcdedit」で追加されたか確認しましたが、セットする前と内容が変わらず追加されてません。まだブートローダーに反映されてないようです。
bcdedit /displayorder {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} /addlast
これでセットしたパラメーターが反映されたはずなので「bcdedit」コマンドで確認します。
bcdedit
Windows ブート ローダー
--------------------------------
identifier {bdc3fe20-0b63-11ee-88ad-f739f258c5e5}
device partition=D:
path \Windows\system32\winload.exe
description Windows Vista
locale ja-JP
inherit {bootloadersettings}
osdevice partition=D:
systemroot \Windows
resumeobject {bdc3fe20-0b63-11ee-88ad-f739f258c5e5}
nx OptIn
Vistaの項目だけ抜粋。
bcdedit /displayorder {id} /addlast
追加されたようなのでパソコンを再起動して確認します。

Windows11とVistaをデュアルブートした画像になってますが、同じ方法でVistaが追加されてます。bcdeditで追加したパラメーターに間違いや不足が無ければVistaが起動するはずです。

Windows Vistaが起動しました。
Vistaを再起動して今度はWindows10(OS選択画面の画像だとWin11になってますが、Win10ということで)を選択、Windows10も問題なく起動しました。
これでデュアルブートの作業完了です。
追加したブートを修正する
「bcdedit /set…」でOS選択画面で表示してる名前”Windows Vista”を”Vista”などに変更もできます。
bcdedit /set {bdc3fe20-0b63-11ee-88ad-f739f258c5e5} description "Vista"
と入力。
「bcdedit /displayorder …」を入力しなくてもセットした値は追加されます。
再起動するとOS選択画面の「Windows Vista」が「Vista」に変わりました。
bcdedit /setで指定する{ID}は「bcdedit」コマンドで確認した「identifier」のIDを指定します。
試してないですが{bootmgr}や{current}と入力すると他のブートローダーのパラメーターを変更できそうです。
例えばですが、{bootmgr}の「timeout」の数字を変更するとOS選択画面の待機時間を変更できると思います。
項目やパラメーターの入力ミスでWindowsが起動できなくなったら、Windowsのメディアをセットしてブート起動して「トラブルシューティング」の「コマンドプロンプト」からbcdeditコマンドを実行して修正ができます。