bcdedit /bootsequenceコマンドで次回に起動するOSを一時的に変更する。再起動をかけるバッチファイルを作ってちょい手間省き。(Windows 7,8)

普段使っているOSとは違うOSを起動したいとき、ちょっと目をそらしている隙にブート選択画面を見逃して再起動をやり直すことが多々あります。ブート選択画面がいつ出るかとディスプレイを見つめていなければなりません。せいぜい数十秒待つだけなのですが、手間に感じることは確かです。

かといって「システムのプロパティ」を開いて「既定のオペレーティングシステム」の設定を変えるのは、やはり手間です。設定を変える手間とブート選択画面を待つ手間、どっちもどっちですねー。

そこでbcdeditコマンドの/bootsequenceスイッチです。

bcdedit /bootsequence ヘルプ

このコマンドは、ブート マネージャーが使用する 1 回限りのブート シーケンスを
設定します。

bcdedit /bootsequence <id> [...] [ /addfirst | /addlast | /remove ]

    <id> [...]      ブート シーケンスを構成する識別子の一覧を
                    指定します。1 つ以上の識別子を指定し、スペースで
                    区切る必要があります。識別子の詳細については、
                    "bcdedit /? ID" を実行してください。

    /addfirst       指定されたエントリ識別子をブート シーケンスの最初に
                    追加します。このスイッチを指定した場合は、識別子を
                    1 つしか指定できません。識別子が既に一覧内にある場合は、
                    一覧の最初に移動されます。

    /addlast        指定されたエントリ識別子をブート シーケンスの最後に
                    追加します。このスイッチを指定した場合は、識別子を
                    1 つしか指定できません。識別子が既に一覧内にある場合は、
                    一覧の最後に移動されます。

    /remove         指定されたエントリ識別子をブート シーケンスから
                    削除します。このスイッチを指定した場合は識別子を
                    1 つしか指定できません。識別子が一覧にない場合は、
                    この操作は影響しません。最後のエントリが
                    削除されている場合、ブート シーケンスの値は
                    ブート マネージャー エントリから削除されます。

例:

次のコマンドは、ブート マネージャーの 1 回限りのブート シーケンスに
2 つの OS エントリと NTLDR ベースの OS ローダーを設定します:

    bcdedit /bootsequence {802d5e32-0784-11da-bd33-000476eba25f}
        {cbd971bf-b7b8-4885-951a-fa03044f5d71} {ntldr}

次のコマンドは、指定された OS エントリをブート マネージャーの 1 回限りの
ブート シーケンスの最後に追加します:

    bcdedit /bootsequence {802d5e32-0784-11da-bd33-000476eba25f} /addlast

使用方法

あらかじめ、起動したいOSエントリのidentifier(識別子)を知る必要があります。

コマンドプロンプトを管理者権限で実行し、bcdeditコマンドを実行します。

OSエントリの一覧が表示されるので、目的のエントリのidentifierの値をコピーまたはメモします。

それを使ってbcdedit /bootsequence identifierというようにコマンドを実行します。これで次回ブート時のみ、そのOSエントリから起動します。目的のOSがWindows NT/2000/XP/2003の場合、identifierは{ntldr}となります。

再起動用バッチファイル

shutdownコマンドと組み合わせてバッチファイルを作れば、クリック2回で違うOSへ再起動をかけることができます。

バッチファイルは管理者権限で実行する必要があります。管理者権限でないとbcdeditコマンドが実行されずに次のコマンドに移ってしまいます。普通に実行してしまったときの対策のため、bcdeditコマンドの終了コードで操作が正常に行われたかどうか判別します。

次はWindows XPへ再起動をかけるバッチです。

bcdedit /bootsequence {ntldr}
if errorlevel 1 goto err
shutdown /r /t 0
exit
:err
pause

参考サイト

Tip:Windows 7:Temporarily Change the OS Boot Sequence - TechNet Magazine
http://technet.microsoft.com/en-us/magazine/ff700231.aspx
bcdeditコマンドでブート・シーケンスを一時的に変更する - @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/1324bcdbtsq/bcdbtsq.html

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

管理人 : Akamaki (akm)

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

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

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