Archivo de Abril 2008

h1

¿Cómo ejecutar Vmware Player desde Samba?

29/04/08

Cuando intentamos ejecutar con el Vmware Player una vm que está compartida por Samba puede que nos encontremos con el siguiente error:

Click para verlo en grande

Si después de revisar los permisos en el servidor Linux (a nivel de ficheros y a nivel de Samba) el problema persiste tenemos que añadir las siguientes líneas al fichero “nombre_maquina_virtual.vmx”:

extendedConfigFile = “nombre_maquina_virtual.vmxf”

virtualHW.productCompatibility = “hosted”

tools.upgrade.policy = “manual”

El fichero “nombre_maquina_virtual.vmxf (ojo a la “f”) lo creamos con el contenido como sigue:


<?xml version="1.0"?>
<Foundry>
<VM>
<VMId type="string">56 4d 0f 02 a7 5d 1b 9b-7e 70 35 ed 95 17 6e 95</VMId>
<ClientMetaData>
<clientMetaDataAttributes/>
<HistoryEventList/></ClientMetaData>
<vmxPathName type="string">nombre_maquina_virtual.vmx</vmxPathName>
</VM>
</Foundry>

El VMid lo sustituimos por el valor del campo uuid.location que hay en el “nombre_maquina_virtual.vmx”.

Después de realizar estos cambios puede que nos encontremos con este otro error:

Si no estás ejecutando ningún sistema de archivos obsoleto tipo FAT16 puede solucionarse incluyendo la siguiente línea en el vmx:

diskLib.sparseMaxFileSizeCheck = “FALSE”

Después de todo esto y si las estrellas se alinean puede que consigamos correr la maldita vm compartida por Samba en local con nuestro Vmware Player.

Viendo que la cosa va para largo doy por inaugurada la categoría VMware.

h1

Tecnología punta

24/04/08

Tecnología punta es lo que espera uno encontrarse en un avión del Ejército del Aire. O al menos yo lo espero:

Pues mi coche también dispone de tecnología punta para que no me deslumbre… ¡¡y eso que lo compré de segunda mano!!

Vía WTF? Microsiervos.

h1

Poquito a poco

22/04/08

Empezamos no entendiendo el movimiento de Hiperión: ahora no entendemos ni siquiera 2x^2 - 1. En términos matemáticos ello constituye un éxito estupendo.

Extraído del libro ¿Juega Dios a los dados?, de Ian Stewart.

h1

How old?

21/04/08

¿Qué edad tendrías si no supieras la edad que tienes?

Yo creo que me quitaría alguno: tendría unos 24 ó 25.

Vía Dockera.

h1

Las pelirrojas follan más…

15/04/08

… al menos las pelirrojas alemanas.

Y no lo digo yo. Lo dice un dudoso estudio del que hablan por aquí. Parece ser que la fama de un poco salvajes que tienen es merecida.

Pero dice más cosas divertidas: las mujeres que se tiñeron de pelirrojas lo hicieron buscando una pareja. Así que si tu novia se tiñe de pelirroja estás en tu derecho de empezar a preocuparte.

Aunque no he buscado mucho, no he encontrado ninguna información sobre el estudio. Puede que si supiera alemán encontrara algo. En estas cosas pasa lo de siempre: puede que el estudio estadístico sea más o menos serio. Pero de las conclusiones sacadas por sus hacedores a los titulares de prensa seguro que hay un buen trecho.

Vía Testosterona.

h1

A mí m’an engañao

13/04/08

Ayer estuve con Makeda viendo una exposición de muertos momificados. La gente lo llama Bodies =P

El caso es que estábamos viendo un corazón y al lado había una pareja con un niño de unos 5 o 6 años:

Niño: ¿Eso qué es?

Padre: Un corazón.

El niño pone una cara de póquer que casi me meo de la risa.

Padre: Es que los corazones no son como tú los pintas. Son así.

Niño: Perooo… ¿está dentro?

Padre: No, no. Es eso.

Niño: A mí m’an engañao.

Mientras me reía me acordé de las frases de Daniel.

h1

Defragmentar y hacer shrink a los vmdk’s

11/04/08

Actualizado 15/04/2008: Ahora el script también hace shrink a los vmdk’s.

Sé que me estoy poniendo un tanto pesado con el VMware pero es que llevo tres semanas nada mas que currando con ello y tuneando un poco las máquinas.

Lo que os pongo hoy es un pequeño shell script para automatizar la defragmentación de los ficheros *.vmdk. En principio tenía también que hacerles shrink pero la versión actual estable del VMware Server para Linux, la 1.0.5, no incluye esa opción. Creo que la beta 2.0 si que lo trae así que puede que lo incluya más adelante.

Para que el script también haga shrink hay que bajarse la versión beta 2 del Vmware Server, y copiar los binarios (la carpeta bin que hay dentro del tar) a una carpeta que definiremos en el script. No hace falta instalar esta versión del Vmware Server.

Hay que ejecutarlo en el host. Yo, por ejemplo, lo he metido en el crontab para que se ejecute cada viernes a las 22:00.


#!/bin/bash
#
# defvmdk.sh
# Fecha de creacion: 09-04-2008
#
# Script para defragmentar y hacer shrink a los
# ficheros vmdk de las vm's.
#
# Necesita el fichero defvmdk.cfg desde el que lee
# sobre que vm's debe actuar.
#
# Para poder hacer el shrink necesita tambien los
# binarios de la vesion 2 del Vmware Server (no
# importa que este otra version instalada).
#
###################################################

VMS=/root/bin/defvmdk.cfg
LOG=/root/bin/defvmdk-$(date '+%y-%m-%d').log
FTMP=/root/bin/defvmdk.tmp
VLOG=/tmp/vmware-root/vdiskmanager.log

#Binarios del Vmware Server:
VDIR=/root/bin/vmware/

export PATH=$VDIR:$PATH

echo  >> $LOG
echo "##################################" >> $LOG
echo "####### INICIO DEL PROCESO #######" >> $LOG
echo "##################################" >> $LOG

# Comprobamos que maquinas estan corriendo:
vmrun list > $FTMP

for VDIR in $(grep -v "#" $VMS)
do
  echo >> $LOG
  echo "#######" >> $LOG
  echo "####### Maquina: $VDIR" >> $LOG
  echo "####### Fecha:   $(date)" >> $LOG

  cd $VDIR
  if [ $(ls *.vmx | wc -l) -ne 1 ]; then
    echo >> $LOG
    echo "####### ERROR: No se encuentra el fichero vmx o hay mas de uno." >> $LOG
    continue
  fi
  VM=$(ls *vmx)

  # Paramos la VM si esta corriendo
  if [ $(grep "$VDIR" $FTMP) ]; then
    vmrun stop ./$VM nogui
  fi

  # Defragmentamos y hacemos shrink a los vmdk
  for VMDK in $(ls *.vmdk)
    do
      # Reiniciamos el log de vmware
      cp -p $VLOG "$VLOG.bk"
      > $VLOG

      # Defragmentamos el vmdk
      vmware-vdiskmanager -d $VMDK

      # Hacemos shrink
      vmware-vdiskmanager -k $VMDK

      # copiamos el VLOG
      echo "#######" >> $LOG
      echo "####### VMDK: $VMDK" >> $LOG
      echo "#######" >> $LOG
      echo >> $LOG
      cat $VLOG >> $LOG
    done

    # Dejamos la VM como estaba
    if [ $(grep "$VDIR" $FTMP) ]; then
      vmrun start ./$VM nogui
    fi
done

rm -f $FTMP

echo  >> $LOG
echo "###############################" >> $LOG
echo "####### FIN DEL PROCESO #######" >> $LOG
echo "###############################" >> $LOG

### FIN ###

Como habréis visto en los comentarios necesita un fichero de configuración muy simple en el que pondremos los directorios donde están ubicadas las máquinas virtuales sobre las que queremos actuar. El mío queda más o menos así:

# defvmdk.cfg
# Fecha de creacion: 09-04-2008
#
# Fichero de configuracion del script defvmdk.sh
# El proceso defragmentara los vmdk de las vm's
# no comentadas.
#
#################################################

/VMLocal/lab/1
/VMLocal/lab/2
#/maquina/que/no/se/defragmentara

Para los picas: no os riáis de mi código. Cada uno hace lo que puede XD

h1

Soy un usuario paquete

10/04/08

Hasta ahora yo me consideraba un usuario avanzado de Windows.

Llevo toda la mañana intentando montar una máquina virtual con Windows XP y ciertas aplicaciones. La idea es guardar el fichero vmdk en un repositorio accesible desde la red para que los desarrolladores monten una máquina con ese sistema operativo en un periquete cada vez que quieran. Esto lo he hecho con distintos sabores de Linux en las ultimas semanas y nunca he tardado más de dos horas. Lo cual me está haciendo descubrir que, en realidad, soy un usuario paquete de Windows.

Es cierto que en casa tengo ambos sistemas operativos pero también es cierto que sólo arranco con windows para viciarme al juego de turno (WoW en estos momentos). Y parece que esto lleva siendo así durante demasiado tiempo.

Ejemplo práctico:

Quiero cambiar el nombre del equipo: Mi PC, Propiedades, Nombre de equipo, cambiar. Realizo los cambios necesarios y Aceptar¡ERROR! No tienes permisos. Y yo me cago en tu unidad aritmético lógica. ¿Cómo que no tengo permisos? Soy el puto He-man. Soy administrador local y de red. ¡¡Soy root!! ¡¡Arrodillate ante mi!! ¡¡Uy!! Que se me va la olla. Cuando se me pasó el cabreo descubrí que era el ZoneAlarm aunque sigo sin saber por qué.

Hacer esto en Linux es tan facil como escribir hostname loquetesalgadelpito.

¿Soy yo el que se ha quedado atrás en Windows? ¿O realmente es más sencillo Linux?

h1

Más relojes

9/04/08

Sigo con los relojes de las máquinas virtuales pero hoy me enrollo menos.

Si vuetra máquina host es un Windows y utiliza la tecnología SpeedStep o similar, los relojes de las máquinas virtuales desfasarán de lo lindo. Una posible solución es realizar las mismas modificaciones que se explican en el post anterior para máquinas Linux pero en el fichero:

C:\Documents and Settings\All Users\Application Data\VMware\VMware Server\config.ini

Fuente.

Suerte y recuerda hacer copias de todos los datos importante antes de tocar nada XD

h1

Problemas con el reloj utilizando VMWare en Linux

8/04/08

Tal y como advertí en la entrada anterior aquí va el primero…

Si has intalado VMware en Linux te habrás dado cuenta que el reloj de las máquinas virtuales va más perdido que Adán en el día de la madre. Se atrasa o se adelanta que da gusto y por lo visto esto a los desarrolladores no les gusta por no se qué de los unos logs… XD

Tienes una posible solución por aquí. No voy a entrar a comentarla porque creo que está bastante claro y, sobre todo, porque a mi no me funcionó.

Pero lo que si me funcionó es esto otro. Resulta que las máquinas que tenemos utilizan la tecnología Intel SpeedStep (AMD tiene algo parecido llamado PowerNow o Cool’n'Quiet). Estas tecnologías lo que hacen es modificar la frecuencia del procesador según la carga de trabajo. ¿Y cómo sé yo si mi procesador gasta de esto? Pues yo lo averigüé cotilleando el fichero /proc/cpuinfo con la máquina host “en reposo”:

[root@localhost ~]# head /proc/cpuinfo
processor: 0
vendor_id: GenuineIntel
cpu family: 6
model: 15
model name: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
stepping: 11
cpu MHz: 1596.000
cache size: 4096 KB
physical id: 0
siblings: 4
[root@localhost ~]#

Si te fijas un poco el nombre del procesador dice que es a 2,4 GHz pero la velocidad real es de 1,6. Sospechoso, sospechoso, …

Para solucionarlo sólo tenemos que editar el /etc/vmware/config del host y añadir las siguientes líneas:

host.cpukHz = XXXXXXX
host.noTSC = TRUE
ptsc.noTSC = TRUE

Sustituyendo las equis por la velocidad máxima de tu procesador en kilohercios (2400000 en mi caso).

Reiniciamos el servicio de vmware y listo.

Por último asegúrate de tener desactivado en las máquinas virtuales cualquier software de sincronización horaria tipo ntpd.

Actualizado: También existe una solución si la máquina host es un Windows. Ahora mismo la estoy probando. Si funciona os contaré.

Más actualizado: Probado y me funciona en Windows.