vhdx 形式の単一パーティション (フル ディスクではない) のイメージがあります。それらを使用して Hyper-V で VM を作成したいと考えています。イメージはパーティションのみであるため、マシンは起動しません。
ディスク ヘッダーを追加したり、複数の vhdx パーティションをヘッダー付きの単一の vhdx ディスクにマージするにはどうすればよいですか。
注: 使用例は 2 つあります。
- WindowsServerBackup(/WindowsImageBackup) からの vhdx 画像
- Linux ext4 パーティションを dd で lvm スナップショットから作成し、qemu-img で変換しました
ソースサーバーが稼働している必要があるため、パーティションサイズはわかっている
答え1
正式な回答ではありませんが、質問に対する答えは、元のシステム ディスクが MBR か GPT かによって異なると思います。Windows の場合、データ位置の前にブート パーティションを追加し、(MBR ディスク) fixmbr と fixboot を使用してディスクをブート可能にし、パーティションをアクティブにする必要があります (diskpart 経由)。GPT と UEFI の場合は、EFI と MSR パーティションを再作成します。この記事で UEFI についてすべて説明されていると思います。http://woshub.com/how-to-repair-deleted-efi-partition-in-windows-7/
代替オプション 1: VHD に Windows を新規インストールし、Windows パーティションを削除して、パーティションのみのディスクを追加し、ブート プロセスを修復 (スタートアップ修復) すると、問題が解決する場合があります...
代替オプション 2: 直接的な答えというよりは、ちょっとした回避策です... うまく試せたかどうかは覚えていませんが、たぶん...
VM に接続された新しい vhdx を作成し、その上に基本的な Windows をインストールしてから、シャットダウンしてパーティションのみの vhdx を追加ディスクとして接続し、gparted または他のお気に入りの回復 ISO ツール (Hirens 64?) を起動して、パーティションを既存のパーティションの上にコピー (クローン) します。
その場合、Windows セットアップのブート > 修復 > コマンド プロンプトで、bcdedit を使用して、ブートに関するいくつかの問題を解決する必要があります。
代替オプション 3: システム イメージ バックアップの場合は、代わりに、winsetup > repair 経由でコマンド ライン wbadmin ツールを使用して Windows バックアップを復元することもできます。復元先の「物理」ディスク (VM 内にある場合は接続された vhd) の数と、元のディスクと同じかそれ以上の容量が必要であるなどの前提条件を満たす必要があります。たとえ 1 MB しか使用されていない 8 TB ディスクであっても、復元先には 8 TB を超える仮想ディスクが必要になります。
ディスクを変更したり、修復したりするときは、Hyper-V のブート順序を忘れずに確認してください。ブート順序が間違っているために、修復されていないと勘違いしてしまう可能性があります。
Linux についてはよくわかりませんが、Windows の場合は、VM の世代を元のシステム タイプに一致させる必要があります。つまり、Hyper-V では、UEFI 以前のブート (従来の BIOS ベースのシステム) の場合は第 1 世代 VM、UEFI ブート システムの場合は第 2 世代 VM です。