フクロウ( Fukurou_Japan)です。
今回は仮想ディスクのブートについてお話します。
タイトルを見て『何のこっちゃ?』という方はこの先は見なくても良いかもしれません。
簡単な内容としては、
・Windows10でVHDというファイルを作ると、その中に仮想のPCを格納することができる
・その仮想のPC(正確には仮想ディスク)をPCの電源をONにした際に起動できるようにする
ということです。
はい、意味不明ですね。『なるほど!』と思われる方はその先をお読みください。
目次
Windows10でVHDやVHDXの仮想ディスクを起動時のブート選択に追加する方法!
今回この記事を書こうと思ったきっかけはこちらです。
・Hyper-vマネージャーを起動して仮想PCを作れば簡単にVHDを起動できることは分かっている
・でもどうせなら、電源ONの起動時にVHDから直接起動できるようにしたい
・disk2vhdというマイクロソフトのツールで、現在のPCの環境をVHDにすることは成功した。VHDの保存先はSDカード
・BCD関連をコマンドであまり触りたくない
・EasyBCDというBCD関連の設定をGUIでいじれるツールを発見してワクワク
・しかし、EasyBCDで登録したVHDは一度もbootに成功せず
・仕方がないので、コマンドプロンプトで作業する方法を探す
・bcdeditなんちゃら~ のコマンドを使ってやっと成功した
これらの流れは時が経つと間違いなく忘れるので、メモに残そうと思った次第です。
ちなみにVHDをWindows10のインストールディスクからアタッチして、Windows10を新規インストールして起動することは成功しています。新規インストールをした際には、自動的にブートメニューにインストールしたOSが表示されます。
VHDをコマンドプロンプトを使用してブートさせる方法
QIITAのこちらの記事を参考にしました。
この記事の中の【既存の VHD をネイティブブート可能にする方法】という部分が私が今回試して成功した部分です。引用します。
管理者権限で[コマンド プロンプト]起動
ブートメニューに表示される文字列を設定コマンド入力1:
bcdedit /copy {current} /d “Windows10-VHD”
出力結果の[エントリは {yyyyyyyy-yyyy-yyyyy-yyyyy-yyyyyyyyyyyyy} に正常にコピーされました]のID({?}部分)をコピー
コピーしたIDを次の2つの{?}部分に入れて入力し完了
コマンド入力2:
bcdedit /set {yyyyyyyy-yyyy-yyyyy-yyyyy-yyyyyyyyyyyyy} device vhd=[C:]\VHD\win7.vhd
コマンド入力3:
bcdedit /set {yyyyyyyy-yyyy-yyyyy-yyyyy-yyyyyyyyyyyyy} osdevice vhd=[C:]\VHD\win7.vhd
注意点。文字が大きくなっている部分は、自分の環境に合わせて変更してください。
私の場合は、
[E:]\VHDX\win10.vhdx
としました。VHDかVHDXかにも気をつけてください。渡しの場合は、VHDXで作成したので、コマンド入力の際にもVHDXになっているわけです。
ここまで行ったあとで、再起動をすると、OS選択のメニューが出るはずです。コマンド入力の一番目の文字列【Windows10-VHD】が選択肢に追加されています。
それをクリックするとめでたくvhdのWindowsが起動します!
今回のVHD起動の作業で気付いたことなど
ここからは作業時に気づいたことについてのメモです。これから私と同じようなことをするようでしたら参考にしてください。
VHDを作成したら、BCDコマンドを入力する前にHyper-Vマネージャーで仮想PCを作成し、起動することを確認したほうがよい
なぜそうするかと言いますと、Hyper-Vで起動しない状態では、BCDコマンドをいくら一生懸命入力しても意味なしだからです。
ブートメニューには表示されますが、クリックしても『問題が発生しました』などの文字が出て起動できません。
SDカード単体では失敗するので、USBアダプタを使ったほうが良い
USBアダプタを使用してマイクロSDカードを挿し、その中にVHDを作成する方法は前に成功したことがあるので、今回はSDカードに直接VHDを置くことも試しました。
結論としてはHyper-Vで起動しませんでした・・。ということおとなしくUSBアダプタを使用したほうがよさそうです。
EasyBCDというソフトで設定しても起動はうまくいかなかったがBCDコマンド入力時の確認には役立つ
最初のほうで書いたとおり、このソフトでのブートはできませんでしたが、画面が見やすいので、BCDコマンドを入力→EasyBCDで確認、ということをやっていました。(コマンドでもBCDの状況はみれますけど)
BCDのバックアップ・復元も簡単にできるので、コマンドも使いこのソフトも活用するというやり方が良さそうです。
2台以上のPCからVHDを作成しテストしたほうがよい
原因はわからないのですが、
・PC1ではVHD作成→VHDブートができた
・PC2では出来ない
ということがありました。同じやり方をしているにも関わらず。
こちらについては結局原因がわかりませんでした。もしPC2だけでテストしていたら、きっと永遠にBCDの設定をいじって『できないな~、できないな~!!』とぼやいていたと思います。
そういったことを考えると2台以上でVHDを作ったほうが良いと思いました。
さらに言えば、【MBRとUEFI環境】の2台のPCがあるとなお良さそうです。MBRでは起動するのにUEFIでは起動しない・・ということもあり得るからです。
VHDにする前にパーティションを縮めておいたほうが良い
これはかなり盲点でした。最初は意味不明でした。何が意味不明かと言いますと以下の部分です。
例:250ギガのSSDで40ギガだけデータをとして使っているPCがあると仮定
・disk2vhdでVHDを作成→SDカード内に40ギガ程度のVHDができる
・Hyper-vでそれを展開すると、なんと250ギガのディスクがが出現。SDカードは128ギガにも関わらず
こんなことをやってしまうと、容量が小さいPCでは起動しない可能性もあります。ですので、なるべくVHDにする前にパーティションを小さくしておくと良いでしょう。終わったら戻せばよいだけですし。
今回の例でしたら、一時的にパーティションを250ギガから50ギガ程度にするイメージですね。残りは未使用領域のままで良いでしょう。
VHDの入ったSDカードを他のPCに挿してブートするとWindows10のライセンスは認証されていない状態になる
これは当然と言えば当然かもですね。
『ひとつのPCで認証して、他のPCに差し替えたらもしかして認証されているかも!』と淡い期待をした私がおばかさんでした・・。ハードウェア構成が違うのでやはり駄目でした!
SDカードで運用すると耐久性が心配なので重要なファイルなどは置かないほうがよい
SDカードで起動できたとしても、SDカードが壊れるとすべてが消えるという恐ろしいリスクがあるので、ファイルやフォルダなどはドロップボックスに置く等の工夫が必要です。
でもそれさえやっておけばもしSDカードが壊れても慌てる必要はないでしょう。
気づいたことは以上です!
VHD関連は以前にも記事を書いているので、こちらも参考にしてください。
さいごに
VHDでのブートはハマると結構やばいです。。
私と同じ状態になって時間を無駄にしないように、【コマンドを3行だけ入力して】びしっと成功させてください!
あのちっちゃいマイクロSDにWindows10が入っていると考えるとなかなかワクワクします。(故障の心配でドキドキもしますが)
あなたもぜひVHDでのブートをためしてみてくださいね!
それではまた次回!