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