# Installing Arch Linux in VMware (Español)

Instalar Arch Linux en una máquina virtual (p.ej. en VMWare ejecutándose en Windows XP o utilizando VMWare fusion en MacOS) funciona sin ningún problema; sin embargo, el paquete VMWare-tools para Linux no se puede instalar sin más y a la primera en Arch Linux corriendo como máquina virtual.

Aclaración: es posible que usted no necesite VMWare-tools para nada, dependiendo de qué es lo que quiera hacer. Las necesitará para obtener mayores resoluciones de pantalla, compartir carpetas con el sistema anfitrión, y para qlgunas otras cosas.

## El procedimiento

NOTA: Ahora puede instalar el paquete open-vm-tools, el cuál esta disponible ya en al repositorio "Community". Teclee simplemente:

    pacman -S open-vm-tools

Arranque VMware tools con:

    /etc/rc.d/open-vm-tools start

O bien, para arrancarlas automáticamente en el arranque, añada el demonio a su array de demonios en el archivo /etc/rc.conf :

    DAEMONS=(.... ... .... open-vm-tools ...)

Una vez se está ejecutando open-vm-tools todo funciona aparentemente bien excepto que no es posible apagar correctamente la máquina virtual. Incluso si se utiliza la opción "apagar la máquina virtual" en vez de "apagar", la máquina virtual no maneja correctamente la señal y no se apaga (o funciona al segundo intento).

Esto presenta un problema cuando se usa la orden stop de vmrun.exe stop, sin embargo, restaurando unos pocos archivos que faltan se arregla. La manera más fácil de conseguir los guiones (utilizando Workstation) es montar las herramientas VMware utilizando la opción "Instalar herramientas VMware..." en el menú de la máquina virtual. Haciendo click en este elemento del menú presentará la imagen ISO de la herramientas VMware al CD-ROM y le permitirá montarlo.

Desde su sistema Arch Linux invitado teclee:

    mount /media/cd
    cp /media/cd/VMwareTools-XX.tar.gz ~/tmp
    cd ~/tmp
    tar -xzvf VMwareTools-XX.tar.gz
    cp ~/tmp/vmware-tools-distrib/etc/*default /etc/vmware-tools

Las órdenes anteriores añaden los siguientes guiones a /etc/vmware-tools:

    poweroff-vm-default
    poweron-vm-default
    resume-vm-default
    suspend-vm-default

Su máquina virtual Arch Linux debería ahora apagarse correctamente.

Nota: no existe el paquete open-vm-tools para x86_64

Ya le funciona todo lo que viene a continuación. No necesita nada más. :)

La mayor parte de esto supone que usted actuará como root.

Versiones de las cosas usadas al tiempo de escribir esto:

- Arch Linux con kernel 2.6.17-3 y 2.6.18-2 / Xorg 7.1 instalado sobre VMWare Workstation 5.5.2 build-29772 corriendo en un anfitrion con Arch Linux
- Arch Linux (Duke) con kernel 2.6.21.1-8 instalado sobre VMWare Workstation 6.0.0 build-45731 coriendo en un anfitrion con Windows XP
- Arch Linux (Don't Panic) con kernel 2.6.22.6-2 instalado sobre VMWare Workstation 6.0.1 build-55017 corriendo en un anfitrión con Windows XP

ADVERTENCIA

- Las adiciones de la maquina virtual para VMWare Workstation 6.0.0 build-45731 no funcionan con el kernel 2.6.22!
- Para sortear este problema y asgurarse de que su instalación está mayormente actualizada (exceptuando el kernel) instale Arch Linux (Duke 2007.05) con VMWare y posteriormente realice la siguiente actualización del sistema (para llegar a Don't Panic 2007.08):

    pacman -Su --ignore kernel-headers --ignore kernel26 --ignore glibc --ignore binutils --ignore gcc

ACTUALIZACION PARA KERNELS >= 2.6.22

- VMWare Workstation 6.0.1 build-55017 funciona correctamente con versiones del kernel a partir de la 2.6.22.
- Simplemente solo tiene que seguir los mismos procedimientos que se han descrito en este documento excepto en un sencillo cambio/parche que es necesario para que compilen las herramientas de la máquina virtual. Después de desempaquetar las herramientas a /opt/vmware-tools haga lo siguiente:

    cd /opt/vmware-tools/lib/vmware-tools/modules/source
    tar -xvf vmhgfs.tar
    cd vmhgfs-only
    <edit compat_slab.h> and apply the simple one line patch shown below
    cd ..
    mv vmhgfs.tar vmhgfs.tar.orig
    tar -cvf vmhgfs.tar vmhgfs-only
    <continue as described by this document>

    compat_slab.h
    @@ -24,7 +24,7 @@
    /*
     * Destructor is gone since 2.6.23-pre1.
     */
    -#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)
    +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)
    #define compat_kmem_cache_create(name, size, align, flags, ctor) \
    kmem_cache_create(name, size, align, flags, ctor, NULL)
    #else

### Preparativos

(Algunsa partes importantes de este procedimiento fueron adaptadas de (o inspiradas por) una página llamada VMWare en Slackware Linux; ahí hay más información técnica que este autor no simula comprender.)

(Las rutas de directorio han sido elegidas para que sean similares a aquellas usadas en le paquete vmware-workstation del AUR)

Esta guía supone que el usuario está instalando desde el paquete .tar.gz (no desde el .rpm). Vea http://www.vmware.com/support/ws55/doc/ws_newguest_tools_linux.html para más detalles.

Problema nº1: El guión de instalación de VMWare-tools (vmware-install.pl) supone que dado que la máquina virtual es Linux, el sistema operativo usará guiones de inicio estilo SysV. Dado que Arch utiliza un inicio estilo BSD, VMWare necesita que se le proporcione un directorio que contenga los archivos esperados rc0.d a rc6.d e init.d. Ejecutando lo siguiente como root debería darle a VMWare un interfaz SysV suficiente como para satisfacer esa necesidad:

    mkdir -p /etc/vmware-tools/init.d
    cd /etc/vmware-tools
    mkdir rc0.d
    mkdir rc1.d
    mkdir rc2.d
    mkdir rc3.d
    mkdir rc4.d
    mkdir rc5.d
    mkdir rc6.d

    Para el usuario experto de Bash: mkdir rc{0,1,2,3,4,5,6}.d

Cree un enlace de /etc/rc.d/network a /etc/vmware-tools/init.d

    ln -s /etc/rc.d/network /etc/vmware-tools/init.d/network

Problem nº2:

El instalador de vmware-tools busca una entrada en el archivo versión.h de las cabeceras del kernel, que no existe aquí. La pondremos en el archivo con la siguiente orden:

    echo "#define UTS_RELEASE \"`uname -r`\"" >> /usr/src/linux-`uname -r`/include/linux/version.h

Compruebe si esto se ha efectuado correctamente (2.6.19-ARCH reemplazado con su versión del kernel):

    cat /usr/src/linux-`uname -r`/include/linux/version.h

    #define LINUX_VERSION_CODE 132627
    #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
    #define UTS_RELEASE "2.6.19-ARCH"

### Arranque el instalador

Muestre la iso de VMWare Tools seleccionando VM -> Instalar Herramientas VMWare... en el menú de VMWare Workstation.

Monte la iso de VMWare Tools, copie el tar.gz, y desempaquételo:

    mount /mnt/cdrom
    cp /mnt/cdrom/VMwareTools-6.0.0-45731.tar.gz ~
    umount /mnt/cdrom
    cd ~
    tar -zxvf VMwareTools-6.0.0-45731.tar.gz

Vaya al lugar donde desempaquetó el instalador y arranque dicho instalador:

    cd ~/vmware-tools-distrib
    ./vmware-install.pl

Respnda las siguientes preguntas:

    "¿En qué directorio quiere instalar los binarios?": /opt/vmware-tools/bin
    "¿Qué directorio contiene los directorios de inicio ... ?": /etc/vmware-tools
    Para el resto acepte los lugares por defecto y diga Sí cuando se necesite crear un directorio.
    Cuando el instalador le pregunte si guiere ejecutar vmware-config-tools.pl responda 'no'

La parte del instalador ha terminado.

### Ejecute el guión de configuración

Ejecute /opt/vmware-tools/bin/vmware-config-tools.pl

El guión pregunta '¿Cuál es la situación del directorio de los archivos de cabecera del kernel que concuerdan con el kernel que se está ejecutando? [/usr/src/linux/include]'. Responda con:

    /usr/src/linux-`uname -r`/include

Compilará algunas cosas, detectará Xorg, y preguntará por una resolución de pantalla para X (elija una). Para que funcione correctamente la configuración de X debe tener ya instalado Xorg en su sistema. Vea Xorg para más detalles. Como mínimo debería ejecutar:

    pacman -S xorg-server xorg-xkb-utils xorg-xauth xorg-server-utils xorg-xinit
    pacman -S xf86-video-vesa xf86-input-mouse xf86-input-keyboard
    pacman -S hwd
    hwd -x
    mv /etc/X11/xorg.conf.hwd /etc/X11/xorg.conf

### Pasos finales

    pacman -S xf86-video-vmware xf86-input-vmmouse

Edite /etc/X11/xorg.conf y busque:

    Section     "InputDevice"
    Identifier  "Mouse1"

Cambie las dos siguientes líneas a esto:

    Driver      "vmmouse"
    Option      "Device"   "/dev/psaux"

Si esto no funciona (p.ej. con VMWare Fusion) intente:

Section "InputDevice"

           Identifier  "Mouse1"
           Driver      "mouse"

EndSection

En MacOS ahora debería (después de rearrancar X) ser capaz de utilizar el avance ("scrolling") de dos dedos y el doble click.

En rc.conf busque la línea MODULES= y deshabilite el módulo pcnet32 y habilite los módulos vmware de modo que quede así:

    MODULES=(!pcnet32 vmblock vmxnet vmmemctl vmhgfs)

Para que la fecha y la hora del sistema estén en sincronía, deberá estar corriendo la aplicación vmware-guestd. Ésta puede arrancar en el arranque crenado el siguiente enlace simbólico:

    cd /etc/rc.d
    ln -s /etc/vmware-tools/init.d/vmware-tools vmware-tools

Busque entonces en rc.conf la línea DAEMONS= y añadale 'vmware-tools'.

Adicionalmente, para que funcione lo de copiar y pegar entre X y el anfitrión debe ejecutar la aplicación 'vmware-user'. Añada la siguiente línea a su archivo .xinitrc o bien a .xsession (el que arranque las aplicaciones durante la inicialización de X):

    /opt/vmware-tools/bin/vmware-user &

Tenga en cuenta que algunas versiones de VMWare (p.ej. las herramientas que vienen con Fusion) están situadas en /usr/lib/vmware-tools/bin32/.

Si utiliza KDE, vmware-user tiene que ser arrancado desde la carpeta Autostart. Cree un archivo llamado vmware-user en su directorio ~/.kde/Autostart.

Escriba:

1. !/bin/bash

vmware-user &

en el archivoy grábelo.

Reinicie y todo debería funcionar.

### Utilizar carpetas compartidas con el anfitrión

Cree una carpeta de intercambio nueva seleccionando VM -> Configuración... en el menú de VMware Workstation. Seleccione la pestaña Opciones y entonces Carpeta compartida. Compruebe la opción Siempre habilitada y cree una nueva carpeta de intercambio. Para Windows XP puede crear una carpeta compartida con el nombre C y la ruta del Anfitrión C:\.

Añada entonces la siguiente línea a su archivo /etc/fstab (cambiando uid/gid como haga falta):

    .host:/ /mnt/hgfs vmhgfs defaults,user,ttl=5,uid=root,gid=root,fmask=0133,dmask=0022 0 0

Cree el directorio de montaje y monte las carpetas compartidas:

    mkdir /mnt/hgfs
    mount /mnt/hgfs

Todas sus carpetas compartidas serán ahora visibles por su nombre bajo /mnt/hgfs

    /mnt/hgfs/<Nombre de la carpeta compartida>

Ejemplo para la carpeta compartida C en Windows XP:

    ls /mnt/hgfs/C
    ... todos sus archivos de Windows bajo C:\ ...

## Vea también

Installing VMware e Installing vmware player -- lo contrario de esto ;)

Para lograr que vmxnet funcione con las cosas (como mid DEC06) actuales, revise esto: vmware tools 5.5.3, linux 2.6.19, vmxnet compile fix

Categories:

- Getting and installing Arch (Español)
- Virtualization (Español)