Com crear la teva propia distro Live CD basada en Debian

Debian Live  
Bé, per qüestions de feina m'ha tocat mirar de cóm fer una Live CD amb les característiques que jo vull (basada en Debian) i, evidentment, una personalització acurada de la mateixa.

Per sorpresa meva (pensava que era molt més complicat) he trobat aquest fantàstic article que explica amb tot luxe de detalls cóm aconseguir-ho. el podeu veure des d'aquest anllaç: el-directorio.org/DebianLive

També he trobat aquest altre article que permet el mateix però per a una distribució basada en Slax.

Estic al·lucionant literalment amb les possibilitats d'aquesta eina.

Passo a explicar-vos el que he fet per crear la "meva" distro-live personalitzada:

1.- Instal·lar el programari necessari dins la meva Debian etch:
# apt-get install live-package

2.- Després de mirar les pertinents instruccions des de el-directorio.org/DebianLive, hem logejo com a root i llenço l'script màgic: (tingueu paciència, triga la seva estona)

# make-live -a i386 -d etch -s "main contrib non-free" -p xfce-desktop
--packages "mozilla-firefox-locale-ca ssh openssh-server openssh-client openoffice.org-l10n-ca
quanta-data quanta gftp flashplugin-nonfree yafc gtkam gqview
opera beep-media-player toolame vlc gaim gparted gnomebaker gxine alsa"

Com podeu observer la idea es fer un live-cd per a l'arquitectura i386, de la distribució Debian Etch, amb els repositoris main, contrib i non-free, amb l'entorn gràfic xfce i amb un seguit de paquets que penso que m'agradaria de tenir a aquesta distro.

3.- Ja tenim la ISO feta a punt per desar-la a un CD i poder funcionar amb ella, però.. avanç fem una proba:
# aptitude install qemu
#qemu -cdrom binary.iso

Amb la instal·lació de l'emulador qemu podrem probar la live-distro sense llençar cd's.

Si vejem que tot rutlla al nostre gust podrem ja procedir a desar la imatge a un CD (o dvd, tot depen del que ocupi). Per això podem fer servir qualsevol programari de fer CDs o des de la línia de comandes:
# wodim -v -eject dev=/dev/hdc /home/joan/debian-live/binary.iso

4.- Ara que ja tenim la Live crec que el més interessant (per el projecte que jo tinc al cap) es personalitzar al nostra ISO amb totes les coses que vulguem.

Primer projecte real

Bé, per una empresa que prefereixo no anomenar (coses del directe) ja he fet, finalment, el primer engendre de Debian-Live per aconseguir un objectiu molt concret; fer córrer un (puto) Flash en tres PC's a mode de "joc" interactiu.

Els passos que he seguit:

  • Crear un scriptillo per no tenir que recordar tots els paràmetres: (debian-live.sh)
    #Per fer el CD:
    make-live -a i386 -d etch -s "main contrib non-free" -p /home/joan/debian-live/paquets --include-chroot /home/joan/debian-live/root
  • Aquí estem cridant el make-live amb els següents paramentres:

    1. -a i386: per arquitectura i386
    2. -d etch: amb la última versió de Debian
    3. -s "main contrib non-free": amb els "sources" (repositoris) llistats: necessito "el non-free per el flash"
    4. -p /home/joan/debian-live/paquets: amb un llistat de paquets concret (després el llisto)
    5. --include-chroot /home/joan/debian-live/root: incloent un seguit de fitxers que necessito, l'executable del flas. Dins de root, he creat els subdirectoris /home/casper/ per tal de tenir ja l'executable al seu lloc
  • Aquí el llistat de paquets a incloure (paquets):
    # Minimal
    eject sudo

    # Standard
    console-common locales

    # xfce4
    gdm xfce4
    desktop-base
    xfce4-mixer-alsa
    xfce4-utils
    xfce4-terminal
    xfce4-session
    xfce4-panel
    xfce4-mixer-alsa
    xfce4-mixer
    xfce4-mcs-plugins
    xfce4-mcs-manager
    xfce4-icon-theme
    synaptic
    x-window-system-core
    xserver-xorg-input-all
    xserver-xorg-video-all
    xdebconfigurator
    xresprobe
    # Programes
    mozilla-firefox
    mozilla-firefox-locale-ca
    ssh
    openssh-server
    openssh-client
    gftp
    libflash0c2
    yafc
    gtkam
    mozilla-plugin-vlc
    vlc-plugin-alsa
    vlc gaim-data
    alsa
    less
    yafc
    screen
    locales
    locales-all
    network-manager-gnome
    network-manager
    #Flash
    libflash-dev libflash-mozplugin
    libflash-swfplayer
    libflash0c2
    flashplugin-nonfree
    flashplayer-mozilla
    Aquí, he inclòs el Yafc, l'SSH i demés per poder, posteriorment, comprimir i enviar-me el directori /home/casper/ a un aptre ordenador, després us comento.

  • He creat es directoris /home/joan/debian-live/root/home/casper i he copiat el flash i un petit script que el crida. He verificat que els permisos d'execució estesin bé (chmod 755 *)
  • He posat l'escript debian-live.sh al seu lloc (/home/joan/debian-live) i l'he executat (previ chmod 755)
    ./debian-live.sh
  • Després d'esperar una bona estona he probat la ISO amb el Qemu (molt pràctic per estalviar CD's
  • qemu -cdrom binary.isoUps! tot està en english! Merda! toca cercar cóm li dic al generador de la Live que xerri en català!
  • Cercant i cercant veig la sol·lució: el-directorio.org/DebianLiv
    1. S'ha d'editar el fitxer /usr/share/make-live/templates/syslinux/isolinux.cfg i afeguir el "locale" que desitjem:
      vim /usr/share/make-live/templates/syslinux/isolinux.cfg
    2. Afegim, en el meu cas, locale=ca_ES.UTF-8
  • Ara cal regenerar el filesystem.squashfs i la ISO. Així no cal tenir que fer tot de nou. Per això he fet un script que m'ho fa tot solet:
    # less debian-live-regenerar-iso.sh
    #!/bin/bash
    # mantenimiento.sh

    #lugar donde se genero el fichero debian-live
    MASTER=/home/joan/debian-live
    #nombre de la Iso
    NAMEISO=LinuxBCN-Debian-Live

    # Si ya existe el filesystem.squashfs lo borra
    if [ -f ${MASTER}/debian-live/binary/casper/filesystem.squashfs ]
    then
    rm ${MASTER}/debian-live/binary/casper/filesystem.squashfs
    fi

    # Genera el nuevo filesystem.squashfs con los cambios realizados
    mksquashfs ${MASTER}/debian-live/chroot ${MASTER}/debian-live/binary/casper/filesystem.squashfs

    # Genera la ISO
    mkisofs -A "Debian Live" -p "Debian Live; http://debian-live.alioth.debian.org/" -o ${MASTER}/debian-live/${NAMEISO}.iso -r -J -l -V "iskariote Live `date +%Y%m%d`" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ${MASTER}/debian-live/binary/

  • Com en l'altre script el desem i li posem els permisos d'execució:
    chmod 755 debian-live-regenerar-iso.sh
  • L'executem ./debian-live-regenerar-iso.sh i ell solet genera la nova ISO (ara es dirà "LinuxBCN-Debian-Live.iso")
  • Testejem la ISO per conprovar que tot està bé: qemu -cdrom LinuxBCN-Debian-Live.iso

Personalitzant les Xfce

Bé, per el que he llegit encara es pot millorar molt més la ISO així que m'entretenc un xic a vore si..
El que necessito, senzillament, és personalitzar l'xfce4. Per el que llegeixo hi ha una manera de fer-ho prou senzilla:

  • Arranquem la ISO amb el qemu:
    qemu -cdrom LinuxBCN-Debian-Live.iso
  • Personalitzem l'escriptori de l'usuari al nostre gust. Jo personalment per aquest cas:
    • He tret tots els panells
    • he generat, amb xfce4-autostart-editor un element que crida a l'script d'execucució del Flash de manera que l'activi a l'inici de les X.
  • Bé, un cop fets els canvis cal desar el directori de l'usuari per incloure'l a la iso. Per això comprimim:
    tar -cvf casper.tar /home/casper/
    L'enviem a un altre ordenador (es pot fer de moltes formes)
    $yafc ssh://linuxbcn.com...
    $ put casper.tar /home/joan/
  • Un cop tenim el .tar a "casa" l'afegim al chroot de la nostra Live:
    mv ./casper.tar /home/joan/debian-live/debian-live/chroot/home/
    cd /home/joan/debian-live/debian-live/chroot/home/
    tar -xvf casper.tar
  • Ara "només" cal refer la ISO de nou:
    ./debian-live-regenerar-iso.sh

Coses que calen millorar:

Bé, per el moment sembla que el meu primer projecte real amb una Debian-live-cd és suficient, però justet.
Les coses que no he pogut canviar i que de ben segur aniré necessitant, son:

  • Les "locales" no acaben de rutllar. He probat tot, des d'instal·lar "locale" i tot el que s'hi assembla i configurar-les des de "chroot". però res de res, encara va amb el teclat americà ;·(
  • Evitar tenir que premer el Retorn quan arranca el CD. Per el lloc on està destinada aquesta distro, necessito que estigui el més desatesa possible.
  • Encara que he afegit dins el programari a instal·lar un GUI per configurar la xarxa, estaria molt i molt bé que el sistema intentés accedir a ella per DHCP (Ara ho fa) però si no pot que pregunti per la configuració de la xarxa manual.
  • Segur que hi ha més coses a millorar