仮想化されたWindows 7は起動しません。

仮想化されたWindows 7は起動しません。

原料:LinuxMint(メインシステム)や以前のWindows 7イメージを含む他のオペレーティングシステムを含む実行システム。システムは問題なくGRUB2を介してUbuntuとWindowsで起動します。

以下はシステムのパーティションマップです。

(parted) print                                                            
Modell: ATA HGST HTS721010A9 (scsi)
Festplatte  /dev/sda:  1000GB
Sektorgröße (logisch/physisch): 512B/4096B
Partitionstabelle: msdos
Disk-Flags: 

Nummer  Anfang  Ende   Größe   Typ       Dateisystem     Flags
 1      1049kB  252GB  252GB   primary   ntfs            boot
 4      252GB   306GB  54,6GB  extended
 6      252GB   273GB  21,0GB  logical   ext4
 5      273GB   306GB  33,6GB  logical   linux-swap(v1)
 2      306GB   359GB  52,4GB  primary   ext4
 3      359GB   983GB  624GB   primary   ext4

パーティション1には、仮想ボリュームに変換する古いW7イメージが含まれています。

想像する:

  1. Windowsでは、disk2vhdツールを使用して既存のレガシーW7システムをVMイメージに変換します。結果w7.vhdxイメージファイル✓(注:このイメージはすでにQEMUおよびSuper Grub2ディスクから起動できます。)
  2. qemu-imageを使用してw7.vhdxをqcow2形式に変換✓
  3. qemu-system-x86_64 -enable-kvm -m 4096M -hda 'w7.qcow2' -vga virtio -usb -device usb-tablet -device usb-host,bus=usb-bus.0,hostbus=1,hostport=1.2 -cdrom /dev/sr0❌ => w7.qcow2 起動 => grub リカバリのためのシステムブートの使用
  4. 再起動qemu-system-x86_64 -enable-kvm -m 4096M -hda 'w7.qcow2' -vga virtio -usb -device usb-tablet -device usb-host,bus=usb-bus.0,hostbus=1,hostport=1.2 -cdrom /dev/sr0 -boot menu=on
  5. Escキーを押してDVDドライブのSuper Grub2ディスクから起動します。 ✓ => Windowsシステムを起動でき、すべてが正常です。
  6. Live StickまたはUbuntu DVDから起動しようとしている❌ =>システムがハングアップしました(w7.qcow2からW7システムに直接起動できるようにGRUB2を再インストールしました)

観察結果:

明らかにdisk2vhdはディスクのパーティションレイアウトを再現します。 Super Grubはドライブの生のパーティション(上記参照)をリストし、そのうち「ファイルシステムが検出されない」が唯一のパーティションです。例外正しいファイルシステムの種類NTFSと正しいサイズのコピーされたW7パーティション。

分離された:

(parted) print disk                                                       
Fehler: W7.VHDX: unbekannte Partitionstabelle

ディスク:

Festplatte W7.VHDX: 226,3 GiB, 242934087680 Bytes, 474480640 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes

質問:QEMUがWindowsシステムから直接起動するか、Windowsをプライマリシステムとして使用するGRUBブートメニューから起動できるようにw7.qcow2の起動を変更するには?

コメント:この問題を解決するためにkpartx、losstup、および/dev/loop0を試してみましたが、役に立ちませんでした。

答え1

以下は、仮想化されたWindows 7システムから直接起動できるQEMU / KVM用の起動可能なVMを作成する手順です。私のシステムはGRUB2をブートマネージャとして使用します(システムが異なる場合は、必要に応じて以下を調整する必要があります)。

前提条件:Windows 7 DVD(利用可能なISOイメージがない場合はMicrosoftからISOイメージをダウンロードする)、Windowsライセンスキー、CDのSuperGRUB2ディスク(www.supergrubdisk.orgからダウンロード)。

  1. GRUB2メニューから既存のレガシーW7システムを起動します。
  2. DISK2VHDツールをダウンロードしてください。変換を開始する前に、7Zipまたは同様のソフトウェアがWindowsにインストールされていることを確認するのが最善です。
  3. DISK2VHDに既存のシステムを変換します(通常のWindows混乱を事前にクリーンアップする必要があるかもしれません)。これにより、.VHDX(私の場合はw7.vhdx)ファイルが作成されます。 (注:このイメージはすでにQEMUおよびSuperGrub2ディスクから起動できます。)
  4. qemu-image を使用して w7.vhdx を qcow2 形式 (または必要な他の形式) に変換します。
  5. DVDドライブのSuperGRUB2ディスクを使用してコマンドでw7.qcow2を起動しますqemu-system-x86_64 -enable-kvm -m 4096M -drive file=w7.qcow2 -vga virtio -cdrom /dev/sr0 -boot menu=on(これはw7.qcow2があるディレクトリでコマンドを実行するとします。そうしないと、フルパスを提供します(例:/home/W7/w7.qcow2 )私の場合は、lsblkが知らせていない場合に備えて、CDROMデバイスに別の名前があるかもしれません。 Alt-Del) ESC を押して起動メニューに入ります。
  6. DVDから起動を選択します。 SuperGRUBメニューが表示され、検索されたWindows(私の場合は2つ)が一覧表示されます。 Windowsシステムを選択して実行します。今、すべてがうまくいくでしょう。しかし、最初の起動は遅く、Windowsは複数のデバイスドライバをインストールします。再起動する前にこれを実行してください!
  7. QEMU Windowsシステムの画面解像度は不都合ではない可能性が高いので、ニーズに合わせて調整してください。次に、コマンドプロンプトを開きますbootrec.exe /?。 Windowsでは、利用可能なbootrecコマンドがないと言う可能性があります。そうでなくbootrecのヘルプが表示された場合は、以下のステップ10に進んでください。
  8. Windows DVDが必要です(bootrec.exeはMicrosoftからダウンロードできませんが、Windows 7 ISOで利用可能です)。 QEMUモニターからSuperGRUBディスクを取り出し、Windows DVDに変更します。
  9. 7Zip(またはWIMファイルを読むことができる他のツール)を使用して\ sources \ boot.wimを開きます。 Bootrec.exe は \1\Windows\System32 にあります。解凍してC:ドライブに保存します。
  10. Windowsのコマンドプロンプトで実行し、デバイスドライバのインストールが完了したことをbootrec /fixmbr確認bootrec /fixbootし、最後にコマンドshutdown /s /t 0プロンプトでシステムをシャットダウンします(そうしないと、システムが休止状態になる可能性があります)。

これです。元の設定を保存するには、QEMUオーバーレイイメージを使用して仮想W7を起動するのが最善です。

ありがとうニコライそしてブライアンbootrecにお勧めです。

関連情報