[LUG.ro] Pasos para desarmar y armar una iso de knoppix

Gustavo Guillermo Pérez lugro@lugro.org.ar
Sun, 27 Feb 2005 23:30:41 +0000


Bueno, me preguntaron en privado sobre esto y prefiero publicarlo en la lista 
por si le sirve a alguien más, sobre todo si queremos promocionar el S.L. 
entonces es un granito de arena para que funcione en más máquinas.

La idea original es hacer que knoppix arranque y detecte un archivo en alguna 
particion o una partición de swap y la monte automáticamente.
Knoppix utiliza syslinux, por lo tanto en la carpeta boot de la estructura del 
CD-ROM se encuentran los discos RAM y el kernel correspondiente a cada opción 
de arranque, lo que vamos a hacer es desarmar la imagen para el kernel 2.6.X 
por ejemplo y al mecanismo linuxrc de arranque lo modificaremos.

Como extraemos el disco RAM partiendo de la ISO descargada:
# mount -o loop /xtras/sata/rw2/KNOPPIX_V3.7-2004-12-08-EN.iso /mnt
# mkdir /tmp/knoppix
# cp -Rpv /mnt/* /mnt/
# cd /mnt/boot
# gzip -d minirt26.gz

Ya tenemos una copia completa del CD en /tmp/knoppix y descomprimido el disco 
RAM. en el mismo lugar como "boot/minirt26", ahora lo vamos a montar 
virtualmente para hacerle modificaciones:
# mkdir dram
# mount -o loop minirt26 dram
# cd dram
# mc -e linuxrc

El ultimo comando abre el archivo con el editor de MC, se puede usar cualquier 
otro, hay que agregarle algo como lo de abajo:


for SWAPHDD in a b c d e f g h i j k ;
    do
    for PART in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ;
    do  
 if /sbin/swapon /dev/hd$SWAPHDD$PART;
 then echo "Cargando swap desde /dev/hd$SWAPHDD$PART" ; 
 else 
  mkdir /hd$SWAPHDD$PART
  mount /dev/hd$SWAPHDD$PART /hd$SWAPHDD$PART
  if test -e /hd$SWAPHDD$PART/knoppix.swp;
   then losetup /dev/loop3 /hd$SWAPHDD$PART/knoppix.swp;
    swapon  /hd$SWAPHDD$PART/knoppix.swp;
   else umount  /hd$SWAPHDD$PART
    rmdir  /hd$SWAPHDD$PART
  fi
 fi
    done
done

#SCSI HDD (mmm esto en general no lo necesitamos excepto por algunas serial
#ata, pero si tenemos serial ata no creo que queramos hacer un archivo de
#swap)
for SWAPHDD in a b c d e f g h i j k ;
    do
    for PART in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ;
    do  /sbin/swapon /dev/sd$SWAPHDD$PART
    done
done

Antes de :

# Give control to the init process. 
echo "${CRE}${BLUE}Starting init process.${NORMAL}"
rm -f /linuxrc
exit 0

Despues de modificar esto procedemos a desmontar el loopback, a comprimir 
denuevo el disco ram y a fabricar una nueva ISO con las modificaciones 
hechas:
# cd ..
# umount dram
# gzip minirt26
# cd ..
# mkisofs -r -l -J -L -b boot/isolinux.bin -c boot/isolinux.cat -no-emul-boot 
-boot-load-size 4 -boot-info-table -gui knoppix>nuevoknoppix.iso
# umount /mnt
 
Ahora podemos hacer el archivo en cualquier parte y en cualquier partición:

mount /dev/loquequiera /mnt
dd if=/dev/zero /mnt/knoppix.swp bs=1M count=256
mkswap /mnt/knoppix.swp
umount /mnt

Para grabar la ISO normal con lo que quieran:
cdrecord dev=/dev/cdrw speed=15 -v -eject -data /tmp/nuevoknoppix.iso

Saludos, corríjanme si algo me salió mal o debería haber sido mejor.

-- 
Gustavo Guillermo Pérez
Compunauta uLinux
www.ulinux.tk