* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

Solución de problemas con Draklive

No me digas más. Ahí estás tú, con toda tu ilusión, haciendo tus experimentos con Draklive, yendo hasta donde ningún hombre o manatí ha ido jamás, y de repente te aparece un error al que no sabes por dónde atacar.

Bienvenido al club. Por suerte para ti, en este club tenemos soluciones para ello. O no, como descubrirás cuando sigas leyendo...

Protocolo general

A continuación se presenta el protocolo general de actuación al encontrarse con un problema en Draklive, o en el sistema live generado. El orden de ejecución no es relevante, y un problema puede solucionarse sin necesidad de aplicar todas las acciones. No obstante, nótese que no son unas normas, sino más bien unas directrices:

  • Llorar
  • Llorar desconsoladamente
  • Llorar amarga y desconsoladamente
  • Correr en círculos haciendo aspavientos
  • Vender el ordenador y comprar un monociclo. Tus ojos te lo agradecerán
  • Volver a llorar
  • Tirar un dispositivo con DRM a un volcán y ofrecerlo en sacrificio a San IGNUcius
  • Sacarle brillo al ordenador. Si no hace lo que debe, al menos que esté bonito
  • Seguir haciendo aspavientos. Hasta que no queden moscas en la habitación
  • Mentar en arameo, malayo, setsuana y otras lenguas a los que intentan colarnos las patentes de software en Europa (volverán, vaya si volverán... mala hierba nunca muere)
  • Pedir a vfmmeo La Cizalla (TM) o a SinnerBOFH El Bate (TM) para persuadir al error para que desista

(No me juzguéis por esta lista, fue escrita un día en que por motivos que no vienen al caso dormí menos de 3 horas. No pidáis que sea gracioso. O coherente. Con que sea correcto sintácticamente me parece suficiente :P )

Por increíble que parezca, puede haber casos en los que incluso tras haber llevado a cabo todas las acciones mencionadas el problema persista. En serio, a veces ocurre.

Mal asunto. Las cosas como son: las probabilidades de que alguien pueda ayudarte con un problema de Draklive son bastante pequeñas por lo altísimamente específico que sería. Puedes probar a escribir un mensaje en el foro, pero yo que tú no esperaría un aluvión de respuestas...

Cuando hay problemas toca remangarse e investigar Draklive con lupa. Cuando algo falla, te tocará leerte el código fuente de Draklive, ver qué está haciendo y deducir por qué falla, posiblemente teniendo que investigar en el camino temas relacionados pero independientes de Draklive, como qué hacen diversas órdenes, cómo se configura algo, la tecnología subyacente en ciertas operaciones del sistema, o incluso programación en Perl para entender qué estás leyendo (si bien es cierto que yo soy incapaz de programar nada en Perl, pero en general entiendo el código de Draklive (aunque algunas cosas siguen siendo un oscuro misterio para mí)).

Si el fallo no es en la creación sino en la propia ejecución del sistema live la fiesta aumenta hasta niveles insospechados de jolgorio y diversión, porque puede ser cualquier cosa.

En definitiva, que si tienes un problema con Draklive más te vale que te guste House, porque vas a pasarte un buen rato haciendo diagnósticos diferenciales. Ahora, que la placentera sensación de solucionar uno de estos problemas místicos... Ahora ya sé por qué le gustan los puzzles ;) (Y si no ves House no te preocupes, que es un comentario irrelevante :P )

Pero bueno, ya que la sección se titula Solución de problemas... solucionemos algún problema.

Problemas varios

Tristemente para mí, en la elaboración de este manual me encontré con errores de lo más pintorescos, cuyos síntomas y solución fui apuntando según iban ocurriendo. Felizmente para vosotros, en mi infinita bondad decido compartir mis notas al respecto para intentar evitar el sufrimiento a mis semejantes si os encontráis con alguno de ellos.

Draklive falla y se cierra

En ocasiones, Draklive falla, se cierra y muestra un diálogo de error de Drakbug, indicando en qué línea se produjo el fallo y demás. Pero si vamos a mirar la línea en que dice que se produjo el fallo posiblemente encontremos que no tiene sentido. ¿Qué está pasando entonces?

Lo más probable es que nuestro archivo de configuración (live.cfg), o el archivo de la instalación automática (auto_inst.cfg.pl) no sean correctos. Su sintaxis puede estar bien, pero los elementos pueden no ser los esperados. Por ejemplo, puede esperarse una lista de elementos pero encontrarse un elemento singular, sin ser lista. O puede faltar un elemento en la configuración que, incluso aunque esté vacío, necesita aparecer. Así que no os dejéis engañar por el diálogo de Drakbug ;)

No se puede montar mdkinst.sqfs

Si se intenta crear un LiveUSB con Mandriva 2008.1 desde Mandriva 2007.1 realizando la etapa de instalación en el entorno chrooteado, el archivo mdkinst.sqfs no podrá montarse. Al parecer, cambió el formato de los archivos SquashFS entre ambas versiones. Puede solucionarse montando en una Mandriva 2008.1 (por ejemplo, en una máquina virtual) dicho archivo, copiando su contenido a Mandriva 2007.1, y luego generando el archivo sqfs desde la propia Mandriva 2007.1. Pero lo mejor es crear LiveUSB de la misma versión que donde se ejecute Draklive. ¿Me piensas hacer caso ahora? :P

No se pueden instalar los temas de Mandriva Flash o One

La instalación automática puede fallar por motivos varios. Un problema curioso surge si se utiliza como repositorio un DVD de Mandriva Free y la variable $mandriva_theme es Flash o One. El DVD de Mandriva Free sólo incluye el tema de Mandriva Free, pero a la hora de resolver dependencias, utiliza el tema que le hayamos indicado. Como no existen los temas para Flash o One, falla al resolver dependencias y no puede realizar la instalación. La solución, simplemente, consiste en establecer un tema disponible cambiando la variable, añadiendo los paquetes pertinentes...

No se encuentra un servicio a deshabilitar

La deshabilitación de los servicios indicados en la entrada disable_services en el paso de post-instalación se realiza por medio de chkconfig --del. Si alguno de los servicios indicados no está instalado, la salida de Draklive nos indicará que error al leer la información del servicio nombreServicio: No existe el fichero o el directorio (donde, lógicamente, nombreServicio será el nombre del servicio en cuestión).

No obstante, podemos ignorar tranquilamente este problema ya que es inocuo. Si no puede deshabilitar el servicio, simplemente pasará al siguiente y continuará como si nada.

También se nos avisará si se está deshabilitando un servicio necesario para que otro que aún está activo funcione.

No se encuentra el dispositivo /dev/loop0

El mal adquiere muchas formas. Ésta es una de las más escalofriantes. Aquí tenemos un buen ejemplo de por qué toquetear más de la cuenta provoca momentos del desconcierto más absoluto.

Si en el arranque del sistema live uno se encuentra que:

nash-mount: "error mounting /dev/loop0 on /live/distrib": device not found

y revisando linuxrc (el script que utiliza initrd para hacer su magia) se encuentra con

nash-mount -o umask=0000 -t vfat LABEL=MDVDANI /live/media
/bin/losetup /dev/loop0 /live/media/loopbacks/distrib.sqfs
nash-mount -o ro -t squashfs /dev/loop0 /live/distrib

uno podría pensar que, por algún extraño motivo, el dispositivo /dev/loop0 no se asoció con distrib.sqfs y que al ir a montarlo falla por eso. Desconfía. Miente más que habla.

Si encima entramos en la consola que nos ofrece el sistema al no poder arrancar, como linuxrc sí se ejecutó del todo aunque algunos pasos fallasen, aquello será una extraña mezcolanza de cosas en la que es difícil discernir qué está bien y qué mal.

Las órdenes del sistema tampoco ayudan mucho, ya que son las que ofrece busybox, que está preparado para ocupar lo menos posible, y digamos que los mensajes de error que da no son un buen ejemplo de cómo aclarar por qué se produce un fallo (vamos, que te dice que la operación falló, pero no por qué).

A la vista de todo esto tuve una especie de epifanía y decidí no fiarme del error que daba al arrancar y explorar todas las posibilidades. Y una que me parecía extraña, pero posible, era que el entre los módulos del kernel de initrd no estuviese el de SquashFS. Me parecía muy extraño, porque ya dije que Draklive se encargaba de todo, pero por mirar...

Y así era. No estaba el módulo de SquahsFS, pero sí el de SquashFS-LZMA. ¿Cómo puede ser esto posible? Bien, el motivo es que al hacer la modificación del entorno para que Draklive no usase SquashFS-LZMA, en un despiste no le indiqué que los módulos que necesitaba eran loop y squashfs, sino que al usar el diabólico copiar y pegar le dije que usase loop y sqlzma.

Aún así, lo normal sería que al ir a generar initrd, se quejase de que no encontraba el módulo y no continuase. Pero mira tú lo que son las cosas, que el módulo sí que estaba, porque estaba haciendo experimentos con SquashFS-LZMA, y se me había olvidado quitarlo.

Bueno niños, ¿qué hemos aprendido con todo esto? Que un cúmulo de casualidades poco probables y desafortunadas pueden convertirse en un rompecabezas harto intrigante.

No se puede montar system.loop

Mira que dije que si en squash_union establecemos un tamaño mínimo, Draklive no formateará el archivo de loop. Mire que dije que al no tener archivo de loop válido (por no estar formateado), esto hará que al ejecutar el LiveUSB se comporte como un LiveCD, ya que no tendrá dónde guardar los cambios. Pero nada, pa qué me vas a hacer caso :P Que sí, que también puede ser otra cosa, pero yo empezaría mirando si system.loop está sin formatear.

En este caso la solución pasa por formatear nosotros mismos el archivo system.loop mediante

mkfs.ext2 -m 0 -F system.loop

o bien no indicar un tamaño mínimo para el archivo de loop en la configuración de Draklive, caso en el que Draklive formateará él mismo el archivo al no ir a utilizarse draklive-resize.

Se agotan los dispositivos de loopback

Si falla el paso master, puede ocurrir que quede una imagen montada como loopback. En sucesivas ejecuciones se montará la misma imagen en nuevos dispositivos loopback, al estar los anteriores ocupados. Esto puede provocar que se llenen todos los dispositivos, y Draklive acabe fallando al no disponer de dispositivos de loopback para utilizar.

Incluso si se desmontan mediante umount los dispositivos en cuestión, se seguirán llenando hasta que no quede ninguno libre, momento en el que se crearán de /dev/loop0 a /dev/loop255, pero Draklive seguirá fallando igualmente.

Suena a bug, pero como mi sistema está hecho unos zorros igual es cosa suya... ¿Que por qué no arreglo mi pobre sistema? Porque estoy ocupado escribiendo este manual :P

El LiveUSB no arranca en la máquina virtual

Mucho ojo al probar el LiveUSB en la máquina virtual. Si el LiveUSB no arranca, y falla con una larga retahíla que comienza por

mount: could not find filesystem 'LABEL=MDVUSBROOT'

(MDVUSBROOT o la etiqueta que hayamos puesto al LiveUSB, si es que no se usó la que viene por defecto), puede ser que sea un error del sistema generado o el bug de las etiquetas en minúsculas en Mandriva 2008.1, pero es mucho más posible que sea un problema mucho más sencillo: que la máquina virtual no encuentra ningún USB.

Y el motivo puede ser debido a un bug ya conocido de QEMU debido al cuál, a veces, al usar un dispositivo USB en una máquina virtual, cerrar dicha máquina, y lanzar otra de nuevo QEMU no reconoce de nuevo el dispositivo USB.

O puede ser por algo que me hizo perder una tarde casi entera: poner mal el identificador del dispositivo USB. Me habían pedido un LiveUSB, así que antes de grabarlo en la memoria que me habían dado para ello, decidí probarlo en la mía. En la mía funcionaba sin problemas, pero tras grabarlo en la memoria que me habían dado no había forma de que arrancase. No tenía ni idea de qué podía ser, así que cambié opciones de arranque, regeneré la distribución, formateé la memoria, buceé por el código de Draklive, sacrifiqué a un usuario de Powerpack ilegal, etc, etc. Pero nada funcionaba... hasta que me di cuenta de que no estaba cambiando el vendor_id y el product_id del -usbdevice host:vendor_id:product_id al invocar QEMU con la otra memoria. Sí, no digáis nada, ya lo sé :P

Quiero leer más de este manual

Dado que, por increíble que parezca, el manual se terminó al fin, tienes un problema ya que lo único que puedes hacer es volver a leerlo desde el principio una y otra vez hasta que canses. No obstante, si quieres leer más de este manual posiblemente tengas un problema mayor relacionado con el masoquismo, deberías hacértelo mirar.

Para el resto que hayan llegado hasta aquí y aún conserven un atisbo de raciocinio, felicidades, el momento que estabais deseando (y yo no os podéis ni imaginar hasta qué punto) está aquí: ¡se acabó! :)

Ahora, partid mis pupilos, superad a este humilde redactor y ni por asomo maestro, asombrad al mundo con vuestras creaciones, y no subestiméis el poder del lado oscuro. Ya sé que no viene a cuento, pero creo que en todo el manual no hice ninguna referencia a Star Wars, así que iba siendo hora.

Pero antes de todo esto, salid a tomar el aire a la calle. Lo creáis o no, existe un mundo más allá de los píxeles. Conozco a gente que dice que estuvo allí... Hubiese quedado mejor la referencia a Blade Runner con "He visto cosas que nunca creeríais", pero la firma de vfmmeo llegó primero. En su defecto hubiese servido una cita de Matrix, pero ahora mismo no recuerdo ninguna.

Sí, estoy divagando desde hace un rato sobre cosas que no tienen nada que ver con el manual. Lo curioso es que sigas leyendo, ¿no crees? Ya, yo también soy de los que se queda hasta el final de los créditos en las películas por si sale algo más, pero puedes creerme, aquí ya no hay nada que ver.

Ahora podría empezar a escribir cosas que podrías estar haciendo en lugar de leyendo esto, como hacía el gran final del Monkey Island. Pero como no estoy ni de lejísimos a la altura de tan magna obra, creo que va siendo hora de dejarlo. Aunque también podría copiar las frases y pegarl... Vale, vale, ya me callo, jo :(