multicd.sh : Combinando varias distribuciones en CDs en uno sólo

multicd.sh es un shell script creado para construir una imágen CD multiboot que contenga diferentes distribuciones Linux y/o utilidades.

Castellano | English | Français

Y ¡tiene sus ventajas!, entre ellas tenemos:
  • La de no necesitar quemar múltiples CDs para pequeñas distribuciones.
  • Si Usted ya tiene imágenes ISO, con ésto necesitará descargarlas de nuevo.
  • Cuando salga publicada una nueva versión de la/s distribucio/nes que en el CD esten inclídas, bastará con simplemente descargar la nueva versión, volver a correr el script y reconstruir una nueva imágen multiboot.



Instrucciones:

Crear un carpeta para construir la imágen. En cuanto al nombre a darle, el puede ser cualquier nombre. Por ejemplo, se lo puede llamar, a modo de ejemplo: « multicd ».

Descargar el script multicd.sh y salvaguardarlo en la carpeta que crearon en el paso anterior. (Para la versión 5.0 +, descargue el multicd-[versión]-combined.sh a aquella carpeta y descomprimir multicd-[versión]-seperate.tar.gz en dicha carpeta.)

Copiar o crear links simbólicos de las imágenes boot soportadas a los archivos en dicha carpeta. Nota: siempre deben conservar los nombres que aparecen abajo, entonces, por ejemplo, Puppy debe ser "puppy.iso"). Sólo las distribuciones que son soportadas funcionan en este script.

Instalar mkisofs o genisoimage. Si su distribución ya viene con un programa de quemado de CD/DVD, aúnque, posiblemente ya Usted lo tenga.

Abrir un terminal, ir hasta la carpeta (que a modo de ejemplo se ha dado en llamar "multicd"), que ha sido creada en el paso 1, y hacerla ejecutable y luego ejecutarlo:

chmod +x multicd*.sh
sudo ./multicd*.sh

El script detectará cuáles son las imágenes que estan presentes, y hará el CD por Usted. Pueden ir apareciendo en el menú obrante en el CD final, en el orden que hayan ido apareciendo. (Nota: si la medida final es superior a 700 MB, tendrá que usar un DVD.

El archivo imágen será creado en la carpeta, que en el caso y a modo de ejemplo era "multicd", y el nombre que contendrá será, siempre siguiendo en el ejemplo: "multicd.iso"

Los argumentos del script:


b: no se incluye Balder FreeDOS (sólamente v4.9 y versiones inferiores; en la v5.0 hay que incluirlo manualmente)

c / md5: incluye el archivo MD5 checksum (md5sum.txt)

m: no incluye Memtest86+

modules: seleccion con Slax moudles que hay que copiar (requiere la instalación de dialog)

v: mas verbose

Distribuciones soportadas:


Nota: con la versión 5.0 y superior, estas distribuciones aparecerán en orden alfabético. Cambiar los archivos de la carpeta de plugins, cambiará el orden.

Ubuntu Live CD → ubuntu.iso

Linux Mint → linuxmint.iso (no se encuentra en algunos DVD de Ubuntu)

Knoppix → knoppix.iso (las versiones 5 y 6 estan soportadas. Si Usted usa la versión DVD, KNOPPIX2 será salteado. Usted, siempre puede usar la 5.3.1 Edición Japonesa si prefiere KDE.)

-personalizada-

Debian Live → binary.iso

-compilación-

Ultimate Boot CD → ubcd.iso

Slax → slax.iso

Tiny Core Linux → tinycore.iso

Puppy → puppy.iso

Macpup → macpup.iso

Feather → feather.iso

SliTaz → slitaz.iso

Austrumi → al.iso

GeeXboX → gbox.iso

DSL →dsl.iso

Slax modules → *.lzm

DeLi Linux → deli.iso

TinyMe → timyme.iso

antiX → antix.iso

Wolvix → wolvix.iso

CDlinux → cdlinux.iso

-particionada y especializada-

RIPLinuX → riplinux.iso

SystemRescueCd → sysrcd.iso

Trinity Rescue Kit → trk.iso

INSERT → insert.iso

Parted Magic → pmagic.iso

GParted Live → gparted.iso (puede ser algun CD como Debian Live)

Offline NT Password & Registry Editor → ntpasswd.iso

EASEUS Disk Copy → diskcopy.iso

Clonezilla → clonezilla.iso

PING → ping.iso

Endian Firewall → efw.iso

NetbootCD → netbootcd.iso

Ubuntu (hardy or jaunty) mini.iso → ubuntu-mini.iso

Debian (lenny,squeeze or sid) mini.iso → debian-mini.iso

Fedora 11 netinst → fedora-boot.iso

openSUSE NET iso → opensuse.iso

Mandriva boot.iso → mandriva-boot.iso

Arch Linux FTP or CORE → arch.iso

FreeDOS base or full CD → fdbasecd.iso/fdfullcd.iso

Any floppy disk image → *.img or *.imz (could be Super Grub Disk, MS-DOS, etc.)

Any floppy disk image → games/*.img or games/*.imz (para imágenes booteables DOS con juegos)

GRUB4DOS grub.exe → grub.exe

DBAN iso image → dban.iso

Balder (FreeDOS) → automatic

Memtest86+ → automatic

Descarga:


Este script puede descargarse de ftp://downloads.tuxfamily.org/multicd/. Para la versión 5.x, hay dos formatos: "combined" que es un script simple, and "seperate" que es el script principal con la carpeta plugin (en formato .tar.gz). ("Combined" es una construcción que viene de "seperate" con combine.sh, la cual viene incluída con la descarga de "seperate".)

¿Cómo trabaja multicd.sh?


Cada plugin, posee su propio archivo en la carpeta de plugins. Y, por ejemplo, el plugin feather.sh, corresponde a Feather Linux.

#!/bin/sh
set -e
#Feather Linux plugin for multicd.sh
#version 5.0.1
#Copyright (c) 2009 maybeway36
#
#Permission is hereby granted, free of charge, to any person obtaining a copy
#of this software and associated documentation files (the "Software"), to deal
#in the Software without restriction, including without limitation the rights
#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
#copies of the Software, and to permit persons to whom the Software is
#furnished to do so, subject to the following conditions:
#
#The above copyright notice and this permission notice shall be included in
#all copies or substantial portions of the Software.
#
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
#THE SOFTWARE.
Esta sección contiene el comando "set -e" que llama al script a ejecutarse o terminar con errores, el nombre y la versión del plugin, y la Licencia MIT.

if [ $1 = scan ];then
if [ -f feather.iso ];then
echo "Feather"
fi

multicd.sh llama a esta sección cerca del comienzo del script. Cada plugin escaneará buscando las imágenes ISO respectivas en la carpeta o a las que fueron incluidas a traves de links virtuales. Para algunos plugins, esta tarea puede ser complicada, Ej. si dos CDs no pueden estar en el mismo disco.

elif [ $1 = copy ];then
if [ -f feather.iso ];then
echo "Copying Feather..."
if [ ! -d feather ];then
mkdir feather
fi
if grep -q "`pwd`/feather" /etc/mtab ; then
umount feather
fi
mount -o loop feather.iso feather/
mkdir multicd-working/FEATHER
cp -R feather/KNOPPIX/* multicd-working/FEATHER/ #Compressed filesystem
mkdir multicd-working/boot/feather
cp feather/boot/isolinux/linux24 multicd-working/boot/feather/linux24
cp feather/boot/isolinux/minirt24.gz multicd-working/boot/feather/minirt24.gz
umount feather
rmdir feather
fi

Esta es la sección de copiado, esta ubicada en el medio de multicd.sh. Primero, el plugin si la imágen ISO esta ahí (y repite - si es necesario), luego construye el punto de montaje para la imágen ISO, se asegura que nada se encuentre ya montado ahí, acto seguido procede al montado.

Luego del montado, los componentes que son necesarios se copian en el directorio de trabajo, creado por el usuario. Para el caso de Feather Linux, busca el directorio de KNOPPIX (el cual es renombrado a FEATHER lo que no lo hace entrar en conflicto con la versión actual de Knoppix,) El kernel, y el archivo initrd. Acto seguido, el punto de montaje es desmontado y removido.

Cada imágen ISO tiene diferentes archivos que necesitan ser copiado. En algunos casos pueden ser un Kernel, un archivo initrd, y un archivo o carpeta con una imágen comprimida del sistema de archivos (caso Ubuntu's casper.)

 elif [ $1 = writecfg ];then
if [ -f feather.iso ];then
cat >> multicd-working/boot/isolinux/isolinux.cfg << "EOF"
LABEL feather
MENU LABEL ^Feather Linux
KERNEL /boot/feather/linux24
APPEND ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 initrd=/boot/feather/minirt24.gz knoppix_dir=FEATHER nomce quiet BOOT_IMAGE=knoppix
LABEL feather-toram
MENU LABEL Feather Linux (load to RAM)
KERNEL /boot/feather/linux24
APPEND ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 initrd=/boot/feather/minirt24.gz knoppix_dir=FEATHER nomce quiet toram BOOT_IMAGE=knoppix
LABEL feather-2
MENU LABEL Feather Linux (boot to command line)
KERNEL /boot/feather/linux24
APPEND ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 initrd=/boot/feather/minirt24.gz knoppix_dir=FEATHER nomce quiet 2 BOOT_IMAGE=knoppix
EOF
fi

La tercera parte del plugin del script es invocada cuando se construye la imagen. Esta sección agrega los comandos de ISOLINUX al nuevo isolinux.cfg. Chequea si la imágen ISO esta ahí (¡si! ¡de nuevo!,) realizdo esto, agrega texto a isolinux.cfg. Chequea el isolinux.cfg de la imágen ISO origina y verifica lo que ahí debe poner. Tenga en cuenta que si los archivos no se encuentra en su lugar, en el CD original, Usted tendrá que hacer manualmente los cambios, cosas como esta, por ejemplo "/boot/feather" en lugar de "/boot/isolinux" o agregando "knoppix_dir=FEATHER".)


else
echo "Usage: $0 {scan|copy|writecfg}"
echo "Use only from within multicd.sh or a compatible script!"
echo "Don't use this plugin script on its own!"
fi


El final, siempre es el mismo. Si el script no es invocado con alguno de los tres argumentos multicd.sh (ej. que el usuario los llame separadamente), el script interpretará que el usuario no desea servirse de ellos.

Licencia y contacto:


multicd.sh viene SIN GARANTÍA y se provee bajo la Licencia MIT.

Copyright (c) 2010 maybeway36

Por este medio se concede autorización, libre de toda carga, a cualquier persona que obtenga una copia de este software y la documentación que a él viene asociada en el archivo (el "Software"), para utilizar el software sin restricción alguna, incluso sin obligación de pago de impuesto alguno, se concede plenamente el derecho de uso, copia, modificación, publicación, distribución, sub autoización y/o venta copias de este software que esta preparado para todo ello, sujeto a las siguientes condiciones:

El susodicho aviso de copyright y este aviso de permiso deben ser incluidos en todas las copias o partes sustanciales del Software.

EL SOFTWARE ES PROPORCIONADO "COMO ESTA", SIN GARANTÍA DE CUALQUIER CLASE, EXPRESA O IMPLICITA, INCLUSO, PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, UTILIZACION FÍSICA CON UN OBJETIVO PARTICULAR Y SIN INFRACCIÓN. LOS AUTORES O TITULARES DE COPYRIGHT NO PUEDEN SER OBLIGADOS POR CUALQUIER RECLAMACIÓN, DAÑOS U OTRA RESPONSABILIDAD,SI EN UNA ACCIÓN DE CONTRATO, AGRAVIO COMETIDO POR OTRA PARTE, EN RELACIÓN O NO AL SOFTWARE O AL USO U OTRO TRATO EN EL SOFTWARE.

Asegúrese si Dan Born's multicd no es el programa de backup que Usted estaba buscando.

Para mas preguntas, el mejor modo de hacer preguntas, lo encontrará en los forums Ubuntu, es un buen camino a andar. También puede contactarme (maybeway36) por e-mail.