¡Ayúdanos a crear contenido haciendo una donación mediante Paypal!

domingo, 14 de octubre de 2018

Virtualización con Hyper-V - Sacando jugo a Windows 10

 ******¡¡¡IMPORTANTE!!!******

- Lo que se explica en este POST, es únicamente con fines didácticos. Úsalo sólo a título personal.
- Tifloinformático, su autor y/o los desarrolladores de las herramientas mencionadas, no se hacen responsables del mal uso que le des al contenido de esta entrada, siendo tú el/la único/a responsable.
- Las herramientas mencionadas, son propiedad de sus autores.
- Si citas total o parcialmente este artículo, en internet o por otros medios, debes mencionar la fuente:
http://tifloinformatico.blogspot.com
- Las instrucciones que se describen a continuación han sido probadas en Windows 10. Aunque pueden servir para otras versiones, no se garantiza que sean válidas para versiones distintas de Windows.


-------------------------

¿Cuantas veces hemos tenido curiosidad por un sistema distinto al que usamos habitualmente, hemos necesitado un programa que no está disponible para nuestro sistema operativo, o queremos usar una versión concreta de un programa, que sólo funciona en una versión concreta de un sistema operativo?

Existen varias soluciones para dar respuesta a situaciones como estas. Una de ellas, sería instalar tantos sistemas como queramos en el ordenador, pudiendo elegir entre cualquiera de ellos al encender el equipo.

Si bien esto sería lo más eficiente, puesto que cada sistema aprovecharía al máximo los recursos hardware del ordenador, no es lo más práctico, ya que sólo podríamos ejecutar un sistema a la vez, y para cambiar de un sistema a otro, obligatoriamente tendríamos que reiniciar el equipo.
Además, la elección del sistema operativo en el arranque del ordenador en caso de haber más de uno instalado, no es accesible para personas ciegas.

Para solucionar estos inconvenientes, existe la virtualización: es una forma de ejecutar un sistema operativo y/o aplicaciones dentro de otro sistema operativo.

De esta manera no es necesario reiniciar el ordenador para usar un sistema operativo distinto al que usamos habitualmente, y podemos usar más de uno a la vez.

Por supuesto, no todo iban a ser ventajas, y esto tiene algunos incconvenientes, como que los sistemas no aprovechan al máximo los recursos hardware del ordenador; sino que han de compartirlos, ya que están ejecutándose a la vez.

Lo bueno es que normalmente podemos ajustar los recursos de cada sistema, de manera que podemos decidir cual dispondrá de más recursos y cual podrá hacer uso de menos, o repartirlos por igual.

Existen varias herramientas de virtualización para distintos sistemas operativos, muchas o quizás todas accesibles: cuando hablamos de la accesibilidad de una herramienta de virtualización, hay que entender que nos referimos a su interfaz propia... Las opciones de ésa herramienta, y no a la accesibilidad del sistema que virtualizamos o las aplicaciones que contiene, ya que ello depende del sistema a virtualizar (si es accesible por si mismo, cuenta con API's de accesibilidad, herramientas de apoyo de terceros ETC)

Las tres herramientas más importantes de virtualización son: VMWare (con versiones de pago y gratuitas), virtualbox (gratuito) y virtual PC (gratuito).

Excepto Virtual PC que es de Microsoft, VMWare y VirtualBox son multiplataforma y compatibles en el caso de Windows, con todas las versiones, de XP en adelante, tanto de 32 como de 64 bits.

Virtual PC en cambio, es compatible con Windows xP, Vista y 7; ya que dejó de tener soporte de Microsoft.

Pero con la llegada de Windows 10, Microsoft siguió apostando por su propia herramienta de virtualización. Y haciendo honor a la filosofía de Windows 10, donde todo está integrado, Microsoft incluyó en algunas versiones de la última versión de Windows el sucesor de Virtual PC: Hyper-V

Y es precisamente de esta herramienta que incluye Windows 10: Hyper-V, de la que vamos a hablar en la entrada de hoy.

Vamos a ver como podemos virtualizar por ejemplo, una distribución de Linux en Windows 10, sin herramientas de terceros. Usaremos Hyper-V para ello.

Para ello lo primero que tenemos que hacer, es asegurarnos de cumplir con los requisitos de Hyper-V de Windows 10, que son: Windows 10 de 64 bits, en sus versiones Enterprise, Professional o Education (Home no sirve).

Si disponemos de alguna de estas versiones de 64 bits de Windows 10 podremos hacer uso de Hyper-V. Para ello antes, hay que activarlo, ya que por defecto viene desactivado.

Para activar Hyper-V en Windows 10, deberemos de abrir la consola a través de PowerShell, ejecutándolo como administrador.

Para ello vamos a inicio, y en el campo de búsqueda, escribimos "powershell" (sin las comillas) y sobre el resultado que nos aparece como aplicación de escritorio, pulsamos tecla aplicaciones y elegimos la opción "Ejecutar como administrador".
*Si aparece el control de cuentas de usuario pidiendo permiso para ejecutar la aplicación, pulsamos en "Sí".

A continuación tenemos que escribir el siguiente comando en la consola, para habilitar Hyper-V

Enable-WindowsOptionalFeature -Online -FeatureName:Microsoft-Hyper-V -All

 Tras unos segundos o minutos (según el equipo) aparecerá el siguiente mensaje:

¿Desea reiniciar el equipo para completar esta operación ahora?
[Y] Yes [N] No [?] Ayuda (el valor predeterminado es "Y"):

a lo que debemos responder que sí para finalizar la instalación de Hyper-V

Al reiniciarse el ordenador, continuará la instalación de Hyper-V: tras el reinicio, aparecerá el mensaje "Trabajando en las características". Una vez terminado, el equipo volverá a reiniciarse para terminar con la instalación, por lo que aún podría tardar un poco más de lo normal en abrirse el escritorio.

Una vez terminada la instalación de Hyper-V, ya podemos crear la máquina virtual. Para ello vamos a la herramienta de administración de Hyper-V: en inicio, en el campo de búsqueda escribimos "herramientas administrativas" (sin las comillas) y pulsamos sobre la opción que aparece como Panel de control en los resultados.
Debemos buscar "Administrador de Hyper-V" y abrirlo.

Lo que se abre a continuación es la herramienta de virtualización Hyper-V. Antes de crear la máquina virtual, vamos a ver algunas configuraciones que pueden sernos útiles.

Lo primero que haremos es crear una carpeta donde se almacenarán las máquinas virtuales y sus discos duros. Por defecto, Hyper-V tiene una ruta establecida, pero puede que prefiramos otra ruta a la que nos sea más fácil llegar y que recordemos mejor.

Por ejemplo, vamos a crear una carpeta llamada VM_Hyper-V en Mis documentos; aunque podéis llamarla como queráis, y crearla donde prefiráis. E incluso, elegir una carpeta ya creada en el sistema.

Para ello vamos al explorador de archivos con Windows+e y buscamos la carpeta Documentos o Mis documentos.
Si tenéis un acceso directo a "Este equipo" es mucho más rápido, ya que si entráis ahí, veréis la carpeta "Documentos", a la que podéis entrar directamente.

Para crear la carpeta, nos aseguramos de que no haya nada seleccionado (pulsando CTRL+espacio si usamos lectores de pantalla) y pulsamos tecla Aplicaciones y vamos a "Nuevo">"Carpeta".

Ponemos el nombre de la carpeta y pulsamos Enter para crearla.

además, dentro de esta carpeta, para tenerlo todo más ordenado, crearemos dos directorios: HD y VM, para almacenar los discos duros y las máquinas virtuales respectivamente (podéis también a estas carpetas darles los nombres que queráis).
Las carpetas las crearemos exactamente de la misma forma que hicimos con la anterior.

Volvemos al administrador de Hyper-V y abrimos la configuración. Para ello vamos a la barra de menú "Acción", y a la opción "Configuración de Hyper-V...".

Podemos recorrer todas las opciones de la configuración y ajustarlas a nuestro antojo. En esta entrada solo veremos algunas opciones.

Nos situamos en la presentación en árbol, y la primera opción es "Discos duros virtuales", dentro de la rama "Servidor".

Para usuarios de lectores de pantalla (al menos de Jaws) esta interfaz puede resultar un tanto confusa, ya que Jaws anuncia los elementos de la presentación en árbol como "Cerrado", como en el caso de "Discos duros virtuales"; por lo que puede parecer que no es posible acceder a esta opción.

Para ir a las opciones de configuración de este elemento, únicamente hay que pulsar la tecla Tabulador.

En esta opción, vemos que podemos elegir la ruta donde queremos que se guarden los discos duros de las máquinas virtuales: "Especifique la carpeta predeterminada para almacenar los archivos de disco duro virtual". Aquí podemos escribir la ruta o, si pulsamos en el botón "Examinar", podemos buscarla más cómodamente en la típica ventana de Windows para buscar carpetas.
En este caso, elegimos la carpeta VM_Hyper-V que creamos anteriormente en Miss documentos y el subdirectorio "HD".

Volvemos a la presentación en árbol para bajar hasta la opción "Máquinas virtuales". en "Especifique la carpeta predeterminada para almacenar los archivos de configuración de máquina virtual" al igual que en la opción anterior, podemos elegir en este caso, donde se guardarán los archivos de la máquina virtual que creemos. En el cuadro de edición podemos escribir la ruta. Si pulsamos en el botón "Examinar", podemos elegir el directorio desde la interfaz gráfica de la típica ventana para buscar carpetas de Windows.
En este caso elegimos el directorio "VM", que creamos anteriormente dentro de la carpeta "VM_Hyper-V" dentro de Mis documentos.

Volvemos a la presentación en árbol. La siguiente opción que configuraremos es "Teclado", dentro de la rama "Usuarios".
Pulsamos la tecla Tabulador y nos aseguramos que está seleccionada la opción "Usar en la máquina virtual". De lo contrario no podremos usar el teclado en las máquinas virtuales que creemos.

Volvemos a la presentación en árbol y bajamos hasta la opción "Combinación de teclas de liberación del mouse". Esta opción nos permite configurar el comando de teclado para liberar el ratón y así poderlo usar en el sistema Host.
Nuevamente pulsamos la tecla Tabulador y en la lista de comandos que aparece, elegimos el que prefiramos para liberar el ratón de la máquina virtual, y devolver el control de éste al sistema Host.

Por ejemplo, elegimos la tercera: "CTRL+ALT+ESPACIO", que sabemos que no interferirá con ningún comando de Windows ni de los lectores de pantalla si los usamos.

El resto de opciones podéis modificarlas si queréis, pero la mayoría de ellas están bien como vienen por defecto.
Para terminar con la configuración y aplicarla, como viene siendo habitual en Windows, pulsamos en "Aplicar" y luego en "Aceptar".

Una vez hechos los ajustes, ya podemos crear una máquina virtual. Pero antes necesitamos una imagen de Linux para poder virtualizarlo, así que descargaremos Ubuntu.

Ya que no he encontrado la última versión en edición de 32 bits; y virtualizar sistemas de 64 bits suele ser más complejo por lo general, porque requiere de ciertas características del procesador que, no todos los procesadores tienen, y que por defecto, si las tienen, no suelen venir activadas en BIOS, vamos a descargar la versión 16 de Ubuntu, que seguro, tiene versión de 32 bits.

Para ello

Descargamos la imagen de Ubuntu 16 de 32 bits

(Enlace directo de descarga de la ISO)

Una vez finalizada la descarga ¡ahora sí, podemos empezar con la creación de la máquina virtual en Hyper-V!.
Podemos hacerlo de dos maneras: pulsando tecla Aplicaciones sobre el equipo local (DESKTOP-E0I4H0O) que aparece en la presentación en árbol del administrador de Hyper-V (el nombre puede variar), en "Nuevo" y máquina virtual.

Podemos crear otros elementos. Pero de momento solo veremos esta opción.

También podemos ir a la barra de menú "Acción", e igualmente a la opción "Nuevo">"Máquina virtual".

De cualquiera de las dos formas, también existe una opción llamada "Creación rápida", que permite crear rápidamente la máquina virtual.

En cualquier caso,no usaremos esta opción, sino que crearemos manualmente la máquina virtual, paso a paso.

Al iniciar el asistente de creación de máquinas virtuales, aparece una pantalla donde nos indica que podemos pulsar en "Finalizar" para crear una máquina virtual con los valores predeterminados de Hyper-V, o en "Siguiente" para ajustar manualmente la configuración de la máquina virtual.

Pulsamos en "Siguiente" para configurar manualmente la máquina virtual y nos aparece una ventana, donde lo primero que vamos a poner es el nombre de la máquina en el campo "Nombre".
Por ejemplo, a la máquina que vamos a crear, le vamos a llamar "Ubuntu 16 x86" (sin las comillas) para sólo con verla en la lista de máquinas virtuales, saber qué sistema, versión y arquitectura contiene.

La opción "Almacenar la máquina virtual en otra ubicación" la dejamos como está; si quisiéramos guardar esta máquina virtual en concreto, en una ubicación distinta a la que establecimos por defecto antes en la configuración, sólo tenemos que marcar esta opción e indicar la ruta donde queremos guardar la máquina.

A continuación pulsamos en "Siguiente".

Lo siguiente que hemos de configurar es la "generación" de la máquina. Existen dos tipos:


  • Generación 1: La máquina virtual soporta sistemas de 32 y de 64 bits, y admite el mismo hardware virtual que versiones anteriores de Hyper-V.

  • Generación 2: La máquina virtual soporta sistemas de 64 bits en modo UEFI

 Así pues, podríamos entender los tipos de generación de las máquinas virtuales de Hyper-V, como el modo UEFI o BIOS heredado de la BIOS de la mayoría de las placas base de hoy en día.

Como vamos a instalar Ubuntu 16 de 32 bits, seleccionamos "Generación 1" y pulsamos en "Siguiente".

A continuación hemos de configurar la cantidad de memoria RAM que queremos asignarle a la máquina virtual, que por defecto está establecida en 1024 MB (1 GB).

Hay que tener cuidado con la asignación de memoria en las máquinas virtuales, ya que no sólo no podemos asignar más memoria de la que tiene físicamente el equipo, sino que no podemos tampoco asignarla toda, ya que como dijimos al principio, las máquinas virtuales comparten los recursos de hardware con el sistema Host (el que está realmente instalado en el equipo). Y la memoria es uno de los recursos de hardware.

Así pues, aunque esto es muy relativo, ya que depende mucho de la cantidad de memoria física del ordenador, de si el sistema host es de 32 o 64 bits, de la cantidad de aplicaciones que estén en ejecución en el sistema host; de la arquitectura del sistema virtualizado, de las aplicaciones que vayan a correr en este ... Suele ser buena idea asignar la mitad de la memoria física, a la máquina virtual, si por ejemplo, como Windows en este caso de 32 bits, el requisito mínimo de memoria es de 1 GB; ya que de ser posible, es recomendable un poco más para que las aplicaciones corran con mayor fluidez.

En cualquier caso, en muchas ocasiones, no es necesario asignar demasiada memoria; sobre todo para distribuciones Linux, que suelen ser mucho más ligeras y por tanto requerir menos memoria.

En mi caso, ya que mi ordenador tiene 8 GB de RAM y un procesador Intel i3 (el procesador también influye a la hora de asignar más o menos memoria ya que con un procesador medianamente potente, algunos sistemas rendirán bien con algo menos de RAM) voy a asignarle 3 GB de memoria a la máquina virtual.

Para ello, en el campo "Memoria de inicio", hay que escribir el valor; que para 3 GB sería 3072 (en MB)
*recordad que 1 GB no son 1000 MB, sino 1024.

La opción "Usar la memoria dinámica para esta máquina virtual" la dejamos como está y pulsamos en "Siguiente".

A continuación hemos de configurar el adaptador de red. En la lista que aparece en la pantalla actual del asistente de creación de máquinas virtuales, podemos elegir entre "Desconectado" o "Modificador predeterminado".
Seleccionamos la segunda opción y pulsamos en "Siguiente".

Ahora es el turno del disco duro de la máquina virtual. Lo primero que vamos a hacer es darle un nombre.
En el campo "Nombre", Hyper-V ya nos pone un nombre por defecto, que podemos cambiar por el que queramos; siempre respetando la extensión ".vhdx", que es la extensión de archivo de los discos de Hyper-V.
En mi caso dejo el nombre que hay por defecto que es "Ubuntu 16 x86.vhdx" (el nombre que le puse a la máquina virtual).

En el campo "Ubicación" Hyper-V nos pone por defecto la ruta que establecimos como predeterminada para los discos duros, en la configuración del administrador de Hyper-V.
Si queremos cambiar la ruta del disco duro de esta máquina virtual en concreto, sólo hemos de pulsar en "Examinar" y elegir la ubicación.

En "Tamaño" indicaremos el tamaño del disco duro de la máquina virtual en GB. Por defecto, Hyper-V nos ofrece asignarle al disco 127 GB. Pero quizás esto sea demasiado, así que podemos poner el valor que queramos, siempre expresado en GB.
Hay que tener en cuenta el tamaño libre del disco físico de la máquina host, el tamaño mínimo requerido para el sistema que vamos a virtualizar, y calcular aunque sea por encima, el espacio en disco que necesitaremos para aplicaciones, archivos y demás.

Por ejemplo, yo voy a crear un disco de 40 GB para la máquina virtual que estamos creando.

Si seguimos tabulando, antes de pulsar en "Siguiente", justo después de "Resumen", podemos elegir el tipo de disco que vamos a crear.
Por defecto está marcada la opción "Crear un disco duro virtual". Pero podríamos también, usar un disco duro virtual existente, en cuyo caso, habría que buscar el disco con el botón "Examinar", o escribir su ruta completa en el campo "Ubicación".
Si os fijáis, con esta segunda opción, desaparece el campo "Tamaño"; ya que el tamaño será el que tenga asignado el disco existente que usemos.

También podemos elegir la opción "Exponer un disco duro virtual más adelante". En este caso, la máquina virtual se creará sin disco duro, y podremos añadirlo más tarde, cuando lo necesitemos.
Esto sería útil por ejemplo, si queremos ejecutar un sistema Live CD en la máquina virtual, y no tenemos pensado instalar ningún sistema.

Si os fijáis, en esta opción, también desaparece el campo "Ubicación" y el botón "Examinar".

En nuestro caso elegiremos la primera opción "Crear un disco duro virtual", para crear una máquina que ya tenga un disco configurado y pulsamos en "Siguiente".

A continuación hemos de elegir el sistema que vamos a virtualizar.
Podemos elegir entre "Instalar un sistema operativo más adelante", "Instalar un sistema operativo desde un CD/DVD-ROM de arranque", "Instalar un sistema operativo desde un disquete de arranque" o "Instalar un sistema operativo desde un servidor de instalación en red".

Seleccionamos la primera opción y pulsamos en "Siguiente" ¡y ya hemos terminado con la creación de la máquina virtual!.
Antes de finalizar, nos aparece un resumen con la lista de opciones que hemos ido configurando durante la creación de la máquina virtual.

Podemos pulsar en "Anterior" si queremos corregir algo en la configuración de la máquina, o en "Finalizar", si todo está bien, para terminar.

Una vez terminada la creación de la máquina virtual, en el administrador de Hyper-V (en "Máquinas virtuales") donde llegaremos con la tecla Tabulador, veremos la máquina virtual que acabamos de crear.
Por defecto, veréis que en la máquina virtual pone "Desactivada". Esto es porque la máquina está apagada.

Antes de iniciar la máquina virtual, vamos a ver más sobre configuración. En este caso, la configuración de la máquina virtual.

Para acceder a la configuración de la máquina, sobre esta, pulsamos tecla Aplicaciones, y en "Configuración".

Se abrirá un asistente de configuración de la máquina virtual de lo más completo.

Podemos configurar de todo en la máquina.

No vamos a ver cada opción de la configuración, porque hay muchas y el artículo se haría demasiado largo. Pero veremos por ejemplo, como cambiar el órden de arranque en la BIOS ... De la máquina virtual ;)

Sí, en las máquinas de Hyper-V, al igual que en otras herramientas de virtualización, podemos cambiar el órden de arranque en el boot de la BIOS de la máquina virtual, de forma accesible. No como en un ordenador real, donde esto es imposible.

Por defecto debería estar configurado la unidad de CD/DVD como primera opción de arranque. Pero podemos cambiarlo por ejemplo, por el disco duro.

Para ello, una vez abierto el asistente de configuración de la máquina virtual, nos situamos en la presentación en árbol donde están todas las opciones de configuración y bajamos hasta "BIOS", dentro de la rama "Hardware".

Igual que ocurría en el asistente de configuración de Hyper-V, en esta ventana también hemos de tabular para movernos por las opciones de un elemento de la configuración.
Si lo hacemos una vez situados en "BIOS", vemos que la primera opción es "Orden de inicio". "Seleccione el orden en que deben comprobarse los dispositivos de arranque para iniciar el sistema operativo".

Aquí, como decía, debería estar la unidad de CD/DVD en la primera posición. Si no es así, o si queremos que la primera unidad a comprobar en el arranque sea una distinta, hemos de elegirla en la lista, y pulsar en el botón "Subir" o "Bajar", a los que se accede con la tecla Tabulador.

Con estos botones, vamos subiendo o bajando la posición de la opción que seleccionemos en la lista.
de esta manera, podemos configurar a nuestro gusto el órden de todas las opciones que aparecen como booteables.

Si volvemos a la presentación en árbol; si bajamos, encontramos "Memoria". Aquí, podemos configurar la memoria RAM de la máquina virtual.

En el campo "RAM" aparece la cantidad de memoria que hemos asignado a la máquina cuando la creamos. Pero ahora, podemos establecer un mínimo y máximo de RAM que usará la máquina virtual.

La opción "Habilitar memoria dinámica" nos permite establecer el uso de la memoria RAM por parte de la máquina virtual.
Si esta opción está marcada, podemos establecer un mínimo y un máximo de memoria RAM que utilizará la máquina virtual. En caso contrario, la máquina virtual usará una cantidad fija de memoria, que será la que le asignamos en la creación de la máquina, o la que establezcamos en la configuración de esta.

Por defecto, en el campo "RAM mínima" podemos establecer el mínimo de memoria que va a usar la máquina. Es importante no poner un valor por debajo del requisito mínimo de RAM del sistema que vamos a virtualizar.
*Este valor se expresa en MB.

Por ejemplo, yo voy a poner 1,5 GB para la máquina que estamos configurando, por lo que en MB serían 1536 MB.

En el campo "RAM máxima", podemos establecer el máximo de memoria que usará la máquina. Esto es importante, si permitimos el uso dinámico de memoria por parte de la máquina virtual, para que no intente consumir toda la RAM del equipo si la necesita, ya que esto provocaría inestabilidad tanto en la máquina virtual, como en la máquina host; hasta el punto de colgarse ambas en algunos casos.

Por defecto, en este campo pone un valor que creo que hoy en día nadie tiene la suerte de tener: "1048576". Sí, son megas... Pero aún así son demasiadas ¿no os parece?

Teniendo en cuenta lo que hemos explicado antes, cuando creábamos la máquina virtual, sobre la asignación de la memoria, en este campo debemos establecer un valor coherente. Por ejemplo, los tres gigas que asignamos inicialmente a la máquina.
*El valor de este campo también se expresa en MB, por lo que tres gigas serían 3072 MB.

Podríamos poner la misma cantidad en "RAM mínima" y "RAM máxima", y así la máquina virtual siempre usaría la misma cantidad de memoria.
Pero es preferible establecer una diferencia entre la cantidad mínima y la máxima, para que si la máquina virtual no lo necesita, no use tanta memoria. De esta manera, la máquina host irá más fluida, al haber más memoria liberada por parte de la máquina virtual.

Los campos "Búfer de memoria" y "Ponderación de memoria" los dejaremos como están.

Si volvemos a la presentación en árbol y bajamos, encontramos el procesador.
Para modificar su configuración, igualmente, hemos de pulsar la tecla Tabulador para movernos por las distintas opciones.

En el campo Puede modificar el número de procesadores virtuales según el número de procesadores del equipo físico. También puede modificar otras opciones de configuración de control de recursos" podemos establecer cuantos procesadores vamos a usar en la máquina virtual, que por defecto es 1.

Aquí hemos de escribir el número de núcleos que queremos asignar a la máquina virtual. Pero antes hemos de asegurarnos de cuantos núcleos tiene el procesador físico de la máquina host, para no asignar más núcleos a la máquina virtual, de los que tiene físicamente el procesador.

Por ejemplo, aunque mi ordenador tiene 4 núcleos, yo de momento voy a asignarle 2 a la máquina virtual que hemos creado.

A continuación, en "Reserva de máquinas virtuales (porcentaje)" y "Límite de máquinas virtuales (porcentaje)", podemos establecer la cuota de procesador que queremos asignar a la máquina virtual.
Por defecto la máquina virtual, puede usar el cien por cien del procesador. Pero si la máquina host va a realizar alguna tarea más o menos pesada, y queremos asegurarnos de que no vayan a haber cuelgues, o que dicha tarea se ralentice demasiado, aquí podemos limitar el uso del procesador por parte de la máquina virtual, por ejemplo, al 50%, escribiendo el mínimo y el máximo en porcentaje, en los campos correspondientes.

El campo "Ponderación relativa" lo dejamos como está.

A continuación vamos a configurar el medio de instalación del sistema que vamos a virtualizar.
Para ello, volvemos a la presentación en árbol y bajamos hasta la opción "Unidad de DVD".

Como siempre, pulsamos la tecla Tabulador para movernos por las opciones de la configuración de este elemento.

Hyper-V es tan completo que nos permite incluso, configurar el canal en el que conectar los dispositivos.
En este caso, la unidad de dVD está configurada en el canal IDE 0: en principio no hay motivos para cambiar esto, por lo que lo dejaremos como está.

En "Ubicación" tampoco tocaremos nada, ya que está en "1 (en uso)".

Y a continuación viene el campo que realmente nos interesa: "Medios".

Aquí podemos elegir el tipo de unidad de DVD que vamos a usar con la máquina virtual: "Unidad de CD/DVD física", "Archivo de imagen" o "Ninguno".

Si el sistema a virtualizar lo tenemos quemado en un CD o DVD, podemos elegir la primera opción, y usaremos la unidad óptica física.

Si hemos descargado el sistema de internet, y no queremos quemarlo en un CD o DVD, podemos elegir la opción "Archivo de imagen" y en su lugar, la ISO del sistema actuará como unidad óptica de la máquina virtual.
*Cuidado, porque esto será así siempre, mientras no se cambie la configuración; no sólo en el arranque de la máquina virtual.

Si elegimos "Ninguno", es como si la máquina virtual no tuviera unidad óptica.

Como queremos instalar un sistema, y lo hemos descargado de internet, pero no lo hemos grabado en un DVD, seleccionamos la opción "Archivo de imagen" e indicamos la ruta de la imagen ISO del sistema, que podemos hacerlo escribiendo la ruta en el campo correspondiente, o buscarla con la interfaz gráfica típica de Windows para buscar archivos, pulsando en "Examinar".

El resto de opciones (que son muchas) podéis explorarlas por vuestra cuenta, y realizar los cambios que consideréis oportunos.

Una vez terminada la configuración de la máquina virtual, pulsamos en "Aplicar" y luego en "Aceptar".

Ahora sí, la máquina está lista para ejecutarla.
Para eso nos situamos sobre ella, y pulsamos la tecla Aplicaciones, y en "Iniciar".

Es posible que recién instalado Hyper-V, y la primera vez que iniciamos una máquina virtual, obtengamos un error como este (la información completa aparece pulsando en "Detalles", en el error)

Error al intentar iniciar las máquinas virtuales seleccionadas.
No pudo iniciarse 'Ubuntu 16 x86'.
La máquina virtual 'Ubuntu 16 x86' no se pudo iniciar porque el hipervisor no está en ejecución.
No pudo iniciarse 'Ubuntu 16 x86'. (Id. de máquina virtual 6B225430-0CBA-4334-9164-A06CB358C83B)
La máquina virtual 'Ubuntu 16 x86' no se pudo iniciar porque el hipervisor no está en
ejecución (identificador de la máquina virtual: 6B225430-0CBA-4334-9164-A06CB358C83B).
Las siguientes acciones pueden ayudarle a resolver el problema:
1) Compruebe que el procesador del equipo físico dispone de una versión compatible de virtualización asistida por hardware.
2) Compruebe que la protección de ejecución de datos asistida por hardware y la virtualización asistida por hardware están habilitadas en el BIOS del equipo físico. (Si edita el BIOS para habilitar estas opciones, debe apagar el equipo físico y luego volverlo a iniciar. El reinicio del equipo físico no es suficiente).
3) Si ha realizado cambios en el almacén de datos de configuración de arranque, revíselos para asegurarse de que el hipervisor está configurado para iniciarse automáticamente.

 Si esto ocurre, puede ser básicamente por dos motivos: el procesador no tiene soporte para la tecnología de virtualización por hardware (AMD-V en procesadores AMD, e Intel VT en procesadores de Intel); y/o esta característica no está habilitada en la BIOS.
*En procesadores AMD esta característica suele venir habilitada en la BIOS. En cambio, para los procesadores de Intel esta característica por defecto está deshabilitada en la BIOS y tenemos que activarla.

En este punto haremos un paréntesis para ver esto con más detenimiento.

Si bien tanto en procesadores AMD como en los de Intel, no es posible activar la tecnología de virtualización por hardware en BIOS por parte de una persona que requiera un lector de pantalla, al menos sí es posible saber de forma accesible si el procesador de que disponemos tiene soporte para esta característica, que parece ser imprescindible para usar Hyper-V.

Como mi ordenador tiene un procesador Intel i3, no puedo hacer pruebas para procesadores AMD; así que los que tengáis un procesador AMD, tendréis que buscar algo similar a lo que voy a explicar a continuación.

Existe una herramienta de Microsoft, que nos dice si nuestro procesador soporta la tecnología de virtualización por hardware, y si está o no habilitada ésta en la BIOS.

Pero esta herramienta, parece que sólo funciona hasta Windows 7. Como estamos trabajando en Windows 10, esta herramienta que en principio valdría tanto para procesadores Intel como AMD, no nos sirve.

Por tanto, hemos de buscar una solución alternativa; y esta es, una herramienta oficial. En este caso, de Intel, que nos dará bastante información sobre el procesador de nuestro ordenador.

Esta herramienta podéis descargarla desde

Aquí

 (Enlace directo de descarga del programa)

Se trata de una pequeña utilidad instalable, que es perfectamente accesible.

Su instalación es muy sencilla: basta con ejecutar el .MSI que hemos descargado, aceptar las condiciones de uso y pulsar en "Aceptar"/"Siguiente", y en pocos segundos la instalación habrá terminado.

A continuación, hemos de ejecutar la aplicación. Para ello, simplemente vamos a inicio, y en el campo de búsqueda escribimos "intel" (sin las comillas) y pulsamos en el resultado que nos aparece: "Utilidad Intel(R) para identificación de procesadores", como aplicación de escritorio.
*Si aparece el control de cuentas de usuario pidiendo permiso para ejecutar la aplicación, le decimos que sí.

Al abrir el programa, hemos de volver a aceptar las condiciones de uso de este, pulsando en "Aceptar"; y a continuación se abrirá la interfaz del programa, que es muy sencilla de utilizar.

El programa está dividido por pestañas, donde en cada una de ellas hay distinta información.

Con este programa no vamos a poder realizar ajustes en la configuración del procesador, pero sí ver información útil; algunas cosas pueden verse con otras aplicaciones, y otras al menos yo no me he fijado... y creo que no; pero igual también.

No nos vamos a detener demasiado en esta aplicación, ya que su uso es muy sencillo: en cada pestaña hay cuadros de edición de sólo lectura, en los que hay algo de información. Pero para ver realmente la información, debemos usar el cursor de Jaws/Jaws a PC, o el cursor de revisión de NVDA, si usamos alguno de estos lectores de pantalla.

Para lo que nos interesa (saber si nuestro procesador soporta la tecnología de virtualización por hardware) iremos a la segunda pestaña: "Tecnologías de la CPU".

Una vez sobre esta pestaña, con cursor de Jaws/Jaws a PC, o el cursor de revisión de NVDA, podemos ver las tecnologías que soporta nuestro procesador

 Utilidad Intel® para identificación de procesadores
Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz
Tecnologías avanzadas de compatibilidad del procesador Intel
Tecnología de virtualización Intel(R) No
Tecnología Hyper-Threading Intel(R) Sí
Arquitectura Intel(R) 64 Sí
Otras tecnologías Intel que se admiten
Tecnología Intel SpeedStep(R) mejorada Sí Intel(R) Advanced Vector Extensions Sí
Intel(R) SSE Sí Intel(R) AES New Instructions No
Intel(R) SSE2 Sí Intel(R) VT-x con tablas de páginas  No
Intel(R) SSE3 Sí
Intel(R) SSE4 Sí
Información
Los números de procesador Intel no son una medición de rendimiento. Los números de procesador distinguen las
características dentro de cada familia de procesadores en sí, no entre distintas familias de procesadores. Para ver
detalles, consulte http://www.intel.com/products/processor_number/spa.

 En concreto, lo que nos interesa es "Tecnología de virtualización Intel(R)"; que en mi caso, no sé muy bien por qué, pone que no está soportado, tras haberlo habilitado en BIOS. Pero antes de activar la tecnología de virtualización por hardware, ponía que sí estaba soportada...

En cualquier caso, como nunca había tocado eso en BIOS, sabía seguro que estaría desactivado, y viendo que en esta aplicación ponía que estaba soportada la tecnología de virtualización por hardware, lo activé en BIOS y tras ello, las herramientas de virtualización funcionaron sin problema.

Digamos que hasta aquí podemos llegar los usuarios de lectores de pantalla. Aunque existen herramientas para configurar ciertos aspectos de la BIOS desde Windows, esto no es posible configurarlo; o al menos yo no he encontrado la manera, ni tampoco para entornos UEFI, por lo que necesitaremos ayuda de otra persona para hacerlo.
No vamos a ver la forma de activar la virtualización por hardware en la BIOS, ya que en cada BIOS el proceso será diferente. Pero normalmente, éste parámetro está en las opciones avanzadas de configuración, en algún apartado relacionado con la configuración de la CPU.

Si el procesador no soporta la tecnología de virtualización por hardware, la cosa se complica, ya que las herramientas de virtualización podrían dar problemas para virtualizar algunos sistemas, como por ejemplo los de 64 bits; OSX (el sistema operativo de apple para Mac's, también requiere que el procesador soporte la virtualización por hardware, y que esta esté habilitada en BIOS para poder ser virtualizado.
En cualquier caso, si el procesador no soporta la virtualización por hardware, no hay nada que podamos hacer, y tendremos que limitarnos a virtualizar sistemas de 32 bits, que no requieran de esta tecnología, como Windows, y en herramientas de virtualización, para las que la virtualización por hardware no sea un requisito imprescindible.

así pues, asegurarse de que el procesador de nuestro ordenador soporta la tecnología de virtualización por hardware, y habilitar dicha característica en BIOS, es el primer paso, para asegurarnos de que Hyper-V no nos dará problemas.

Pero otro de los motivos que pueden hacer que Hyper-V se niegue a ejecutarse, o a iniciar máquinas virtuales, es el hecho de tener otras herramientas de virtualización instaladas en el sistema.

Herramientas como vMWare (cualquier edición y versión) o VirtualBox, son capaces de funcionar sin interferir entre ellas, en el mismo sistema. Pero en cambio, sí crean conflictos con Hyper-V de Microsoft, por culpa del Hypervisor que usan unas y otras. Por lo que si usamos Windows 10 y tenemos instalados VmWare o VirtualBox, y queremos usar Hyper-V de Microsoft, lo más sencillo es desinstalar VmWare y/o VirtualBox para que no interfieran en el funcionamiento de Hyper-V.
*En ése caso, es aconsejable hacer la desinstalación con software especializado, como Uninstall tools, para limpiar el sistema tras la desinstalación; recordad, no darle a reiniciar el equipo al finalizar el asistente de desinstalación de VmWare o VirtualBox, para que pueda llevarse a cabo la limpieza del sistema.

En cualquier caso, una vez terminada la desinstalación, y la limpieza del sistema por parte de Uninstall tools o el programa que uséis, no está de más reiniciar el sistema y limpiar el equipo más a fondo con CCleaner, para limpiar a fondo el registro y el sistema en general; tanto Windows, como las aplicaciones, para asegurarse de que no queden restos de VmWare o VirtualBox, y volver a reiniciar el ordenador para que se apliquen correctamente los cambios hechos en el sistema.

En cambio, si tenemos instalado Hyper-V junto con VmWare o VirtualBox, los dos últimos sí funcionan aparentemente sin problema. No obstante, si experimentamos errores en VMWare o VirtualBox, podemos desactivar la ejecución de Hyper-V.
Pero dado que en esta entrada estamos viendo el uso de Hyper-V, no veremos como hacerlo.

Ahora sí, deberíamos de poder iniciar las máquinas virtuales de Hyper-V sin problema. Si seguís teniendo errores como el de arriba a la hora de iniciar una máquina virtual, podéis aseguraros de que Hyper-V esté en ejecución (que debería estarlo. Pero nunca se sabe).

Para ello, basta con abrir el símbolo del sistema, llendo a inicio y escribiendo "CMD" (sin las comillas) en el campo de búsqueda, y pulsar la tecla aplicaciones, y pulsar en "Ejecutar como administrador".
*Si aparece el control de cuentas de usuario pidiendo permiso para ejecutar la aplicación, le decimos que sí.

Una vez abierto el símbolo del sistema, escribimos "bcdedit /v" (sin las comillas)

 inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}                                                        
default                 {5bc8c195-6b7b-11e8-bf98-e2c6e6d3097a}                                                        
resumeobject            {5bc8c194-6b7b-11e8-bf98-e2c6e6d3097a}                                                        
displayorder            {5bc8c195-6b7b-11e8-bf98-e2c6e6d3097a}                                                        
toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}                                                        
timeout                 30                                                                                            
                                                                                                                      
Cargador de arranque de Windows                                                                                       
-----------------------------                                                                                         
Identificador           {5bc8c195-6b7b-11e8-bf98-e2c6e6d3097a}                                                        
device                  partition=C:                                                                                  
path                    \WINDOWS\system32\winload.exe                                                                 
description             Windows 10                                                                                    
locale                  es-ES                                                                                         
loadoptions             disable_integrity_checks                                                                      
inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}                                                        
recoverysequence        {425d9841-6b73-11e8-be72-8f434ca40ddd}                                                        
displaymessageoverride  StartupRepair                                                                                 
recoveryenabled         Yes                                                                                           
nointegritychecks       Yes                                                                                           
testsigning             Yes                                                                                           
allowedinmemorysettings 0x15000075                                                                                    
osdevice                partition=C:                                                                                  
systemroot              \WINDOWS                                                                                      
resumeobject            {5bc8c194-6b7b-11e8-bf98-e2c6e6d3097a}                                                        
nx                      OptIn                                                                                         
bootmenupolicy          Standard                                                                                      
hypervisorlaunchtype    Auto

 Todo esto (que puede variar en cada ordenador, según la configuración de arranque establecida) es la configuración actual de la configuración del arranque del sistema.

En concreto, en lo que hemos de fijarnos, es en el ítem "hypervisorlaunchtype    Auto".
Si como en mi caso está en "Auto", significa que Hyper-V se está ejecutando en el arranque del sistema. Si en cambio éste ítem está en "Off", significa que Hyper-V no se está ejecutando al iniciarse el sistema.

En ése caso, hemos de activarlo. Para ello, en la misma ventana del símbolo del sistema, escribimos el siguiente comando

bcdedit /set {Identificador} hypervisorlaunchtype auto

 *{Identificador} debe sustituirse por el identificador que aparezca al ejecutar el comando "bcdedit /v", incluyendo las llaves; en mi caso "{5bc8c195-6b7b-11e8-bf98-e2c6e6d3097a}", en el ítem "Identificador".
Debéis consultar el identificador, ya que no tiene por qué coincidir con el mío.

Si al ejecutar el comando aparece un mensaje indicando que la operación se ha realizado correctamente, significa que todo ha ido bien, y que Hyper-V se ha configurado para iniciarse en el arranque del sistema; sólo queda reiniciar el equipo para confirmar que los cambios se han aplicado correctamente.

Con todo esto, ya sí, deberíamos poder iniciar máquinas virtuales en Hyper-V.

Para ello, nos situamos sobre la máquina que queramos ejecutar y pulsamos tecla aplicaciones e "Iniciar".
*Si aparece el control de cuentas de usuario pidiendo permiso para ejecutar algún programa, le decimos que sí.

A continuación, veremos como si todo va bien, Hyper-V empieza a ejecutar la máquina virtual, que primero tendrá el estado de "Iniciando", y luego éste pasará a "En ejecución".

Finalmente (esto puede tardar un poco) se ejecutará la máquina virtual, que aparecerá en una nueva ventana. En el caso de la máquina virtual que hemos creado, el título sería "Ubuntu 16 x86 en DESKTOP-E0I4H0O: Conexión a máquina virtual", que cambiará según el nombre que le déis a la máquina en el momento de su creación, o en la configuración de la misma.

Y aora sí, por fin, tenemos nuestra máquina virtual corriendo en Windows 10, sin software de terceros: con Hyper-V; una herramienta muy completa, gratuita y accesible de virtualización.

Para pasar el control del teclado y el ratón a la máquina virtual, tan sólo hemos de ponernos en la ventana de la máquina virtual. Una vez esta ventana tenga el foco, automáticamente capturará el teclado y el ratón. Sabremos que es así, porque los lectores de pantalla deberían decir algo como "Input capture Window" (algo así como que la ventana ha capturado la entrada del sistema).

Si queremos devolver el control del teclado y el ratón a la máquina host, simplemente hemos de usar el comando de teclado que configuramos antes, a la hora de configurar la máquina virtual, que en este caso fue "CTRL+Alt+Espacio".

Al igual que en otras herramientas de virtualización, en Hyper-V, los usuarios de lectores de pantalla pueden ayudarse del OCR que incluyen estos, tales como Jaws o NVDA, para leer la ventana de la máquina virtual, que actúa como el monitor de un ordenador real.
Aprovechando que estamos trabajando con Windows 10 como máquina host, es aconsejable para ello, usar NVDA en sú última versión, ya que hace uso del OCR que incluye Windows 10, que es muy bueno en el reconocimiento y además no requiere conexión a internet.

Además, NVDA en sus últimas versiones, en las que tiene soporte para el OCR integrado en Windows 10, tiene una forma muy buena de interacción por parte del usuario, con el texto reconocido por el OCR, haciéndola casi tan natural como si la aplicación en la que se usa el OCR se navegara con los comandos habituales de teclado de Windows y/o el lector de pantalla.

Para leer el texto de la ventana de la máquina virtual con el OCR de Windows 10 y NVDA, nos situamos en la ventana de la máquina virtual. Como dijimos, por defecto, al recibir el foco, ésta capturará el teclado y el ratón.
Basta con liberarlos de la máquina virtual, con el comando que establecimos en la configuración de la máquina.
Una vez liberado el teclado, sin cambiar de ventana ni usar ningún otro comando de teclado o del ratón, si usamos NVDA, hemos de pulsar una vez la tecla Flecha arriba, para llevar el foco al área de la pantalla donde aparece la imagen de la máquina virtual; de lo contrario, pasaremos el OCR en la barra de estado de la ventana de la máquina. Pulsamos Tecla "NVDA"+r, y en pocos segundos se mostrará el texto reconocido por el OCR, en un cuadro de edición.

Como ya hemos dicho, el reconocimiento es casi perfecto, incluso si no configuramos en NVDA el idioma del texto a reconocer, en las opciones de configuración del OCR.

Pero no sólo es posible leer el texto de la máquina virtual, que es muy importante en ciertas situaciones; sino que podemos incluso, interactuar con la máquina, a través del texto reconocido, en el cuadro de edición donde nos lo presenta NVDA.

Para ello, únicamente hemos de navegar por el texto reconocido, con flechas arriba y abajo, o izquierda y derecha si queremos ir a una palabra o letra concreta, y pulsar Enter o Espacio sobre el texto donde queramos simular un click de ratón.

Si el texto es una opción "cliqueable", NVDA enviará una simulación de un click del ratón a la ventana enfocada, justo sobre la opción con el texto que coincida con el que hemos seleccionado y "cliqueado" en el cuadro de edición de NVDA.

De esta manera, es posible activar opciones en una ventana donde el texto se presenta en imágenes, como en el caso de las máquinas virtuales.

No es que esta sea la forma que tiene un usuario de lectores de pantalla de usar una máquina virtual, porque esto es un método poco efectivo para realizar muchas tareas, o tareas complejas como navegar por una página WEB, editar un documento en una herramienta ofimática, eTC; ya que los sistemas operativos, suelen contar con herramientas de apoyo integradas, o permitir la instalación de estas, en cualquier caso, incluso cuando corren en máquinas virtuales.
Pero sí es una forma muy práctica de saber qué está pasando en todo momento en la máquina virtual, y de interactuar con partes de esta, donde no es posible el uso de herramientas de apoyo, como lectores de pantalla.

Hyper-V ofrece mucho más, pero ver todas sus posibilidades en una sola entrada sería larguísimo: sí, mucho más de lo que se ha hecho este artículo.

Un poco más por encima, diremos que por ejemplo, podemos importar y exportar máquinas virtuales. Opción más que interesante para compartir máquinas ya configuradas, que pueden contener ya un sistema operativo y aplicaciones instaladas, lista para usar.
O podemos usar discos de otras máquinas únicamente, para por ejemplo, ahorrarnos la instalación del sistema, pero crear nosotros la máquina virtual.

Gracias a la exportación, también podemos crear y compartir máquinas virtuales con otras personas que usen Hyper-V en Windows 10

¡Y esto es todo!.

Espero que os haya gustado este artículo y que os sea de utilidad.

Para cualquier duda, consulta, sugerencia o lo que se os ocurra, podéis escribirnos al e-mail del blog:

tifloinformatico@gmail.com

¡Hasta pronto!

2 comentarios:

  1. Muy buena entrada, sí señor. Es una pena que hyper-v no quiera llevarse bien con otras herramientas, porque de ser así lo activaría. Yo de momento estoy bien con VMWare, donde tengo Mac y varias distros de Linux instaladas.
    He echado de menos que hablaras un poquito de Qemu, una herramienta compleja que funciona por línea de comandos y cuyas ventanas no capturan bien el teclado; pero que constituye la base de los emuladores Android y de todo servidor vps donde el kernel se ejecute de manera independiente. Deberías echarle un vistazo.

    ResponderEliminar
  2. Gracias. En realidad, usé Linux como ejemplo, para demostrar que no por ser de Microsoft se limita únicamente a Windows. Pero lo cierto es que virtualizar Linux con Hyper-V es complicado. Tanto que me temo que sin ver no es posible sin ayuda, porque el sonido no funciona. Y las formas que he visto de habilitarlo, además de complejas (y no sé si funcionarían) no serían accesibles, ni con el OCR de Jaws o NVDA.

    Yo normalmente uso VMWare player para virtualizar y nunca me ha ido mal. Esta entrada la hice a raíz de no funcionar el sonido en máquinas virtuales de VMWare con Linux, en Windows 10... Así fue como descubrí Hyper-V, que si no fuera por que con lo que mejor se lleva, me parece una herramienta muy completa y bastante más accesible que VirtualBox que es igual de completo en opciones, pero más incómodo en la accesibilidad.

    Tomo nota de Qemu.
    Un saludo.

    ResponderEliminar