原料: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イメージが含まれています。
想像する:
- Windowsでは、disk2vhdツールを使用して既存のレガシーW7システムをVMイメージに変換します。結果w7.vhdxイメージファイル✓(注:このイメージはすでにQEMUおよびSuper Grub2ディスクから起動できます。)
- qemu-imageを使用してw7.vhdxをqcow2形式に変換✓
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 リカバリのためのシステムブートの使用- 再起動
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
- Escキーを押してDVDドライブのSuper Grub2ディスクから起動します。 ✓ => Windowsシステムを起動でき、すべてが正常です。
- 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からダウンロード)。
- GRUB2メニューから既存のレガシーW7システムを起動します。
- DISK2VHDツールをダウンロードしてください。変換を開始する前に、7Zipまたは同様のソフトウェアがWindowsにインストールされていることを確認するのが最善です。
- DISK2VHDに既存のシステムを変換します(通常のWindows混乱を事前にクリーンアップする必要があるかもしれません)。これにより、.VHDX(私の場合はw7.vhdx)ファイルが作成されます。 (注:このイメージはすでにQEMUおよびSuperGrub2ディスクから起動できます。)
- qemu-image を使用して w7.vhdx を qcow2 形式 (または必要な他の形式) に変換します。
- 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 を押して起動メニューに入ります。 - DVDから起動を選択します。 SuperGRUBメニューが表示され、検索されたWindows(私の場合は2つ)が一覧表示されます。 Windowsシステムを選択して実行します。今、すべてがうまくいくでしょう。しかし、最初の起動は遅く、Windowsは複数のデバイスドライバをインストールします。再起動する前にこれを実行してください!
- QEMU Windowsシステムの画面解像度は不都合ではない可能性が高いので、ニーズに合わせて調整してください。次に、コマンドプロンプトを開きます
bootrec.exe /?
。 Windowsでは、利用可能なbootrecコマンドがないと言う可能性があります。そうでなくbootrecのヘルプが表示された場合は、以下のステップ10に進んでください。 - Windows DVDが必要です(bootrec.exeはMicrosoftからダウンロードできませんが、Windows 7 ISOで利用可能です)。 QEMUモニターからSuperGRUBディスクを取り出し、Windows DVDに変更します。
- 7Zip(またはWIMファイルを読むことができる他のツール)を使用して\ sources \ boot.wimを開きます。 Bootrec.exe は \1\Windows\System32 にあります。解凍してC:ドライブに保存します。
- Windowsのコマンドプロンプトで実行し、デバイスドライバのインストールが完了したことを
bootrec /fixmbr
確認bootrec /fixboot
し、最後にコマンドshutdown /s /t 0
プロンプトでシステムをシャットダウンします(そうしないと、システムが休止状態になる可能性があります)。
これです。元の設定を保存するには、QEMUオーバーレイイメージを使用して仮想W7を起動するのが最善です。