仕事が一段落ついたのと、ちょっと VM の環境で検証したいことが出てきたので、まんま、下記の記事をやってみました。
VirtualboxのWindows10仮想マシンをデータを引き継いでWindows11にアップグレードする | gatsby-starter-blog++
最初は順調にいっていたので、わざわざ自分でブログの記事を書くまでもないだろうと思っていたら、 Windows 11 のインストール直前で躓いてしまったので、一応、メモっておきます。
試した環境はこんな感じでした。
- VirtualBox 7.0.8 (作業途中で 7.0.18 にアップデート)
- ホスト WIndows 11, 23H2
- ゲスト Windows 10 22H2, 2024/7/8 時点で WIndows Update を適用済み
VirtualBox 7.x で Windows 11 にアップデートするための準備
この手の作業の鉄則として、まずはバックアップを取っておきます。仮想マシンのフォルダごとコピーしておけばOKですね。
実際の作業は前述の記事の通りにすすめれば OK です。なので、詳細は割愛しますが、主に下記の3点です。
- ストレージを MBR から GPT に変更
- EFI を有効
- TPM 2.0 およびセキュアブートを有効
で、これで WIndows 11 へのアップグレードができるようになると思い、 WIndows 10 ゲストを起動して、『設定』->『更新とセキュリティ』->『Windows Update』を開くと、『Windows 11 を実行するための最小システム要件を満たしていません』と表示されたままです。
あれれ?さて、困ったぞ。
やったこと
前述の記事では、この時点でシステム要件が満たされているとなっているのですが、どうも満たされたと判定されていないようです。仕方ないので、 WIndows 11 のシステム要件を改めてチェックします。
Windows 11 の仕様とシステム要件 | Microsoft
CPU は 2 コア以上、メモリは 4GB 以上あることを確認します。
TPM の確認は、『設定』->『更新とセキュリティ』->『デバイスセキュリティ』->『セキュリティプロセッサ』の『セキュリティプロセッサの詳細』を表示させます。
セキュアブートの確認は、『設定』->『更新とセキュリティ』->『デバイスセキュリティ』の『セキュアブート』を表示させます。
このあたりは問題なかったのですが、ストレージ容量として 64GB 必要とありますが、現在のドライブは 62GB ちょっとしかありません。
これ怪しいですね。
ディスク容量の拡張
ということで、 VirtualBox 側の仮想ディスク容量を 80GB に増やしてみます。最初は、 VirtualBox 側での操作になります。メニューの『ファイル』->『ツール』->『仮想メディアマネージャ』より、仮想メディアマネージャを表示します。
複数の仮想ディスクが表示されますが、対象となるゲストが使っているディスクを選択します。画面下部の『属性』タブのサイズに拡張後のサイズを入力して、『適用』ボタンを押します。
ただ、スナップショットがある場合は、これだけでは反映されませんでした。スナップショットを削除してから作業するというのも一つの方法だと思うのですが、今回は、現在実行中のスナップショットおよびその先祖について、仮想的なサイズがすべて拡張後のサイズになるように修正しました。最終的にはこんな感じですね。
これで、起動したら、ゲスト側で拡張したサイズを認識してくれました。
次は、ゲスト側のパーティションサイズも増やします。なお、今回は C ドライブのパーティションの後ろに、回復パーティションがあったので、ちょっと乱暴ですが、ゲスト OS ということもあるし、作業を簡単にするためそこは削除してしまいます。
パーティションの削除は、diskpart を管理者権限で実行して行います。
diskpart の使い方は、下記などを参考にしてください。
GPT の場合、エラーがでることがあるそうで、この場合もエラー対応を行ってから削除しました。
Cドライブがあるパーティションの直後に空パーティションが存在するようになれば、
『ボリュームの拡張』を選択して、実行すればOKです。
これでシステム要件を満たしたかな?と思いきや、やはり判定結果は変わりません。前述の記事のところには、
ここで「このPCでWindows11を実行できます」ではなく、ハードウェア要件を確認する旨のメッセージが出るかもしれませんが、それでも大丈夫です。Windows11アップグレードに進んでください。
とあるので、ダメもとでと思って、 Windows 11 のインストーラを動かしてみたのですが、やはりシステム要件のチェックでひっかかり、先に進めません。
致し方ないので、 VirtualBox そのものを 7.0.8 から 7.0.18 にアップデートしたりもしましたが、同様です。
困った、困った。
解決!
困ったなと思って、ググっていると、
Upgrade from Windows 10 to Windows 11 on VBox7 - virtualbox.org
という記事を見つけました。手順としては、前述の記事とほぼ一緒なのですが、 WIndows 11 のインストールの際に Windows 11 ディスク イメージ (ISO)を使う、とあります。そういや、上記で WIndows 11 のインストールを試したときは、『Windows 11 インストール アシスタント』を使ってましたね。
ということで、藁にもすがる思いで、これを試してみます。
ホスト側で WIndows 11 の ISO イメージをダウンロードして、ゲストの Windows 10 を起動して、光学ドライブに Windows 11 の ISO イメージを割り当てます。で、このドライブ内の setup.exe を動かしてみると、一瞬システムをチェックしますの画面が表示されたのですが、なんと、無事要件のチェックが通りました!
あとは、画面の指示に従ってインストール作業を行ったら、アップグレードできました。いやー、こんなことあるんですね。
余談
なお、最初に Windows 11 のインストーラを起動したときは、下記のような空き容量が不足しているとのメッセージが出てきて、Cドライブでなくてもいいので 10GB程度のストレージをつなげと言われました。
残念ながら、当初の環境では空き容量が無くて、このまま作業を進めることができなかったので、一旦、ゲストをシャットダウンして、 VirtualBox で一時的な仮想ディスクを割り当てて、再度インストール作業を行う、という方法で対応しました(本体の仮想ディスクはなるべく容量を抑えたかったためです)。
もちろん、追加した仮想ディスクはアップデート後に消してます。
まとめ
若干イレギュラーな点もありましたが、無事に VirtualBox で Windows 11 を動かすことができました。たまにしか使いませんが、これで検証環境に困らなくてすみそうです。
2024/8/9 追記1
基本的に、上記で終わりなんですが、仮想マシンの設定を見ていたら、『一般』の『基本』にある『バージョン』が Windows 10 のままになってました。なので、これを Windows 11 に変更します。
あと、仮想マシンの名前と、仮想マシンがあるフォルダの名前、仮想ディスクのファイル名も変更しておきました。
仮想ディスクの名前の変更は、仮想マシンが停止している状態で、 VritualBox の仮想メディアマネージャから、仮想ディスクの『解放』を行い、次に『除去』を行い、 VirtualBox の管理対象外にします。その後、エクスプローラ等でファイル名を変更してから、仮想マシンのストレージに再度アタッチするという作業が必要になります。その点だけ注意が必要です。
これですっきりしますね。
2024/8/9 追記2
あと、別件で気になることがあり、この仮想マシンのパーティションを改めて確認したところ、
のように、Cドライブのパーティションの後ろに、回復パーティションが作られていることに気が付きました。
Windows 11 のアップグレードからしばらく時間が経っているので定かではないのですが、自分で回復パーティションを再作成するようなことなんてやってないので、ひょっとしたら Windiws 11 のインストール時に回復パーティションが作られたのかもしれません。