VMware/Installing Arch as a guest (Español)

From ArchWiki
Jump to: navigation, search

Artículos relacionados

Este artículo trata sobre la instalación de Arch Linux en un producto VMware, como Player (Plus), Fusion o Workstation.

Controladores en el kernel

  • vmw_balloon - Controlador de gestión de la memoria física. Actúa como un «globo» que puede inflarse para recuperar páginas de memoria física reservándolas en el sistema huésped e invalidándolas en el monitor, liberando las páginas de la máquina subyacente para que puedan ser destinadas a otros huéspedes. También se puede desinflar para permitir el uso de más memoria física para los huéspedes. La memoria de la máquina virtual desasignada puede ser reutilizada en el anfitrión sin necesidad de terminar el huésped.
  • vmw_pvscsi - Para usar Paravirtual SCSI (PVSCSI) HBA de VMware.
  • vmw_vmci - Interfaz de comunicación de la máquina virtual. Permite la comunicación de alta velocidad entre anfitrión y huésped en un entorno virtual a través del dispositivo virtual VMCI.
  • vsock - Protocolo Socket Virtual. Es similar al protocolo de conexión TCP/IP, que permite la comunicación entre máquinas virtuales e hipervisor o anfitrión.
  • vmw_vsock_vmci_transport - Implementa un transporte VMCI para sockets virtuales.
  • vmwgfx - Para la aceleración 3D. Se trata de activar un modo KMS por controlador DRM para el hardware virtual VMware SVGA2.
  • vmxnet3 - Para configurar la tarjeta de red virtual ethernet vmxnet3 de VMware.

Herramientas VMware frente a Open-VM-Tools

En 2007, VMware lanzó grandes particiones de VMware Tools bajo licencia LGPL como Open-VM-Tools. Las herramientas oficiales no están disponibles separadamente para Arch Linux.

Originalmente, las herramientas de VMware proporcionaban los mejores controladores de red y de almacenamiento, junto con funcionalidades para otras características como la sincronización horaria. Sin embargo, desde hace tiempo los controladores para el adaptador de red/SCSI son parte del kernel de Linux, y las herramientas de VMware solo son necesarias para incorporar características adicionales.

Open-VM-Tools

Módulos

El paquete open-vm-tools-dkmsAUR viene con los siguientes módulos:

  • vmblock - Controlador del sistema de archivos. Permite la funcionalidad de arrastrar y soltar entre anfitrión y huésped (sustituido por la utilidad vmware-vmblock-fuse).
  • vmci - Interfaz de comunicación de alto rendimiento entre el anfitrión y el huésped.
  • vmhgfs - Controlador del sistema de archivos. Permite compartir recursos entre anfitrión y huésped.
  • vsock - Sockets para VMCI (Virtual Machine Communication Interface).
  • vmsync - Controlador experimental de sincronización del sistema de archivos. Activa el sistema de archivos quiescing cuando crea copias de seguridad e instantáneas.
  • vmxnet - Soporte para el viejo adaptador de red VMXNET.

Utilidades

El paquete open-vm-tools viene concretamente con las siguientes utilidades:

  • vmtoolsd - Servicio responsable de informar del estado de la máquina virtual.
  • vmware-checkvm - Herramienta para comprobar si un programa se está ejecutando en el sistema huésped.
  • vmware-toolbox-cmd - Herramienta para obtener información de la máquina virtual por el anfitrión.
  • vmware-user-suid-wrapper - Herramienta para activar el uso compartido del portapapeles (copiar/pegar) entre anfitrión y huésped.
  • vmware-vmblock-fuse - Utilidad del sistema de archivos. Permite la funcionalidad arrastrar y soltar entre anfitrión y huésped a través de FUSE (sistema de archivos en el espacio de usuario).
  • vmware-xferlogs - Volcado de la información del registro/depuración de errores del archivo de registro de la máquina virtual.

Instalación

Instale open-vm-tools desde los repositorios oficiales y open-vm-tools-dkmsAUR desde AUR.

Open-VM-Tools lee la información sobre la versión desde /etc/arch-release, que está vacía:

# cat /proc/version > /etc/arch-release

Inície vmtoolsd.service y actívelo en el arranque, si lo desea.

Nota: Hay un error en vmtoolsd, donde el servicio no es capaz de apagar correctamente y se cuelga durante 60 segundos. Una solución rápida se describe en el foro.

Herramientas oficiales de VMware

Módulos

  • vmblock - Controlador del sistema de archivos. Permite la funcionalidad de arrastrar y soltar entre anfitrión y huésped (sustituido por la utilidad vmware-vmblock-fuse).
  • vmci - Interfaz de comunicación de alto rendimiento entre anfitrión y huésped.
  • vmmon - Monitor de la máquina virtual.
  • vmnet - Controlador de red.
  • vsock - Sockets de VMCI.

Instalación (desde el huésped)

Instale las dependencias: base-devel (para compilar), net-tools (para ifconfig, usado por el programa de instalación) y linux-headers (para las cabeceras del kernel).

A continuación, cree los directorios de inicio bogus para el instalador:

# for x in {0..6}; do mkdir -p /etc/init.d/rc$x.d; done

El instalador se puede montar entonces:

# mount /dev/cdrom /mnt

Extráigalo (por ejemplo en /root):

# tar xf /mnt/VMwareTools*.tar.gz -C /root

E, inícielo:

# perl /root/vmware-tools-distrib/vmware-install.pl

Puede ignorar los siguientes fallos de compilación:

  • Tarjeta de red virtual VMNEXT 3
  • "Warning: This script could not find mkinitrd or update-initramfs and cannot remake the initrd file!"

Reinicie la máquina virtual:

# systemctl reboot

Inicie sesión y ejecute VMware Tools:

# /etc/init.d/rc6.d/K99vmware-tools start
Sugerencia: También hay un proyecto en GitHub tratando de automatizar todo esto.

Configuración de Xorg

Nota: Para utilizar Xorg en una máquina virtual, se necesita un mínimo de memoria de 32MB para VGA.

Instale las dependencias: xf86-input-vmmouse, xf86-video-vmware y svga-dri[broken link: replaced by mesa].

Si arranca con graphical.target, esto está casi terminado. /etc/xdg/autostart/vmware-user.desktop obtendrá al arranque la configuración de la mayor parte de las cosas que se necesitan para trabajar con la máquina virtual.

Sin embargo, si el arranque es con multi-user.target o utilizando una configuración poco frecuente (por ejemplo, varios monitores), entonces, vmtoolsd.service tiene que ser activado.

Consejos y trucos

Carpetas compartidas

Nota: Esta funcionalidad solo está disponible en VMware Workstation y Fusion

Compartimos una carpeta seleccionando Edit virtual machine settings > Options > Shared Folders > Always enabled, creando así un nuevo recurso compartido.

Ahora, debería ser capaz de ver las carpetas compartidas mediante la ejecución de la orden vmware-hgfsclient:

$ vmware-hgfsclient

Añadir una regla para cada recurso compartido:

/etc/fstab
.host:/<shared_folder> /home/user1/shares vmhgfs defaults 0 0

Crear y montar las carpetas compartidas:

# mkdir /home/user1/shares
# mount /home/user1/shares

También es posible montarlas temporalmente:

# mount -t vmhgfs .host:/<shared_folder> /home/user1/shares
Nota: Puede ver «Error: cannot mount filesystem: No such device», si el módulo vmhgfs no esta en el kernel de Linux aún antes de tratar de montar las carpetas.

Esto se puede resolver temporalmente ejecutando la orden «modprobe vmhgfs», pero para que sea cargado automáticamente durante el arranque, es necesario agregar el módulo vmhgfs a mkinitcpio.conf.

Activar en el arranque

Para que las carpetas compartidas funcionen es necesario haber cargado el controlador vmhgfs. Solo tiene que crear los siguientes .service:

/etc/systemd/system/mnt-hgfs.mount
[Unit]
Description=Load VMware shared folders
ConditionPathExists=.host:/<shared_folder>
ConditionVirtualization=vmware

[Mount]
What=.host:/<shared_folder>
Where=/home/user1/shares
Type=vmhgfs
Options=defaults,noatime

[Install]
WantedBy=multi-user.target
/etc/systemd/system/mnt-hgfs.automount
[Unit]
Description=Load VMware shared folders
ConditionPathExists=.host:/<shared_folder>
ConditionVirtualization=vmware

[Automount]
Where=/home/user1/shares

[Install]
WantedBy=multi-user.target

Activar el target de montaje con:

# systemctl enable mnt-hgfs.automount

Base de datos mlocate prune

Al usar mlocate, es inútil tratar de indexar los directorios compartidos en locate DB. Por lo tanto, añada los directorios de PRUNEPATHS en /etc/updatedb.

Aceleración 3D

Si no se selecciona en el huésped al tiempo de crearlo, la aceleración 3D se puede activar en: Edit virtual machine settings > Hardware > Display > Accelerate 3D graphics.

Sincronizar la hora

Configurar la sincronización horaria en una máquina virtual es importante; las fluctuaciones son inevitables al producirse con mayor facilidad en un sistema huésped, en comparación con un equipo físico. Esto se debe principalmente al uso compartido de la CPU por más de un sistema huésped.

Hay 2 opciones para configurar la sincronización horaria: desde el sistema anfitrión o desde una fuente externa.

Máquina anfitriona como fuente de la hora

Para utilizar el sistema anfitrión como fuente del tiempo:

# vmware-toolbox-cmd timesync enable

Para sincronizar el sistema huésped después de suspender el anfitrión:

# hwclock --hctosys --localtime

Servidor externo como fuente de la hora

Ver NTP.

Adaptador SCSI Paravirtual

VMware Paravirtual SCSI (PVSCSI) adapters son los adaptadores de almacenamiento de alto rendimiento para VMware ESXi que pueden dar como resultado un mayor rendimiento y menor utilización de CPU. Los adaptadores PVSCSI son los más adecuados para los entornos, donde el hardware o las aplicaciones demandan una cantidad muy alta de rendimiento de E/S. cpio -p linux

El tipo de adaptador SCSI de VMware Paravirtual está disponible en la configuración de la máquina virtual.

Solución de problemas

Problemas con el ratón

Los siguientes problemas pueden ocurrir con el ratón:

  • La característica automática de agarrar/soltar no mantiene el agarre automáticamente cuando el cursor entra en la ventana.
  • Imput con retraso.
  • Los clics no se registran en algunas aplicaciones.

VMware intenta optimizar automáticamente el ratón para juegos. Si experimenta problemas, se recomienda su desactivación: Edit > Preferences > Input > Optimize mouse for games: Never

En otro caso, podría ser necesario desactivar el evento catchall en 10-evdev.conf:

/etc/X11/xorg.conf.d/10-evdev.conf
#Section "InputClass"
#        Identifier "evdev pointer catchall"
#        MatchIsPointer "on"
#        MatchDevicePath "/dev/input/event*"
#        Driver "evdev"
#EndSection

Botones desaparecidos

Si no es por defecto, todos los botones del ratón deberían estar funcionando después de añadir mouse.vusb.useBasicMouse = "FALSE" a .vmx.

~/vmware/<Virtual Machine name>/<Virtual Machine name>.vmx
mouse.vusb.useBasicMouse = "FALSE"

Problemas en el arranque

Tiempo de arranque lento

Es posible que vea los siguientes errores si la función hot-add de la memoria de VMWare está activada.

  • add_memory failed
  • acpi_memory_enable_device() error

Desactive la función hot-add de la memoria ajustando mem.hotadd = "FALSE" en .vmx.

~/vmware/<Virtual Machine name>/<Virtual Machine name>.vmx
mem.hotadd = "FALSE"

Cuelgues al apagar/reiniciar

Ajuste el tiempo de espera para el servicio vmtoolsd (por defecto 90 segundos).

/etc/systemd/system/vmtoolsd.service.d/timeout.conf
[Service]
TimeoutStopSec=1

Problemas de reajuste automático

Si VMWare se está estirando en lugar de cambiar la resolución, incluso con el servicio del sistema activado, puede que tenga que añadir los módulos a mkinitcpio.conf.

/etc/mkinitcpio.conf
MODULES="vsock vmw_vsock_vmci_transport vmw_balloon vmw_vmci vmwgfx"

No se olvide de ejecutar:

# mkinitcpio -p linux