今回は、筆者のテスト環境で行った「物理−仮想(Physical To Virtual、P2V)変換」の事例を紹介します。起動しなくなってしまった、古いノートPCで動いていた「Windows 8.1」を、Hyper-Vの仮想マシンに変換する事例です。少しばかり環境が特異ですが、どなたかの参考になるかもしれません。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
2020年夏、古いバージョンのWindowsを確認用に維持するためだけに残していた、古いノートPCが完全に逝ってしまいました。液晶が何も映さなくなった後、外部ディスプレイでごまかして利用していましたが、その数日後、Windows Updateのために再起動をしたところ、二度と戻ってくることはありませんでした。
このPCでは2020年初めまで「Windows 7 Ultimate Service Pack 1(SP1)」(パッケージ製品として購入した正規ライセンス、当初はプリインストールの「Windows Vista」とのデュアルブート構成にしていました)、「Windows 8.1 Enterprise」(Visual Studioサブスクリプションのテスト/開発用途用)、「Windows Server 2016」ドメインコントローラー(同じくテスト/開発用)が動いていました。Windows Updateのためにそれぞれのインスタンスを毎月1回起動するくらいで、ほとんどは電源オフの状態でした。
2020年1月のWindows 7 SP1のサポート終了を受け、Windows 7環境は2月に削除し、空いた領域はWindows 8.1のパーティションの拡張に使用していました。その際、唯一残っていた「Windows XP」環境(Windows Virtual PCの「XP Mode」として)も削除してしまったため、本連載第172回ではWindows XPをHyper-Vの仮想マシンに新規インストールして再現しました。このノートPCが完全に使用不能になったのです。
古いPCにマルチブート環境を増やしては削除してきた環境のため、図1のようにパーティション構成は少し複雑です。光学ドライブ用トレイに差し込むタイプのIDE HDDを増設し、Windows 8.1はそのディスク上の1パーティションに格納されています。
VHDネイティブブート環境として配置していたVHDXファイルについては、既にHyper-V仮想マシンに移行済みです。その手順をお知りになりたい方は、以下の筆者の個人ブログをご覧ください。今回は、IDE HDD内のWindows 8.1環境をそのままHyper-Vの仮想マシンに移行してみます。
WindowsのインストールをP2V変換で仮想化するには、例えば「Disk2vhd」といったツールがありますが、今回は使用しません。問題のノートPCは動かないので、Disk2vhdを使うことができないからです。代わりに、IDE-USB変換アダプターや外付けHDDケースとHyper-Vの標準機能を使用します。筆者は、2.5インチ、3.5インチ、SATA、IDEのHDDやSSD、光学ドライブをUSB 3.0に変換できるアダプターを持っているため、これを利用しました(写真1)。
ノートPCから取り出したHDDをUSBケーブルでHyper-Vが有効な「Windows 10」のPCに接続したら、「Hyper-Vマネージャー」から「仮想ハードディスクの新規作成ウィザード」を開始し、ディスクの形式(筆者はVHDXを選択)や種類(筆者は容量可変を選択)、パスを指定したら「ディスクの構成」のページで「指定した物理ディスクの内容をコピーする」を選択して、USB経由で接続したHDDを選択します。少し時間はかかりますが、これだけで簡単に物理ディスクを仮想ハードディスクに変換できます(画面1)。
HDDを仮想ハードディスク(VHDまたはVHDX)に変換したら、仮想マシンを新規作成してその仮想ハードディスクをOSディスクとして割り当てれば、通常は完了です。Windows Vista以降はハードウェアの変更を自動認識して、初回起動時に調整してくれます。
しかし、今回は追加の手順が必要です。なぜなら、変換後の仮想ハードディスクはOSパーティションのみで、ブート環境やブート構成情報(BCD)を含むシステムパーティションが存在しないからです。
今回は壊れたノートPCがBIOS/MBRシステムであるため、「仮想マシンの新規作成ウィザード」では、第1世代仮想マシンとして作成します(画面2)。なお、UEFI/GPTシステムの場合は第2世代仮想マシンとして作成する必要があります。
「仮想マシンの新規作成ウィザード」の「仮想ハードディスクの接続」ページでは、物理から変換した仮想ハードディスクではなく、1GB程度の小さな仮想ハードディスクを新規作成して割り当てるように構成します(画面3)。このディスクにシステムパーティションを作成し、ブート環境を構成します。
仮想マシンを作成したら、仮想マシンの設定を開き、IDEコントローラー(UEFI/GPTシステム用の第2世代仮想マシンの場合はSCSIコントローラー)に2台目のハードドライブとして物理から変換した仮想ハードディスクを割り当てます(画面4)。
仮想マシンにWindows 8.1(またはWindows 10)のインストールディスクまたはISOイメージを割り当て、仮想マシンを起動します。「Windowsセットアップ」が起動したらインストールを開始せずに、[Shift]+[F10]キーを押してコマンドプロンプトを開きます。
コマンドプロンプトを開いたら、物理から変換した仮想ハードディスクのドライブを確認し(この例では「C:」)、次の「DISKPART」コマンドと「BCDBOOT」コマンドを実行してシステムパーティションを作成、フォーマットし、ブート構成を書き込んでシャットダウンします(画面5)。
X:\Sources> diskpart DISKPART> select disk 0 DISKPART> clean DISKPART> create partition primary size=100 DISKPART> format quick fs=ntfs label="System" DISKPART> assign letter="S" DISKPART> active DISKPART> exit X:\Sources> bcdboot C:\Windows /l ja-jp /s S: X:\Sources> wpeutil shutdown
ちなみに、UEFI/GPTシステム用の第2世代仮想マシンの場合は、次のように実行します。
X:\Sources> diskpart DISKPART> select disk 0 DISKPART> clean DISKPART> convert gpt DISKPART> create partition efi size=100 DISKPART> format quick fs=fat32 label="System" DISKPART> assign letter="S" DISKPART> create partition msr size=16 DISKPART> exit X:\Sources> bcdboot C:\Windows /l ja-jp /s S: X:\Sources> wpeutil shutdown
仮想マシンからインストールディスク(またはISOイメージ)を取り出し、仮想マシンを起動すると、Windows 8.1が起動します(画面6)。後は、仮想マシン環境では不要なドライバやアプリをアンインストールすれば完了です。もちろん、Windows Updateで最新状態に更新することも忘れずに。
ノートPCのHDDは再利用できるのでフォーマットして保管しておくとして、ノートPC本体を処分しなければなりません。最近では無料(着払い)や送料のみで引き取ってくれるサービスや、回収サービスがあります。本連載第170回では、古いデスクトップPCを着払いで処分しました。今回は、Y家電量販店に持ち込んだところ、無料で引き取ってくれました(身分証明など追加の手続きをすれば100円で買い取ってくれるそうです)。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2019-2020)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.