Wie starte ich eine physische Windows-Partition mit qemu?

11

Ich habe Gentoo und Windows 7 neben auf meiner einzigen Festplatte installiert. Ich möchte meine Windows-Installation von Gentoo über Qemu starten. Das Startmenü funktioniert einwandfrei, aber Windows-Bluescreens werden kurz nach der Auswahl angezeigt.

Wie würde ich es zum Laufen bringen?

(Ich gehe davon aus, dass in Windows Treiber fehlen, die erforderlich sind, damit die qemu-emulierte Hardware funktioniert.)

McEnroe
quelle
Stellen Sie sicher, dass Sie qemumit der richtigen Architektur arbeiten. Außerdem kann Windows nicht gestartet werden, wenn darauf gewartet wird, dass der Festplattencontroller AHCI ist und dies nicht der Fall ist (und umgekehrt).
Gelraen
Architektur ist gut, aber ich glaube nicht, dass man etwas gegen das Ahci tun kann, da Qemu es nicht zu unterstützen scheint ...
McEnroe
Versuchen Sie dies: avforums.com/forums/windows-7/…
gelraen
@gelraen das problem ist, dass dein link den umgekehrten prozess dessen beschreibt, was ich tun möchte. Ich kann es nicht riskieren, es einfach auszuprobieren, ohne zu wissen, dass es eine Chance gibt, dass es funktioniert, oder zumindest, dass es zu 100% reversibel ist.
McEnroe
In diesem Beitrag geht es genau darum, von AHCI zu ATA zurückzukehren. Sie können AHCI auf physischen Computern jederzeit deaktivieren und wieder ändern oder einfach nur Registrierungsdateien sichern.
Gelraen

Antworten:

5

Das Booten einer nativen, physischen Windows7-Partition kann folgendermaßen erfolgen:

  1. Bereiten Sie die erforderlichen Informationen vor (Win7-Installationsmedien, Virtio-Treiber).
  2. Machen Sie Ihre Festplatte für Ihren aktuellen Benutzer schreibgeschützt zugänglich.
  3. Starten Sie es mit QEMU im Snapshot-Modus.

Dies ändert nichts am physischen Laufwerk (tatsächlich ist es schreibgeschützt).


Einzelheiten

Bereiten Sie die Voraussetzungen vor

  1. Bereiten Sie eine ISO oder, wenn Sie ein Laufwerk zur Hand haben, das eigentliche Installationsmedium für Win7 vor.
  2. Laden Sie Virtio-Treiber herunter, z. B. diese Treiber von Fedora:
    https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

Achten Sie darauf, das richtige Installationsmedium zu verwenden, das der installierten Windows-Architektur entspricht (32 Bit gegenüber 64 Bit). Die folgenden Befehle setzen eine 64-Bit-Architektur voraus.

Machen Sie die Festplatte zugänglich

Dies setzt voraus, dass Ihre Festplatte /dev/sdaals Root ausgeführt wird und ausgeführt wurde:

   chmod g-w /dev/sda
   chgrp $USER /dev/sda

Diese Änderungen gehen (wahrscheinlich) beim nächsten Neustart verloren, da udev normalerweise alle Gerätedateien neu erstellt.

Booten mit QEMU

  1. Dies setzt wiederum voraus, dass Ihre Festplatte ist /dev/sda. Netzwerk ist deaktiviert:

    qemu-system-x86_64 -snapshot -m 3G -enable-kvm -usbdevice tablet \
    -drive file=/dev/sda,if=virtio \
    -drive file=<win7-installation-media> \
    -drive file=<virtio-driver-media>,media=cdrom -boot d \
    -net none
    
  2. Starten Sie nun von CD / DVD, um die Win7-Wiederherstellung zu starten, laden Sie den Virtio-Treiber und führen Sie den folgenden Befehl an der Eingabeaufforderung für die Wiederherstellung aus. Stellen Sie sicher, dass Sie die Laufwerksbuchstaben durch die richtigen ersetzen:

    dism /image:g:\ /add-driver /driver:e:\viostor\w7\amd64
    

Laufwerk G:ist das Laufwerk, das Ihre Win7-Installation enthält. Laufwerk E:repräsentiert das CD-ROM-Laufwerk mit den Virtio-Treibern.

Der dismBefehl wurde aus dieser Super User-Antwort kopiert .

Schauen Sie sich die Screenshots für Details an:

(Es tut mir leid, Screenshots sind vorbereitet, aber ich brauche 10 Ruf, um sie posten zu können :)

doak
quelle
Die 10 Reputationssache ist ein Schmerz. Es hat mich und viele andere davon abgehalten, die detaillierte Art von Hilfe zu geben, die wir wollten. = / Ich habe gerade meine auf imgur hochgeladen und die Links eingefügt, FYI.
Brent Rittenhouse
Um ehrlich zu sein, sind 10 Punkte nicht allzu schwer zu bekommen. Das Problem ist, dass ich die Screenshots nicht mehr finden kann. Ich bin mir ziemlich sicher, dass sie irgendwo auf meinen Festplatten sind, aber ...: /
doak
4

Nach dem , was ich in diesem Beitrag gesehen habe , können Sie qemu nicht verwenden, um eine vorhandene Windows-Installation zu starten.

Das Hauptargument ist, dass bei der Installation von Windows der Product Key dem Motherboard Ihres Computers zugeordnet ist. Wenn Sie nun versuchen, Windows mit qemu auszuführen, erkennt Windows den qemu-Emulator als ein anderes Motherboard und gibt daher Probleme.

Weitere Informationen finden Sie im Beitrag .

Hashken
quelle
2
VirtualBox kann sich als beliebiges Motherboard bewerben ( forums.virtualbox.org/viewtopic.php?t=33356 ), vielleicht auch QEMU.
RushPL
0

Ich habe es unter Archlinux geschafft, hauptsächlich durch die Anpassung von Beispielen, die andere (intelligentere) Personen in Blogs bereitgestellt haben.

Minimale Version:

installiere deps

sudo pacman -S qemu   # qemu itself
sudo pacman -S ovmf   # intel EFI driver
cp /usr/share/ovmf/x64/OVMF_CODE.fd bios.bin   # copy OVMF_CODE.fd to bios.bin somewhere. It MUST be renamed.

starte qemu

qemu-system-x86_64 \
    -enable-kvm                                   `# enable KVM optimiations` \
    -L .                                          `# dir with bios.bin` \
    --bios bios.bin                               `# bios.bin itself` \
    -m 8G                                         `# provide reasonable amount of ram` \
    -cpu host                                     `# match the CPU type exactly` \
    -drive file=/dev/sda,format=raw,media=disk    `# load raw HDD` 

Leistungsoptimierungen

Die folgenden Flags wurden mir ebenfalls empfohlen und ich habe sie erfolgreich verwendet.

# emulate exact host cpu,
# enable hyper-v enlightenments
-enable-kvm
-cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time
-machine type=pc,accel=kvm

# use all available CPU cores
-smp $(nproc)

Zuschauer

Ich habe Gewürz als Zuschauer verwendet:

-daemonize  `# don't start monitor, we connect using RDP` \
-vga qxl \
-spice port=5930,disable-ticketing \
-device virtio-serial \
-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
-chardev spicevmc,id=spicechannel0,name=vdagent \

Anschließend wird der Viewer angezeigt

spicy -h 127.0.0.1 -p 5930 & disown spicy;  # spice-gtk

Windows Bootloader Warnung

Achten Sie schließlich auf den Windows-Bootloader, wenn Sie mehrere Festplatten verwenden. Ich habe jetzt eine Windows-Installation, die nicht startet, es sei denn, ein zweites Nicht-Betriebssystem-Laufwerk ist ebenfalls vorhanden.

Verweise

Ich wünschte, ich hätte meine Quellen hier aufbewahrt - ich erinnere mich, dass zumindest die folgenden sehr hilfreich waren:

https://wiki.qemu.org/Main_Page https://qemu.weilnetz.de/doc/qemu-doc.html https://wiki.archlinux.org/index.php/QEMU https: //wiki.gentoo .org / wiki / QEMU https://www.suse.com/documentation/sles11/book_kvm/data/part_2_book_book_kvm.html

Viel Glück!

willjp
quelle
Dies funktionierte für mich unter Arch Linux
Jameh
0

Folgendes verwende ich für ein physisches Windows 10-Laufwerk. Beachten Sie, dass Windows in vielen Fällen nicht gestartet werden kann, wenn Sie das Flag "-cpu host" nicht verwenden.

Ersetzen Sie einfach / dev / nvme0n1 durch Ihr Laufwerk, z. / dev / sda oder / dev / sdb

qemu-system-x86_64 --enable-kvm -cpu host -smp 8 -m 8192 -drive format = raw, file = / dev / nvme0n1

Quelle: http://realtechtalk.com/QEMUKVM_wont_boot_Windows_2016_or_2019_server_on_an_Intel_Core_i3_-2221-articles

Areeb Soo Yasir
quelle