¿Cómo arrancar una partición física de Windows con qemu?


14

Tengo instalado Gentoo y Windows 7 junto a mi único disco duro. Quiero iniciar mi instalación de Windows desde gentoo a través de qemu. El menú de arranque funciona bien, pero Windows aparece en azul poco después de seleccionarlo.

¿Cómo lo haría funcionar?

(Asumo que a Windows le faltan controladores necesarios para que el hardware emulado qemu funcione).


asegúrese de ejecutar qemucon la arquitectura correcta. Además, Windows no se iniciará si espera que el controlador HDD sea AHCI y no lo sea (y viceversa).
Gelraen

La arquitectura es buena, pero no creo que haya nada se puede hacer acerca de la AHCI desde qemu no parece apoyarlo ...
McEnroe


@gelraen el problema es que su enlace describe el proceso inverso de lo que quiero hacer. No puedo arriesgarme a probarlo sin saber que existe la posibilidad de que funcione o al menos que sea 100% reversible.
McEnroe

Esa publicación es exactamente sobre volver de AHCI a ATA. Y siempre puede apagar AHCI en la máquina física y volver a cambiarlo, o incluso simplemente hacer una copia de seguridad de los archivos de registro.
gelraen

Respuestas:


7

Esto se puede iniciar desde una partición nativa física de Windows7:

  1. Prepare los requisitos (medios de instalación Win7, controladores Virtio).
  2. Haga que su disco duro sea accesible de solo lectura para su usuario actual.
  3. Arranca usando QEMU en modo de instantánea.

Esto no cambia nada en la unidad física (de hecho, es de solo lectura).


Detalles

Preparar requisitos

  1. Prepare un ISO o, si tiene una unidad a mano, el medio de instalación real para Win7.
  2. Descargue los controladores Virtio, por ejemplo, estos controladores de Fedora:
    https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

Tenga cuidado de utilizar los medios de instalación correctos que coincidan con la arquitectura de Windows instalada (32 bits frente a 64 bits). Los siguientes comandos suponen una arquitectura de 64 bits.

Hacer accesible el disco

Esto supone que su disco duro es /dev/sday se ha ejecutado como root:

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

Estos cambios (probablemente) se perderán en el próximo reinicio ya que udev generalmente recreará todos los archivos del dispositivo.

Arranque con QEMU

  1. Esto nuevamente supone que su disco duro es /dev/sda. La red está deshabilitada:

    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. Ahora inicie desde CD / DVD para iniciar la recuperación de Win7, cargue el controlador Virtio y ejecute el siguiente comando en el símbolo del sistema de recuperación. Asegúrese de reemplazar las letras de unidad con las correctas:

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

Unidad G:es la unidad que contiene su instalación Win7. La unidad E:representa la unidad de CDROM con los controladores Virtio.

El dismcomando se copió de esta respuesta de Superusuario .

Echa un vistazo a las capturas de pantalla para más detalles:

(Lo siento, las capturas de pantalla están preparadas, pero necesito 10 reputación para poder publicarlas :)


Lo de 10 reputación es un dolor. Me impidió a mí, y a muchos otros, dar el tipo de ayuda detallada que queríamos. = / Acabo de subir el mío a imgur y pegué los enlaces, para tu información.
Brent Rittenhouse

Para ser sincero, 10 puntos no son demasiado difíciles de obtener. El problema es que ya no puedo encontrar las capturas de pantalla. Estoy bastante seguro de que están en algún lugar de mis discos, pero ...: /
doak

3

Por lo que vi en esta publicación , no puede usar qemu para iniciar una instalación existente de Windows.

El argumento principal que se da es que, cuando se instala Windows, la clave del producto está asociada con la placa base de su computadora. Ahora, cuando intenta ejecutar Windows usando qemu, Windows percibe el emulador qemu como una placa base diferente y, por lo tanto, genera problemas.

Consulte la publicación para más detalles.


2
VirtualBox puede anunciarse como placa base arbitraria ( foros.virtualbox.org/viewtopic.php?t=33356 ) tal vez QEMU también pueda.
RushPL

1

He logrado hacer esto en archlinux, principalmente adaptando ejemplos que otras personas (más inteligentes) proporcionaron en blogs.

Versión mínima:

instalar departamentos

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.

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

Optimizaciones de rendimiento

También me recomendaron las siguientes banderas, y las he estado usando con éxito.

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

Espectador

Usé spice como espectador:

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

Seguido de lo siguiente para mostrar el visor

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

Advertencia del cargador de arranque de Windows

Finalmente, tenga cuidado con el gestor de arranque de Windows si está utilizando múltiples discos. Ahora tengo una instalación de Windows que no arrancará a menos que también haya una segunda unidad que no sea del sistema operativo.

Referencias

Desearía mantener mis fuentes aquí. Recuerdo que al menos los siguientes fueron muy útiles:

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

¡Buena suerte!


Esto funcionó para mí en
Arch

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.