Come avviare una partizione Windows fisica con qemu?


14

Ho gentoo e Windows 7 installati insieme sul mio unico disco rigido. Voglio iniziare l'installazione di Windows da Gentoo tramite Qemu. Il menu di avvio funziona bene ma Windows viene visualizzato su di me subito dopo averlo selezionato.

Come lo farei funzionare?

(Suppongo che a Windows manchino i driver necessari per il funzionamento dell'hardware emulato da qemu.)


assicurati di correre qemucon l'architettura corretta. Inoltre, Windows non si avvia se attende che il controller HDD sia AHCI e non lo è (e viceversa).
Gelraen,

L'architettura è buona, ma non credo che ci sia qualcosa che si possa fare per l'ahci poiché il qemu non sembra supportarlo ...
McEnroe,


@gelraen il problema è che il tuo link descrive il processo inverso di quello che voglio fare. Non posso rischiare di provarlo senza sapere che c'è una possibilità che funzioni o che sia reversibile al 100%.
McEnroe,

Quel post riguarda esattamente il ritorno da AHCI ad ATA. E puoi sempre disattivare AHCI sul computer fisico e cambiarlo nuovamente, o anche semplicemente eseguire il backup dei file di registro.
Gelraen,

Risposte:


7

L'avvio di una partizione Windows7 fisica nativa può essere eseguito in questo modo:

  1. Preparare i requisiti (supporto di installazione Win7, driver Virtio).
  2. Rendi il tuo disco rigido accessibile in sola lettura per l'utente corrente.
  3. Avviarlo utilizzando QEMU in modalità snapshot.

Questo non cambia nulla sull'unità fisica (in realtà è di sola lettura).


Dettagli

Preparare i requisiti

  1. Preparare un ISO o, se si dispone di un'unità a portata di mano, il vero supporto di installazione per Win7.
  2. Scarica i driver Virtio, ad esempio questi driver da Fedora:
    https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

Assicurarsi di utilizzare il supporto di installazione corretto corrispondente all'architettura Windows installata (32 bit contro 64 bit). I seguenti comandi presuppongono un'architettura a 64 bit.

Rendi accessibile il disco

Ciò presuppone che il disco rigido sia /dev/sdaed è stato eseguito come root:

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

Queste modifiche (probabilmente) andranno perse al prossimo riavvio poiché udev di solito ricrea tutti i file del dispositivo.

Avvio con QEMU

  1. Ciò presuppone nuovamente che il disco rigido sia /dev/sda. La rete è disabilitata:

    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. Ora avvia da CD / DVD per avviare il ripristino di Win7, carica il driver Virtio ed esegui il seguente comando nel prompt dei comandi di recupero. Assicurarsi di sostituire le lettere di unità con quelle appropriate:

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

Drive G:è l'unità contenente l'installazione di Win7. Drive E:rappresenta l'unità CDROM con i driver Virtio.

Il dismcomando è stato copiato da questa risposta del superutente .

Dai un'occhiata agli screenshot per i dettagli:

(Mi dispiace, gli screenshot sono pronti, ma ho bisogno di 10 reputazione per poterli pubblicare :)


La cosa della 10 reputazione è un dolore. Mi ha impedito, e molti altri, di dare il tipo dettagliato di aiuto che volevamo. = / Ho appena caricato il mio su imgur e incollato i link, FYI.
Brent Rittenhouse,

Ad essere onesti, 10 punti non sono troppo difficili da ottenere. Il problema è che non riesco più a trovare gli screenshot. Sono abbastanza sicuro che siano da qualche parte sui miei dischi, ma ...: /
doak

3

Da quello che ho visto in questo post , non puoi usare qemu per avviare un'installazione esistente di Windows.

L'argomento principale è che, quando è installato Windows, il codice Product Key è associato alla scheda madre del computer. Ora, quando si tenta di eseguire Windows utilizzando qemu, Windows percepisce l'emulatore qemu come una scheda madre diversa e quindi presenta problemi.

Fare riferimento al post per maggiori dettagli.


2
VirtualBox può pubblicizzarsi come scheda madre arbitraria ( forums.virtualbox.org/viewtopic.php?t=33356 ), forse anche QEMU può farlo .
RushPL,

1

Sono riuscito a farlo su archlinux, principalmente adattando esempi che altre persone (più intelligenti) hanno fornito nei blog.

Versione minima:

installare 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.

avvia 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` 

Ottimizzazioni delle prestazioni

Anche le seguenti bandiere mi sono state consigliate e le sto usando con successo.

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

Spettatore

Ho usato Spice come visualizzatore:

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

Seguito da quanto segue per visualizzare il visualizzatore

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

Avviso Bootloader di Windows

Infine, fai attenzione al bootloader di Windows se stai utilizzando più dischi. Ora ho un'installazione di Windows che non si avvia a meno che non sia presente anche una seconda unità non OS.

Riferimenti

Mi piacerebbe avere le mie fonti qui - ricordo che almeno le seguenti sono state di grande aiuto:

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

In bocca al lupo!


Questo ha funzionato per me su arch linux
jameh il

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.