Archivo

Posts Tagged ‘problemas’

Montar imagen de disco Xen

febrero 3, 2011 2 comentarios

Hoy me he encontrado con que no podía montar el disco virtual de uno de mis dominios virtualizados con Xen. Estoy acostumbrado a utilizar ficheros mapeados a los dispositivos de loop, pero hasta ahora los había utilizado directamente para formatearlos con un sistema de ficheros. El problema es que para el dominio Xen, ese fichero actúa como disco y, por tanto, le introduce la tabla de particiones al inicio, y dentro de las particiones crea los sistemas de ficheros.

Por ejemplo, en el caso de estar tratando con el disco /dev/sda, si directamente formateamos el disco como ext3 con

mkfs.ext3 /dev/sda

podríamos montarlo mediante

mount -t ext3 /dev/sda /mnt

Sin embargo, si tiene una tabla de particiones, el sistema de ficheros lo crearíamos, por ejemplo en la partición 1, con

mkfs.ext3 /dev/sda1

y lo montaríamos mediante:

mount -t ext3 /dev/sda1 /mnt

El problema con asociar un fichero a un dispositivo de loop es que cuando creas una tabla de particiones sobre /dev/loop0, no se crea de forma automática el /dev/loop0p1, sino que hay que hacerlo a mano. Para ello, debemos usar la herramienta kpartx:

kpartx -a -v disco_virtual.img

Con esto se nos habrá creado el dispositivo que nos da acceso a la partición en /dev/mapper/loop0p1, con lo cual ya podemos formatearlo y montarlo tranquilamente:

mkfs.ext3 /dev/mapper/loop0p1
mount -t ext3 /dev/mapper/loop0p1 /mnt

Me ha servido un poco de ayuda lo siguiente: Pasar de xen a kvm

Categorías:Informática Etiquetas: , , ,

Firefox se congela en Linux en el EeePc 901

enero 21, 2011 2 comentarios

Llevaba tiempo sufriendo este molesto problema; y es que firefox se congelaba durante unos segundos cada cierto tiempo. Hoy por fin he sacado un ratito para ponerme a investigar y he resuelto el problema.

Parece ser que firefox 3 usa sqlite y realiza constantemente fsync para mantener actualizada su base de datos en disco. Esto provoca que se congele en el eeepc, debido a que los discos SSD que lleva tienen ciertos problemas con las escrituras constantes de pocos datos.

El autor del post donde se analiza dicho problema, sugiere en este otro post crear una partición para firefox, pero yo he optado por utilizar un disco de ram, y así me ahorro el estar modificando las particiones. La idea es mantener en disco el directorio de firefox, llevarlo a ram para trabajar con él, y volver a volcarlo al disco cuando finalicemos.

Para ello, lo primero es añadir el punto de montaje del disco de ram al fichero /etc/fstab

none /mnt/ramdisk tmpfs defaults,size=200m 0 0

Si quieremos montar ya mismo el disco de ram, basta con ejecutar mount -a

A continuación, cambio el nombre del directorio de firefox por “firefoxram”, que será el que sirva de respaldo en disco.

mv /home/user/.mozilla/firefox /home/user/.mozilla/firefoxram

Ahora enlazo el directorio que realmente utiliza firefox con el disco de ram

ln -s /mnt/ramdisk /home/user/.mozilla/firefox

Tal y como está ahora mismo el sistema, cuando firefox se abra, creará su directorio en ram con los datos de navegación del usuario, pero al apagar el sistema, estos se perderán (porque sólo están en ram). Es por eso que necesitamos el directorio de respaldo en disco. Su finalidad es que se copie a ram antes de abrir firefox, y se vuelque a disco al cerrarlo. Para ello, vamos a cambiar el ejecutable /usr/bin/firefox por un script que realice dichas tareas:

mv /usr/bin/firefox /usr/bin/firefox-bin
touch /usr/bin/firefox
chmod +x /usr/bin/firefox

Ahora, editamos el script /usr/bin/firefox y añadimos las siguientes lineas:

#!/bin/bash

cp -r $HOME/.mozilla/firefoxram/* $HOME/.mozilla/firefox
firefox-bin
cp -r $HOME/.mozilla/firefox/* $HOME/.mozilla/firefoxram/

E voilá. Adiós a los cuelgues de firefox.

Categorías:Informática Etiquetas: , , ,

CentOS 5.5 y Ubuntu 10.10 dual boot

enero 15, 2011 2 comentarios

Tras varios intentos infructíferos de instalar CentOS por red (faltaban paquetes en el servidor), grabé la imagen del dvd en un disco e instalé a la antigua (advertencia: no cabe en un pendrive de 4GB). El problema es que la máquina en la que lo he instalado necesitaba también arrancar con Ubuntu 10.10, el cual ya estaba instalado. Y llegaron mis dolores de cabeza.

Mi primera idea fue no instalar gestor de arranque para CentOS, y utilizar el grub de Ubuntu en su lugar; así que hice un update-grub, y me detectó automáticamente la partición con CentOS. El problema fue que al arrancar, me daba el siguiente error

Error: Invalid magic number

Bastó un poco de investigación para comprobar que el error venía de que el núcleo que estoy instalando es para paravirtualización con Xen, y grub no sabe cómo arrancar este tipo de núcleos. Así que modifico la entrada del grub y pongo lo siguiente


multiboot /boot/xen.gz-2.6.18-194.el5
module 	  /boot/vmlinuz-2.6.18-194.el5xen root=/dev/hda6 ro quiet
moduel 	  /boot/initrd-2.6.18-194.el5xen.img

Pues sigue sin funcionar. Ahora me da el siguiente error:

PANIC on CPU0:
Could not setup DOM0 guest OS
Reboot in five seconds...

Parece ser que a CentOS no le caigo bien. Pero por mis c*j**es que lo hago funcionar. La siguiente opción que me queda es instalar el grub que trae CentOS en su partición de arranque y pasarle el control desde el grub de Ubuntu.


insmod ext2
chainload (hd0,6)+1

¡Bingo! Problema resuelto. Sólo me queda la espinita clavada de no saber por qué el grub 2 de Ubuntu no es capaz de arrancar CentOS.

¡¡¡ACTUALIZACIÓN!!!

 

¡Ya he descubierto el problema del Kernel Panic! Menos mal, porque odio no poder encontrar explicación de algún problema, cuando todos tienen la suya. El kernel panic estaba causado por culpa de que la línea de grub de Ubuntu ponía el root=/dev/sda2, mientras que CentOS esperaba root=/dev/hda2. Lo explico todo en este post.

Categorías:Informática Etiquetas: , , ,

Autologin en Lubuntu

enero 9, 2011 2 comentarios

No estoy muy satisfecho con los cambios realizados en la versión principal de Ubuntu Netbook Edition, así que recientemente decidí probar Lubuntu en mi Eeepc 901. Para ello, lo instalé sobre Ubuntu, desinstalando los paquetes unity y ubuntu-desktop, pero esto me ha causado ciertos problemas; entre ellos, que no puedo hacer autologin. El mensaje que me aparece es

Xsession: unable to launch "Lubuntu Netbook"

Parece ser que  para lanzar la versión netbook de lubuntu, el servidor gráfico busca el ejecutable llamado “Lubuntu-Netbook”, que no existe. Así que la solución ha sido crear un enlace simbólico al verdadero lanzador:

ln -s /usr/bin/startlubuntu-netbook /usr/bin/Lubuntu-Netbook

Respecto al sistema, estoy mucho más contento que con la rama principal de Ubuntu para netbooks. Es bastante más ligero y rápido. Lo único es que todavía no he conseguido configurar lxlauncher (el escritorio tipo netbook) para mostrar los iconos que yo quiero. He encontrado googleando que se configura en /usr/share/lxlauncher/, pero ese directorio no existe en mi sistema.

Categorías:Informática Etiquetas: ,

Error en DDD. WDB: could not be started

septiembre 29, 2010 Deja un comentario

WDB: could not be started. Es el mensaje de error que de un día para otro me daba ddd. ¿Solución? He encontrado 2 en este hilo:

  1. Ejecutar ddd indicando el depurador a usar:
    $ ddd --gdb <executable> &
  2. Borrar el directorio de configuración personal de ddd:
    $ rm -rf ~/.ddd
Categorías:Informática Etiquetas: ,

Enviarte un email cuando cambia tu ip en linux

septiembre 23, 2010 3 comentarios

En el trabajo utilizan un servidor dhcp para asignar automáticamente las direcciones a cada ordenador. De hecho, son reacios a proporcionarte una ip fija, a pesar de que trabajamos con una clase B. Generalmente, la ip de mi ordenador se mantiene fija si no hacies un dhcp renew o apagas el ordenador. Pero de vez en cuando ocurre que cambia; incluso varias veces en el mismo día (imagino que cuando tienen problemas con el servidor, o cuando están haciendo pruebas o cambios de configuración con él).

El caso es que hoy es uno de esos días, y como mi trabajo no acaba en la oficina, sino que suelo continuar en casa, necesito tener acceso remoto a mi pc, y para ello necesito saber mi ip. Así que me he puesto manos a la obra para hacer un script que me mande un correo cada vez que la ip cambia. Para ello necesitamos lo siguiente:

  • sendEmail: un maravilloso programa que facilita enormemente el envío de emails desde la línea de comandos, sin tener que configurar el servidor de correo de linux.
  • El paquete knetfilter, que nos proporciona el comando getip. Aunque hay otras formas de obtener la ip con awk, por ejemplo, pero ésta es más sencilla.
  • Un servidor smtp al que mandar los correos (yo uso el de mi trabajo)

Con todo esto, he diseñado el siguiente script, que coloco en /usr/local/bin/myip


#!/bin/bash

FCONF=/etc/myip
MAIL=tu_direccion_de_correo
SERVER=servidor_smtp

# Get your ip
ip=`getip eth0 | head -n 1 | cut -d ":" -f 2`;
# Get your old ip
oldip=`head -n 1 $FCONF`

# If ip has changed, send email
# and save new ip in config file
if [ $ip != $oldip ];
then
	sendEmail -f $MAIL -t $MAIL -u "Your ip: ${ip}" -m " " -s $SERVER
	echo $ip > $FCONF;
fi

El script se encarga de comprobar cuál era tu dirección ip antes de ejecutarse y, si ha cambiado, te envía un correo con la nueva. La dirección de correo antigua se guarda en el fichero /etc/myip, el cual debemos crear y asignarle permisos de escritura:


sudo touch /etc/myip
sudo chmod a+w /etc/myip

Por último, configuramos cron para que ejecute nuestro script en el intervalo deseado. Yo lo he configurado para que se ejecute cada minuto (no me gusta esperar jejeje). Para ello, ejecutamos el comando contrab -e y escribimos la siguiente línea:


* * * * *  /usr/local/bin/myip

Listo. Cada vez que cambie nuestra ip, deberemos espera 1 minuto más el retardo de nuestro servidor smtp para saber la nueva.

Por cierto, que también sirve para ordenadores con ips privadas. Para conocer tu ip pública, en lugar de usar getip se pueden utilizar otras técnicas.

Categorías:Informática Etiquetas: , ,

WPA y WPA2 en eeepc 901 con Ubuntu 10.04 Lucid Lynx

mayo 13, 2010 1 comentario

Con los pocos días que tengo instalado Lucid Lynx, y ya es el segundo problema con que me encuentro en la nueva distribución de Ubuntu para Netbooks. Lo peor de todo es que con cada actualización surgen nuevos problemas… Aunque no es algo exclusivo de Ubuntu; en Windows suele ocurrir lo mismo.

El caso es que en casa uso seguridad WPA para conectarme a la red inalámbrica, y no consigo conectarme con el nuevo Ubuntu 10.04 desde mi eeepc901. Por lo visto, es un problema con los drivers que se solventa con el núcleo 2.6.33, pero esta distribución aún usa el 2.6.22. Lo más curioso es que con WPA2 Enterprise si funciona.

Hay dos soluciones posibles:

  1. En tu punto de acceso o router, fuerza el uso de WPA2+AES. En mi router (un SMC) por defecto se usa el modo mixto WPA/WPA2. Para mí funcionó a la perfección, jodiendo a mi novia que ya no podía conectarse desde su portátil con Windows XP :S
  2. Compila tus propios controladores. En este foro viene una explicación muy completa, que yo reproduzco a continuación:

Descarga los controladores de  http://www.ralinktech.com/ “RT2860PCI/mPCI/CB/PCIe(RT2760/RT2790/RT2860/RT2890)“ dated 01/29/2010, version 2.3.0.0

Descomprime, entra en el directorio y edita el siguiente fichero os/linux/config.mk y cambia las siguientes líneas:

HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

Edita el fichero common/cmm_wpa.c y busca y reemplaza MIX_CIPHER_NOTUSE por WPA_TKIPAES_WPA2_TKIPAES.

A continuación, debes hacer lo siguiente:


# Compilar e instalar el módulo
sudo make && sudo make install

# Quitar el módulo anterior
sudo ifconfig wlan0 down
sudo rmmod rt2860sta

# Guarda copia del módulo anterior por si las moscas
sudo mv /lib/modules/2.6.32-22-generic/kernel/drivers/staging/rt2860/rt2860sta.ko rt2860sta.ko.dist
# Copia el nuevo módulo a su lugar de destino
sudo cp rt2860sta.ko /lib/modules/2.6.32-22-generic/kernel/drivers/staging/rt2860/

# Instala el nuevo módulo
sudo depmod -a sudo modprobe rt2860sta
# Por en marcha la interfaz wifi
sudo ifconfig ra0 up

Si todo ha ido bien, ya debéis tener wifi con WPA personal funcionando sin problemas.

Categorías:Informática Etiquetas: , , , ,