Comment démarrer une partition Windows physique avec Qemu?


14

J'ai gentoo et windows 7 installés à côté sur mon seul disque dur. Je veux démarrer l'installation de Windows depuis Gentoo via Qemu. Le menu de démarrage fonctionne très bien, mais les écrans bleus de Windows sur moi peu de temps après l'avoir sélectionné.

Comment pourrais-je le faire fonctionner?

(Je suppose que les pilotes Windows manquent pour que le matériel émulé par qemu fonctionne.)


assurez-vous que vous exécutez qemuavec une architecture correcte. De plus, Windows ne démarrera pas s'il attend que le contrôleur HDD soit AHCI et ce n'est pas le cas (et vice versa).
gelraen

L'architecture est bonne, mais je ne pense pas que l'on puisse faire quoi que ce soit à propos de l'ahci puisque qemu ne semble pas le supporter ...
McEnroe


@gelraen le problème est que votre lien décrit le processus inverse de ce que je veux faire. Je ne peux pas risquer de l'essayer sans savoir qu'il y a une chance que ça marche ou au moins qu'il soit 100% réversible.
McEnroe

Ce poste concerne exactement le retour d'AHCI à ATA. Et vous pouvez toujours désactiver AHCI sur une machine physique et la modifier, ou même simplement sauvegarder des fichiers de registre.
gelraen

Réponses:


7

Le démarrage d'une partition Windows7 native et physique peut être effectué de la manière suivante:

  1. Préparez les éléments requis (support d'installation Win7, pilotes Virtio).
  2. Rendez votre disque dur accessible en lecture seule pour votre utilisateur actuel.
  3. Démarrez-le à l'aide de QEMU en mode instantané.

Cela ne change rien sur le disque physique (en fait, il est en lecture seule).


Détails

Préparer les exigences

  1. Préparez une image ISO ou, si vous avez un lecteur à portée de main, le véritable support d'installation pour Win7.
  2. Téléchargez les pilotes Virtio, par exemple ces pilotes depuis Fedora:
    https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

Veillez à utiliser le support d'installation correct correspondant à l'architecture Windows installée (32 bits contre 64 bits). Les commandes suivantes supposent une architecture 64 bits.

Rendre le disque accessible

Cela suppose que votre disque dur est /dev/sdaet a été exécuté en tant que root:

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

Ces modifications seront (probablement) perdues au prochain redémarrage car udev recréera généralement tous les fichiers du périphérique.

Démarrage avec QEMU

  1. Cela suppose à nouveau que votre disque dur l'est /dev/sda. La mise en réseau est désactivée:

    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. Maintenant, démarrez à partir du CD / DVD pour démarrer la récupération Win7, chargez le pilote Virtio et exécutez la commande suivante dans l'invite de commande de récupération. Assurez-vous de remplacer les lettres de lecteur par les lettres appropriées:

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

Drive G:est le lecteur contenant votre installation Win7. Le lecteur E:représente le lecteur de CD-ROM avec les pilotes Virtio.

La dismcommande a été copiée à partir de cette réponse de super utilisateur .

Jetez un œil aux captures d'écran pour plus de détails:

(Je suis désolé, les captures d'écran sont préparées, mais j'ai besoin de 10 points de réputation pour pouvoir les poster :)


La chose de 10 réputation est une douleur. Cela m'a empêché, ainsi que beaucoup d'autres, de fournir le type d'aide que nous voulions. = / Je viens de télécharger le mien à imgur et collé les liens, FYI.
Brent Rittenhouse

Pour être honnête, 10 points ne sont pas trop difficiles à obtenir. Le problème est que je ne trouve plus les captures d'écran. Je suis à peu près sûr qu'ils sont quelque part sur mes disques, mais ...: /
doak

3

D'après ce que j'ai vu dans cet article , vous ne pouvez pas utiliser qemu pour démarrer une installation existante de Windows.

Le principal argument avancé est que, lorsque Windows est installé, la clé de produit est associée à la carte mère de votre ordinateur. Maintenant, lorsque vous essayez d'exécuter Windows à l'aide de qemu, Windows perçoit l'émulateur qemu comme une carte mère différente et pose donc des problèmes.

Référez-vous à l'article pour plus de détails.


2
VirtualBox peut s'annoncer comme une carte mère arbitraire ( forums.virtualbox.org/viewtopic.php?t=33356 ) peut-être que QEMU le peut aussi.
RushPL

1

J'ai réussi à le faire sur archlinux, principalement en adaptant des exemples que d'autres personnes (plus intelligentes) ont fournies dans les blogs.

Version minimale:

installer des 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.

démarrer 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` 

Optimisations des performances

Les drapeaux suivants m'ont également été recommandés et je les ai utilisés avec succès.

# 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)

Téléspectateur

J'ai utilisé spice comme spectateur:

-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 \

Suivi de ce qui suit pour afficher la visionneuse

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

Avertissement du chargeur de démarrage Windows

Enfin, méfiez-vous du chargeur de démarrage Windows si vous utilisez plusieurs disques. J'ai maintenant une installation Windows qui ne démarre pas à moins qu'un deuxième lecteur non-OS soit également présent.

Références

Je souhaite garder mes sources ici - je me souviens au moins que les éléments suivants ont été super utiles:

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

Bonne chance!


Cela a fonctionné pour moi sur arch linux
jameh

0

Voici ce que j'utilise pour un lecteur Windows 10 physique. Notez que dans de nombreux cas, Windows ne démarrera pas si vous n'utilisez pas l'indicateur "-cpu host".

Remplacez simplement / dev / nvme0n1 par votre lecteur, par exemple. / dev / sda ou / dev / sdb

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

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.