Hyper-V es un hipervisor que se ejecuta en Windows y puede ser gestionado directamente en la máquina donde está instalado, así como de forma remota. A menudo, necesitas copiar archivos al servidor de Hyper-V y desde un servidor a máquinas virtuales. No puedes simplemente arrastrar y soltar archivos en las VM de Hyper-V, y debes usar otros métodos para copiar archivos.
Por ejemplo, al crear una nueva máquina virtual en Hyper-V, necesitas instalar un sistema operativo en esa VM. Generalmente, esto se hace montando una imagen de instalación ISO del medio del sistema operativo. Para llevar el medio al host de Hyper-V, tienes que copiar el archivo ISO al host e instalar el sistema operativo invitado en la nueva VM.
Esta publicación de blog proporciona 6 métodos sobre cómo copiar archivos a máquinas virtuales de Hyper-V y al servidor de Hyper-V. Ten en cuenta que estos métodos para copiar archivos al servidor de Hyper-V también pueden ser usados en otros escenarios, como copiar archivos desde un host de Hyper-V a las VM.
Método 1: Cómo Copiar Archivos Usando un Compartimiento de Archivos en un Host de Hyper-V
Este método implica crear un compartimiento de archivos en un host de Hyper-V y copiar una imagen ISO u otros archivos a este compartimiento de archivos SMB. El protocolo SMB es un protocolo de intercambio nativo en Windows, pero también es compatible con Linux y otros sistemas operativos.
También puedes usar este método para copiar archivos al servidor de Hyper-V desde cualquier máquina física o virtual si se establece una conexión de red.
- Habilita una regla de firewall para permitir conexiones SMB entrantes para una máquina que ejecuta Hyper-V. Para habilitar compartir archivos e impresoras en el firewall, ejecuta el siguiente comando en el host de Hyper-V:
netsh advfirewall firewall set rule group=”Compartir archivos e impresoras” new enable=Yes
Nota: Puede configurar un recurso compartido de archivos SMB con los permisos adecuados para los usuarios necesarios y compartir solo la carpeta necesaria.
- Si tiene la interfaz de usuario gráfica (GUI) en su máquina con Windows, conéctese a un recurso compartido de archivos remoto en un host de Hyper-V escribiendo la ruta de acceso en la barra de direcciones de la ventana del Explorador de Windows. En este ejemplo, utilizamos un recurso compartido de sistema oculto C$, que está habilitado de forma predeterminada en todas las máquinas con Windows con fines administrativos. De manera similar, puede conectarse a otros volúmenes como D$, E$, etc.
\\10.10.10.31\c$\
Nota: Los archivos se almacenan en el disco C: con fines demostrativos. Se recomienda que utilice otra partición dedicada para archivos de máquinas virtuales, imágenes ISO, recursos compartidos de archivos y otros datos que no sean del sistema.
- Busque el directorio donde desea almacenar sus imágenes ISO o donde se encuentran los otros archivos que necesita copiar. Puede crear este directorio ahora si aún no se ha creado. En nuestro caso, los archivos ISO se encuentran en C:\ISO_1\ en nuestro host de Hyper-V y la ruta de red es \\10.10.10.31\c$\ISO_1\
Si necesita utilizar la interfaz de línea de comandos, puede asignar el recurso compartido de archivos SMB como una unidad de red con el comando:
Net use * \\〈su host de Hyper-V〉\d$
Por ejemplo,
net use S: \\10.10.10.31\d$
Nota: Puedes ejecutar este comando en CMD o PowerShell en el cliente o servidor que tiene los datos que deseas transferir a Hyper-V.
- Copia el archivo ISO necesario (u otros archivos) desde tu máquina local (C:\data\shared01\ en nuestro caso) al host de Hyper-V utilizando esta ruta de red.
- Después de copiar la imagen ISO al servidor, podemos apuntar la unidad de DVD al archivo de imagen y navegar hasta la carpeta que creamos en la raíz de la unidad (C:).
- Después de terminar de copiar todos los archivos necesarios a tu host de Hyper-V, puedes deshabilitar las conexiones entrantes en el firewall de Windows en el host de Hyper-V por motivos de seguridad. Podemos deshabilitar las reglas del firewall de uso compartido de archivos e impresoras que permitimos anteriormente si optamos por hacerlo simplemente cambiando Sí a No en el comando de PowerShell.
netsh advfirewall firewall set rule group=”Uso compartido de archivos e impresoras” new enable=No
Método 2: Cómo Copiar Archivos a Servidores de Hyper-V Utilizando un Único Compartido de Archivos
Cuando tienes varios hosts de Hyper-V en tu entorno, puede ser inconveniente configurar un recurso compartido de archivos en cada host de Hyper-V y copiar imágenes ISO a todos estos hosts de Hyper-V. Además, utilizar espacio de almacenamiento en múltiples hosts para las mismas imágenes ISO puede no ser racional.
Puede configurar un recurso compartido de archivos en otro servidor, por ejemplo, en un servidor de archivos o NAS, y almacenar todas las imágenes ISO necesarias allí. Configure un recurso compartido de archivos una vez y configure el acceso para los hosts de Hyper-V, y use las imágenes ISO almacenadas en un solo lugar para todos los hosts.
Este método es conveniente si todas las máquinas utilizadas son miembros de un dominio de Active Directory.
Si desea utilizar este método para transferir archivos entre un host de Hyper-V y un sistema operativo invitado de la máquina virtual, debe configurar un conmutador virtual en la configuración de Hyper-V y establecer el modo de red necesario.
Si necesita copiar archivos en una máquina virtual con un sistema operativo invitado Linux, además del protocolo SMB, puede usar SSH para un transferencia de archivos Hyper V segura a través de la red.
Método 3: Transferencia de archivos Hyper-V a través de RDP
Si su servidor Hyper-V se ejecuta en una máquina Windows con GUI, puede conectarse a este host a través de RDP (Protocolo de Escritorio Remoto) y conectar los discos locales de su equipo local para copiar los archivos necesarios. Para ello, debe habilitar las conexiones de escritorio remoto en el servidor de destino.
Puede usar este método para copiar archivos en el servidor Hyper-V desde otra máquina física o virtual que ejecute Windows.
- Para habilitar las conexiones de escritorio remoto, vaya a Inicio Configuración Sistema Remote Desktop y habilite Desktop Remoto.
- Ejecute el cliente de Remote Desktop de Windows, cuya ubicación es %windir%\system32\mstsc.exe
Escriba mstsc en la línea de comandos o en el cuadro de diálogo Ejecutar y presione Enter.
- Introduzca la dirección IP o el nombre de host del ordenador remoto (en nuestro ejemplo, es el host Hyper-V con la dirección IP 10.10.10.31) y el nombre de usuario. Puede introducir el nombre de usuario en el formato completo (domain\user o computer\user).
- Vaya a la pestaña Recursos Locales y haga clic en Más.
- Seleccione los recursos locales que desee mapear de su ordenador al anfitrión remoto (en nuestro ejemplo, el anfitrión remoto es un host Hyper-V). Amplíe Unidades y seleccione la unidad de disco necesaria. Los archivos necesarios se encuentran en el disco E:\ de nuestro ordenador y, por esta razón, selecciona el disco E: para mapear para su conexión RDP.
- Haga clic en Aceptar para guardar las configuraciones y luego haga clic en Conectar.
Una vez establecida una sesión de escritorio remoto, abra My Computer o This PC en Windows Explorer del equipo remoto. Debería ver la unidad de disco mapeada de su ordenador local que se ha mapeado al equipo remoto (E en SERVER01-DC en la captura de pantalla de abajo). Vaya a los archivos necesarios en esta unidad mapeada y copie los archivos a su host Hyper-V.
Este método también funciona para VMs si están conectadas a la red.
Método 4: Transferencia de archivos Hyper-V con un cmdlet de PowerShell
La versión 4.0 y posteriores de PowerShell tienen una cmdlet útil que permite copiar archivos de un anfitrión de Hyper-V a una máquina virtual sin tener una conexión de red entre el anfitrión y el invitado de la VM y sin la necesidad de configurar el cortafuegos.
Así que vamos a ver cómo copiar archivos a una máquina virtual de Hyper-V en PowerShell sin usar la red.
- Habilite Servicios de invitado en la máquina virtual. Debe instalarse Integration services en el sistema operativo invitado de la VM.
Los servicios de invitado son parte de Servicios de integración de Hyper-V, pero no están habilitados de forma predeterminada. Para habilitar los servicios de invitado, abra Ajustes de la VM, seleccione Servicios de integración en el panel izquierdo de la ventana de ajustes de la VM y marque la casilla de verificación Servicios de invitado.
Habilite Servicios de invitado para la VM en PowerShell:
Enable-VMIntegrationService -VMName VM1 -Name ‘Guest Service Interface’
- Puede verificar si la funcionalidad de Servicios de invitado está habilitada en PowerShell:
Get-VMIntegrationService -name Guest* -VMName VM1,VM2
Donde VM1,VM2 son los nombres de las VM.
- Si el estado es Sin contacto, es necesario actualizar la máquina virtual e instalar Servicios de integración en el sistema operativo invitado.
- Si el estado es Falso, puede habilitar la interfaz de servicios de invitado necesaria:
Enable-VMIntegrationService -name Guest* -VMName win10preview -Passthru
- Utilice el comando a continuación para la transferencia de archivos de Hyper-V desde el host de Hyper-V al invitado VM estableciendo la ruta de origen en el host de Hyper-V y la ruta de destino en el VM:
Copy-VMFile “NombreVM” -SourcePath “F:\Test.txt” -DestinationPath “C:\Temp\Test.txt” -CreateFullPath -FileSource Host
Donde:
- VMname es el nombre de la VM a la que está copiando el archivo (puede ver el nombre de la VM en Administrador de Hyper-V; este no es el nombre de host de la VM mostrado en el sistema operativo invitado).
- SourcePath es la ruta al archivo de origen en el host de Hyper-V (el archivo que necesita copiar).
- DestinationPath es la ruta al archivo de destino en la VM (dónde copiar el archivo necesario).
- El comando -CreateFullPath se utiliza para crear una ruta completa con todas las carpetas necesarias si no existen.
En nuestro ejemplo, el comando exacto de PowerShell para la transferencia de archivos de Hyper-V desde un host a un invitado de VM es:
Copy-VMFile “VM2” -SourcePath “C:\temp\file01.txt” -DestinationPath “C:\Temp1\file01.txt” -CreateFullPath -FileSource Host
Nota: el cmdlet Copy-VMFile funciona solo en la dirección desde un host de Hyper-V a VM.
Método 5: Montar VHDX en anfitrión y invitado
La idea de este método es crear un disco virtual VHDX que pueda montarse tanto en un anfitrión de Hyper-V como en una máquina virtual. Puede copiar los archivos necesarios a este disco virtual, montar el disco en la máquina necesaria y copiar archivos del/hacia el disco virtual.
En nuestro ejemplo, utilizamos Windows Server 2019. La creación de un disco virtual VHDX está disponible en Gestión de equipos, no solo en Administrador de Hyper-V cuando se configuran las VM.
- Abrir la ventana de Gestión de equipos. Puede hacerlo pulsando Win+R para abrir el cuadro de diálogo Ejecutar y ejecutando el comando compmgmt.msc.
- Vaya a Almacenamiento > Gestión de discos en la ventana de Gestión de equipos.
- Haga clic con el botón derecho en Gestión de discos y en el menú contextual haga clic en Crear VHD.
- A new window opens to create a virtual disk.
- Especifique la ubicación del disco virtual en el anfitrión de Hyper-V, por ejemplo, C:\Hyper-V\data-temp\
- Establezca el tamaño del disco virtual. Creamos un 8-GB de disco virtual para propósitos de demostración.
- Seleccione un formato de disco virtual. Seleccionamos VHDX como formato más reciente. Lea sobre VHD vs VHDX para aprender más sobre las diferencias.
- Seleccione un tipo de disco virtual. Seleccionamos Espaciado dinámicamente para ahorrar espacio de almacenamiento hasta que el disco no esté lleno de datos.
- Pulse Aceptar para guardar la configuración y cerrar la ventana.
Alternativamente, aquí hay un ejemplo del comando para crear un disco virtual VHDX en PowerShell:
New-VHD -Path C:\Hyper-V\data-temp.vhdx -SizeBytes 8GB -Dynamic -BlockSizeBytes 1MB
El comando para montar un disco virtual VHD en PowerShell es:
mount-VHD -path C:\Hyper-V\data-temp.vhdx
A virtual hard disk has been created on our Hyper-V host.
- Haz clic con el botón derecho en este disco virtual de huella de tinta de 8 GB en la herramienta Administración del Disco y selecciona Inicializar Disco.
Alternativamente, si prefieres usar PowerShell, entonces enumerar todos los discos montados para identificar el número del disco virtual necesario antes de la inicialización:
Get-Disk
- Tu disco se selecciona automáticamente. Selecciona el estilo de partición. Usamos MBR (Master Boot Record) para mejor compatibilidad. Haz clic en Aceptar.
Alternativamente, el comando para aquellos que usan PowerShell incluye el número de un disco virtual y el estilo de partición:
Initialize-Disk 1 -PartitionStyle MBR
- Crea un nuevo volumen (partición) en el disco virtual inicializado del anfitrión Hyper-V. Esta partición también será visible en una máquina virtual de Windows (o Linux que pueda trabajar con sistemas de archivos NTFS).
Haz clic con el botón derecho en el volumen de 8 GB y selecciona Nuevo Volumen Simple en el menú contextual.
- Se abre el Asistente para crear un volumen simple nuevo. Haga clic en Siguiente.
- Especifique el tamaño del volumen. Utilice todo el tamaño del disco para este volumen.
- Asigne una letra de unidad, por ejemplo, H:
- Formatee la partición. Seleccione el sistema de archivos NTFS, deje la unidad de asignación predeterminada y ingrese una etiqueta de volumen (por ejemplo, Copy-Files). Seleccione la casilla de verificación Ejecutar un formateo rápido.
También puede utilizar estos comandos de PowerShell para crear y formatear un volumen:
New-Partition -DiskNumber 1 -UseMaximumsize -AssignDriveLetter
Format-Volume -DriveLetter H -FileSystem NTFS -Full -Force
- Una vez que haya completado el asistente, debería ver su disco virtual montado en Windows Explorer de la máquina anfitriona de Hyper-V.
- Copie los archivos necesarios a la partición ubicada en el disco virtual. Copiamos file01.txt, como se muestra en la captura de pantalla siguiente.
- Debe desmontar un disco virtual de su anfitrión de Hyper-V después de copiar todos los archivos necesarios al disco virtual.
Haga clic con el botón derecho en la partición adecuada montada desde el disco VHDX virtual y haga clic en Ejectar en el menú contextual.
También, el comando para desmontar un disco virtual de una máquina anfitriona en PowerShell:
dismount-VHD -path C:\Hyper-V\data-temp.vhdx
- Puede montar este disco virtual creado para Hyper-V para la transferencia de archivos de un anfitrión Hyper-V a un invitado y viceversa. Vamos a montar un disco virtual con archivos escritos en la máquina virtual.
- Seleccione la VM necesaria y abra Configuración de VM en el Administrador de Hyper-V.
- Seleccione el controlador de disco virtual necesario en el panel izquierdo de la ventana de configuración de VM.
- Seleccione Disco Duro y haga clic en Agregar.
- Seleccione Disco duro virtual y haga clic en Examinar para agregar el disco duro virtual existente a la VM.
- Especifique la ruta VHDX. En nuestro caso, la ruta es C:\Hyper-V\data-temp.vhdx
- Haga clic en Aceptar para guardar la configuración.
Alternativamente, este es el comando de PowerShell para agregar un disco duro virtual existente a una configuración de VM de Hyper-V:
Add-VMHardDiskDrive -VMName VM2 -Path C:\Hyper-V\data-temp.vhdx
- Inicie la máquina virtual con el disco virtual adjunto en su host de Hyper-V.
- Inicie sesión en un sistema operativo invitado y verifique si el volumen ubicado en el disco virtual se ha montado automáticamente. De lo contrario, vaya a Administración de equipos > Administración de discos y asigne una letra de disco al volumen con los archivos que necesita transferir desde el host de Hyper-V a la VM.
- Copie los archivos necesarios desde el disco virtual adjunto a la máquina virtual.
Método 6: VMConnect con el modo de sesión mejorado
VMConnect, o Conexión de Máquina Virtual, es una herramienta integrada de Hyper-V para administrar máquinas virtuales. Una pantalla que actúa como monitor para la VM donde se puede ver cómo se navega con un teclado y un ratón es parte de la herramienta VMConnect. Utilizar VMConnect con el modo de sesión avanzada es más conveniente y proporciona más funciones.
El modo de sesión avanzada permite personalizar la resolución de la pantalla al conectar a una VM y adjuntar recursos locales del anfitrión en el que se ejecuta Hyper-V Manager para administrar VMs. Los recursos locales se adjuntan de manera similar a la utilización de una conexión de Remote Desktop para acceder a un anfitrión o VM remoto.
Para habilitar el modo de sesión avanzada:
- Haga clic con el botón derecho en el nombre de su anfitrión de Hyper-V en Hyper-V Manager y en el menú contextual, haga clic en Configuración de Hyper-V.
- Haga clic en modo de sesión avanzada en el panel izquierdo
- Seleccione la casilla de verificación Usar modo de sesión avanzada.
Alternativamente, habilite la sesión avanzada en PowerShell:
Set-VMHost -EnableEnhancedSessionMode $True
Una vez que se ha habilitado la sesión avanzada y todo esté configurado para esto en la VM del invitado y el servidor Hyper-V, puede iniciar la VM y conectar a esta VM con VMConnect.
Debería ver la ventana para seleccionar la resolución de la pantalla si se ha habilitado la sesión avanzada. Haga clic en Mostrar opciones en esta ventana.
Seleccione la pestaña Recursos locales. Haga clic en Más en la sección Dispositivos y recursos locales.
Seleccione los discos disponibles en su anfitrión Hyper-V que desea conectar a una máquina virtual.
Método 7: Transferencia de archivos de Hyper-V usando imágenes ISO
Otro método para copiar archivos a una máquina virtual de Hyper-V es similar al uso de un disco virtual VHDX. Sin embargo, este solo funciona en una dirección (copiar archivos de Hyper-V a la VM) y el acceso a los archivos desde la VM es de solo lectura.
Si tiene una aplicación que puede editar y escribir archivos ISO, que son imágenes de CD/DVD, puede escribir los archivos necesarios en su anfitrión Hyper-V en la imagen ISO y insertar esta imagen ISO como un medio virtual de DVD en la VM.
Si necesita copiar una imagen ISO bootable a su máquina virtual (por ejemplo, al probar virtualización anidada), debería crear un nuevo archivo de imagen ISO no bootable y agregar una imagen ISO bootable a esta imagen. A continuación, puede copiar la imagen ISO bootable del archivo ISO exterior insertado en la unidad virtual de DVD de la VM.
Conclusión
Cualquiera de los métodos que use para copiar archivos a Servidor Hyper-V no se recomienda para fines de copia de seguridad. Estos métodos no son tan eficientes y confiables como las soluciones profesionales de copia de seguridad de Hyper-V. Las soluciones de copia de seguridad para máquinas virtuales Hyper-V de hoy, como NAKIVO Backup & Replication, crean copias de seguridad de nivel de host que son pequeñas, rápidas y fáciles de recuperar datos de.
Source:
https://www.nakivo.com/blog/copy-files-to-hyper-v-server/