Mejor que sobren y no que falten.

Hay momentos en que de todas las opciones disponibles, ejecutar un entorno gráfico adicional (una nueva instancia del servidor X) es la mejor, por ejemplo:

  • Juegos sobre Wine: Se obtiene mejor rendimiento de video si el juego se ejecuta sobre un entorno gráfico para el solito.
  • Aplicaciones que toman el control del teclado y mouse: El cliente de terminal server en modo pantalla completa por ejemplo, rdesktop –f se adueña del teclado y mouse con lo que no se le puede minimizar ni cerrar a menos que se cierre sesión en la máquina remota. Correr rdesktop en modo full screen en su propia instancia de del X server permite alternar entre esta aplicación y las demás simplemente pulsando control + alt + F<número>.
  • Máquinas virtuales en modo pantalla completa: Por pura comodidad, tener la máquina virtual en modo pantalla completa en una instancia adicional de X. Una vez que te acostumbraste no hay vuelta atrás.

Seguro que me estoy olvidando de un largo etcétera, ¿Se les ocurre algún otro uso para esto?

Para hacer un acceso directo que lance una aplicación en una nueva instancia de X basta con crear un archivo de texto ejecutable que diga:

X :3 –ac –terminate &      # Ejecutar un nuevo X server, cerrar X cuando no queden aplicaciones activas

sleep 2                           # Dos segundos de espera para que X levante.

DISPLAY=:3 <nombre de aplicación a ejecutar> # Ejecutar la aplicación en :3 de X.

Esto ejecutará la aplicación en su propia instancia de X que será accesible en CTRL + ALT + F8.

Para disponer de menos ttys ocupadas y poder llenar el espacio con instancias de X, editando el archivo /etc/inittab y renombrando las líneas en donde se hace respawn de cada una de las tty´s por ejemplo:

# c6:2345:respawn:/sbin/agetty 38400 tty6 linux

Hoy me ví en la necesidad de hacer una imagen de DVD, cosa que hacía años no necesitaba en absoluto, sonará raro pero si tengo un .iso almacenado por ahí es por que la pirateé bajé de internet o me lo pirateó pasó un amigo o colega, realmente llevaba mucho tiempo sin necesitar crearme una imagen de CD hasta hoy.

No habiendo ni un windows a la redonda para usar Nero, CloneCD, Alcohol 120%, Daemon tools o similar ni siquiera lo pensé y ejecuté mi grabador de CD/DVD de cabecera en Linux: CDW

Screenshot de CDW

Se que soy un bicho raro grabando cd/dvds desde la consola habiendo tantas aplicaciones llenas de botoncitos y controles deslizables pero pruébenlo y después me cuentan, 300Kb de pura magia.

¡Cual no sería mi sorpresa al encontrarme con que no puedo crear una imagen de DVD desde CDW!

Un poco decepcionado, media búsqueda en google de por medio, terminé pegándome una cachetada en la frente al grito de D´OH! tal y como haría Homero.

Como ya comenté en otra ocasión, una de las cosas que hace poderoso a Linux es su total incapacidad para distinguir entre un dispositivo y un archivo. Linux no necesita ningún programa adicional para crear una imágen de CD o DVD en el disco rígido, la utilidad disk-dump viene de serie pre-instalada en todas las distribuciones habidas y por haber. Basta con hacer un volcado de un dispositivo en un archivo con disk-dump para hacerse con un bonito archivo ISO sin el menor esfuerzo:

dd if=<aquí el path a tu cdrw/dvdrw, usualmente /dev/sr0 o /dev/cdrwX> of=archivo.iso

Y después me preguntan por que uso Linux…

Si no entendiste nada de lo que escribí mas arriba, te dejo el manual de disk-dump.

Para instalar CDW en Gentoo, complicadísimo como siempre:

emerge cdw

Como ya he mencionado en otras oportunidades, arranco desde la red usando PXE prácticamente de todo. Imágenes de CD y DVD, Imágenes de diskette, algunas distribuciones de Linux, etc…

Por masoquismo elección personal, mi única distribución de Linux instalada en todas mis PC es Gentoo así que tenía como asignatura pendiente poder arrancar una instalación de Gentoo desde la red, cosa que de por sí no es nada facil ya que si por algo se caracteriza Gentoo es por su capacidad de personalización en función del hardware.

Como hace unos días me hice con una PC que voy a usar como mediacenter se me ocurrió: ¿Por que no hacerla arrancar desde la red y aprovechar el 100% del disco rígido de la misma para almacenamiento multimedia?

Así que me hice con la guía de Gentoo para terminales diskless y me puse dedos a la obra.

Al menos dos horas estuve dándole cabezasos a la pantalla. El sistema se negaba sistemáticamente a montar la partición raíz en modo R/W (lectura y escritura).

Al no poder montar en modo R/W la partición raíz, la gran mayoría de los servicios quedaban sin iniciarse. Esto me llevó a revisar toda la configuración de punta a punta, a googlear hasta los rincones mas recónditos, a buscar y remilbuscar en los foros de Gentoo y por último a probar soluciones de esas que no tienen ninguna lógica, de las que rayan en lo esotérico.

¿Cual fué la solución?

Pasarle al kernel durante el arranque la opción rw.

Suena lógico, ¿No?

No, no tiene ninguna lógica. La línea de grub que me permitió por último dar con un sistema funcional que cargue / en modo R/W es esta:

kernel /gentoo-2.6.32 ip=dhcp rw root=/dev/nfs nfsroot=192.168.0.1:/diskless/mediacenter

Noten la posición de la opción rw. Esto no está documentado en ningún lugar, lo dejo por aquí para quien pueda necesitarlo el día de mañana con la esperanza de que –google de por medio– alguien llegue hasta este blog y se ahorre un dolor de cabeza.

Como cada vez agrego mas imágenes .iso de CD a las que uso para bootear desde la red y acaba de salir la versión 10 de Ubuntu, quería ponerla en mi lista de distribuciones disponibles en el menú de grub para poder arrancarla usando PXE sin tener que grabar un CD.

Sorpresa: De golpe me encontré con que no hay forma de montar mas de ocho dispositivos de tipo bucle:

~ # mount -o loop ubuntu-10.04-rc-desktop-i386.iso /mnt/ubuntu10/
mount: could not find any free loop device

Mirando la lista de dispositivos tipo bucle me doy cuenta de que solo tengo 8:

~ # ls -d /dev/loop*
/dev/loop /dev/loop0 /dev/loop1 /dev/loop2 /dev/loop3 /dev/loop4 /dev/loop5 /dev/loop6 /dev/loop7

¿Solución?

Pedirle al kernel que genere unos cuantos mas, pasándole la opción max_loop al kernel durante el inicio editando para esto el menú de grub:

title Gentoo Linux 2.6.28-r5
root (hd1,0)
kernel /boot/kernel root=/dev/sdb3 panic=10 max_loop=16

Con eso tengo para un tiempito mas antes de que se me acaben de nuevo.

Por cierto, si a alguien pudiera interesarle como bootear Ubuntu 10.04 por la red usando PXE, mi entrada en el menu.lst de Grub dice:

title Ubuntu 10.04
kernel /ubuntu1004/vmlinuz file=/ubuntu1004/ubuntu.seed boot=casper netboot=nfs nfsroot=192.168.0.12:/mnt/ubuntu10 nox locale=es_ES bootkbd=es console-setup/layoutcode=es quiet splash —
initrd=/ubuntu1004/initrd.lz