¿Cómo usar una partición real con Windows 7 instalado, en un virtualbox vm?

37

Mi Ubuntu 12.04 está instalado /dev/sda5 y Windows 7 está encendido /dev/sda1. Cuando estoy ejecutando Ubuntu, me gustaría usar Virtualbox para ejecutar Windows 7 en una VM. La partición de Windows 7 es de 1 TB y está medio llena, es decir, grande, por lo que no quiero copiarla en un disco duro virtual.

He leído que es posible usar un disco duro real para una VM Virtualbox, pero las diversas instrucciones que he encontrado difieren entre sí, y parece que no puedo hacer que funcione. ¿Alguien sabe una manera de hacerlo funcionar en Ubuntu 12.04 y Virtualbox 2.1.12_Ubuntu r77245 (el último Ubuntu instaló los repositorios)?

Publique cómo funciona para usted, ya que quiero volver a intentar cualquier método que pueda funcionar.

Jazz
fuente
¿Por qué su partición MSWIN es 1TiB? Aunque, no es una solución completa: si es posible, mueva todo lo que no necesita estar allí (datos ... ¿archivos multimedia?) Y luego cambie el tamaño de la partición, lo que facilitará cualquier enfoque. Si desea seguir la ruta de la imagen, borrar y reducir esa partición le dejará suficiente espacio para crear una imagen completa de la nueva partición más pequeña. :-)
Alastair

Respuestas:

27

El comando que quieres es

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1

Esto creará un archivo de disco virtual VMDK especial (Win7.vmdk) que en realidad es un puntero a la partición del disco host /dev/sda1.

En teoría, puede usar esto como el archivo de disco para que una VM se ejecute directamente desde la partición de disco real, pero ...

  • (a) Nunca he intentado esto, así que no sé qué tan confiable es
  • (b) puede tener problemas con la activación de Windows dependiendo de su clave de licencia y si Windows decide que el 'hardware' detectado ha cambiado significativamente
StarNamer
fuente
Gracias. Ni siquiera pensé en el problema de activación. Eso seguramente pondrá fin a mis planes.
Jazz
1
Además, incluso si funcionó (lo cual dudo), puede dañar seriamente su Windows cuando se ejecuta desde el arranque y desde la VM.
Takkat
@ ubnewbie2: Probablemente solo probaría esto como un experimento y / o al usar algún tipo de clave de Licenciamiento por volumen y probablemente lo vería como una operación unidireccional; es decir, tendrías más dificultades para intentar revertirlo. De hecho, ejecuto Windows 7 y uso una VM VirtualBox con Ubuntu, a menudo en modo de pantalla completa, por lo que la PC parece solo ejecutar Linux, y estaría más seguro de ejecutar Ubuntu desde una partición de disco sin formato.
StarNamer
FYI, ahora he intentado esto, a la inversa. Necesitaba cambiar una máquina que ejecuta Ubuntu a Win 7, por lo que liberé algo de espacio al cambiar el tamaño de las particiones y crear una nueva e instalé Win 7. Esto reemplazó grub2 con el cargador de arranque de Windows, así que instalé VirtualBox y creé una nueva VM, con un disco virtual mínimo para reservar, que luego utiliza las particiones 'en bruto' existentes para ejecutar. Funciona bien, aunque un poco lento debido a la memoria reducida y solo ve 1 núcleo de CPU (en lugar de 4).
StarNamer
-particiones al final, una lista de las particiones que desea que "box" virtual vea (no el número de partición que desea usar) VBoxManage internalcommands --helple mostrará otras cosas que puede hacer con los comandos internos, así como también lo que significan las opciones.
Boatcoder
16

Sí, puede hacerlo con el createrawvmdkcomando interno , que no creará una imagen de disco completa, sino un puntero al hardware real.

Hay dos maneras de hacerlo

  • A. Imagen de disco completa (de / dev / sdb)

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
  • B. Imagen de partición

    Como mostró @StarNamer, solo puede usar una o pocas particiones.

    Para crear una imagen de una sola partición (/ dev / sda1):

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
    

    Para crear una tabla de partición personalizada que asignará / dev / sda2 y / dev / sda1 en ese orden:

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
    

La diferencia más notable será que la imagen de disco completa usará el gestor de arranque y la tabla de particiones exactamente como están en su disco, por lo que en teoría (lo hice anteriormente solo en qemu) podrá configurar el sistema operativo desde su máquina virtual. Y desde mi experiencia limitada, puedo decir que la imagen de disco completa funcionará exactamente como qemu -hda /dev/sdb.

Nota: Si está utilizando un usuario para acceder al disco, debe agregarlo disky vboxusersagruparlo, p. Ej.

sudo usermod -aG disk,vboxusers ubuntu

luego asegúrese de volver a iniciar sesión o reiniciar su computadora.

Otras lecturas:

JLarky
fuente
"la imagen de disco completa usará el gestor de arranque y la tabla de particiones exactamente como están en su disco" - ¿bajo qué escenario, el primero (/ dev / sdb) o el segundo (con particiones especificadas)?
naught101
1
Además, virtualbox debe ejecutarse como root, de lo contrario se obtiene Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
naught101
3
"Además, virtual-box debe ejecutarse como root". En realidad no, debes ser miembro del disco grupal. Mucho más seguro que ejecutar virtual-box como root.
2
Esto es lo que funcionó para mí con Ubuntu 16.04 como sistema host y Windows 10 como invitado: creé el archivo .vmdk usando sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3. De esa manera incluí la partición de Windows, así como la partición del cargador de arranque EFI. Luego seguí las instrucciones de shilka en virtualbox.org/ticket/7702 y agregué cloverefiboot. ¡Funciona de maravilla!
dzmanto
También puede prefijar el comando VirutalBox (y VBoxManage) con sudo -g disksolo otorgarle el acceso a virtualbox, pero no todos sus otros procesos.
Jan Hudec
0

Hay una opción de disco llamada "Inmutable", por lo que, en teoría, si selecciona esta opción para el enlace vmdk a su disco sin formato, no debería cambiar la partición original.

Para hacerlo, abra el "Administrador de medios virtuales" que se encuentra en "Archivo", seleccione su imagen y haga clic en "Modificar" (debe asegurarse de que esta imagen no esté conectada a ninguna máquina, de lo contrario obtendrá un error). Ahora puede establecer el tipo de medio en "Inmutable".

Sin embargo, no he probado esto. Si alguien lo hace (por supuesto, con una configuración de prueba), sería bueno informar aquí.

¿Alguien tiene alguna consideración que hable en contra de esta idea?

Esokrates
fuente
0

Durante varios años, he estado ejecutando Windows y Ubuntu de arranque dual con Ubuntu Partition también arrancando en Windows VirtualBox para aprovechar las capacidades de la pantalla táctil que Linux aún no ha dominado.

Lo configuré con instrucciones similares a las siguientes;

Las nuevas máquinas pueden manejar simultáneamente ambos SO mejor que los sistemas individuales en máquinas antiguas.

Desventaja: debe guardar las instrucciones que utiliza para la configuración en caso de que una actualización deshabilite la conexión VirtualBox (mi problema actual).

Desprit
fuente
0

Después de muchos intentos, terminé con una solución ordenada y limpia:

  1. Arranque la partición de Windows que le gustaría virtualizar
  2. Descargue la utilidad Disk2VHD de Sysinternals
  3. Si tiene una partición UEFI , siga estas instrucciones
  4. Cree una imagen VHD (no VHD X ) de su C: partición, recuperación, UEFI (si corresponde) y cualquier otra cosa que desee
  5. Regrese a Linux, abra VirtualBox y cree una VM de acuerdo con las especificaciones de su sistema operativo Windows
  6. Adjunte a esa VM el disco VHD creado en el punto 4
  7. Eso es
  8. Lucro

Solución de problemas en caso de UEFI:

  1. En la configuración de VM, en VirtualBox, marque la opción "Habilitar EFI" en la pestaña Sistema
  2. Si se queda atascado en EFI Shell, ejecute el siguiente comando:

    fs0:\EFI\Boot\bkpbootx64.efi
    
Garlix
fuente
¿Algún comentario sobre el voto negativo?
garlix
Veo que esto sucedió hace unos días, pero no recuerdo haberle hecho votos negativos, al menos no a propósito. Con mucho gusto lo desestimaría, lo siento.
userfuser
0

VirtualBox tiene muchas desventajas. Lo dejo hace algunos años. Ahora uso qemu-kvm y, además de otra característica fina, se puede configurar para usar el dispositivo de disco de la misma manera que la imagen de disco. El truco es configurar el virtual "-drive if = sd, id = sda, format = raw, file = / dev / sda".

¡Pero! Primero debe hacer algunos cambios mientras ejecuta el MSW en el metal desnudo, antes de intentar virtualizarlo: mire la carpeta "Controladores" para ver los controladores correctos y el árbol "Registro" para que esos controladores estén habilitados y configurados para ser ejecutar antes del inicio del sistema como:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\msahci] "Start"=dword:00000000

Tiene que buscar un controlador apropiado con respecto a la máquina virtual si no desea ver el BSOD.

Es difícil decir qué controladores activar. La mejor manera es instalar primero un sistema de prueba, luego buscar en el registro la clave de registro con el "Inicio" = dword: 00000000 y luego configurar estas claves en la máquina de metal desnudo. También se recomienda verificar la dirección MAC en el metal desnudo para ponerlo en la configuración qemu. Puede evitar que el sistema solicite una nueva activación.

Schweik
fuente