[Tutorial] Crear un Live CD de Debian con live-helper



ImagenDebian Live-helper

Live-helper es una herramienta que facilita la creación de un CD live de Debian. Los CDs live cargan un Sistema Operativo en la RAM del ordenador, por lo que ningún cambio realizado en el mismo será guardado para la próxima vez que sea cargado pero puede ser de gran ayuda a la hora de reparar algo de nuestro SO. En este tutorial intentaré mostraros como crear un CD live tanto genérico como personalizado y como portarlo a un USB (personalmente los prefiero en USB xP).


Imagen Requisitos Imagen

- Tener Debian instalado (aunque quizá se pueda con un Debian Live CD XD)
- Linux Kernel 2.6.x
- Conexión a internet (aunque esto puede ser omitible si tenemos los paquetes de los programas a instalar a mano).
- Acceso a Root


Imagen Instalación Imagen

Para hacer funcionar el Live-helper tan solo se requieren de forma necesaria los paquetes live-helper y debootstrap, el resto de paquetes como syslinux, memtest86+ y squashfs-tools, de entre otros, se instalarán automáticamente durante el proceso cuando el Live-helper deba hacer uso de ellos y, posteriormente, serán borrados. De todos modos aquí tenéis una lista de las dependencias y programas sugeridos y recomendados. Para una instalación normal, loguear como root y teclear:
# aptitude install live-helper


Imagen Uso del Live-helper Imagen

Su uso básico es bastante sencillo: tan solo hemos de crear una carpeta (para tenerlo todos los elementos ordenador), y ejecutar el comando lh_config seguido de sus argumentos (esto puede hacerse como usuario normal y recomiendo que se haga como user normal, luego explico por qué xD). Esto creará una carpeta llamada config con diversas carpetas dentro así como archivos de configuración (que tendrán algunos de sus tags diferentes si es que se han especificado en los argumentos del lh_config). Una vez realizada toda la configuración, logeamos como root y tecleamos lh_build, a partir de aquí el script se encargará de descargar los paquetes elegidos, montar el sistema de archivos y crear una imagen ISO del live, todo de forma automática. A continuación nombraré los comandos que suelo usar, aunque haciendo un lh_config --help te saldrá el listado entero.
-a          # Arquitectura (i386, amd64...)
-b          # Tipo de binario (iso, usb...)
-d          # Distribución (lenny, squeeze, sid...)
-l           # Lenguaje (es, en...)
--mirror-binary "http://ftp.fr.debian.org/debian/"     # Mirror del cual se obtienen los paquetes, yo dejaría éste y los 2 siguientes iguales
--mirror-bootstrap "http://ftp.fr.debian.org/debian/"
--mirror-chroot "http://ftp.fr.debian.org/debian/"
--categories     # Categorías de los paquetes (main, contrib, non-free...)
--packages      # Todos los paquetes que queramos instalar
--bootappend-live "locale=es_ES bootkbd=es console-setup/layoutcode=es"     # Esta es la línea mágica que añade argumentos a la hora de bootear el live para que tengamos el teclado en español. Me costó sudores conseguir tener el teclado en la distribución "es" XD
--debian-installer     # Por si queremos incluir un instalador (businesscard, netinst...)
--debian-installer-distribution    # Para que instale la distribución de Debian que elijamos (Tengo un Live creado con "sid" elegido en esta opción, pendiente de instalar a ver si es verdad que instala Sid directamente)
--binary-filesystem     # Formato del binario (fat16, fat32...)
--bootstrap-flavour minimal --linux-flavours 486   # Omite el resto de variaciones del kernel para ahorrar espacio. Se recomienda usar "486" para lograr una buena compatibilidad con todo tipo de PCs
--apt    # Para elegir entre apt-get ("apt") o aptitude ("aptitude") como nuestro gestor de apquetes en el live
--binary-indices disabled     # Reduce en unos 6MB la imagen resultante
--memtest    # Para elegir entre memtest86+ ("memtest86+"), memtest86 ("memtest86") o desactivarlo ("disabled") para ahorrar unos 100KB de imagen :-|
--apt-recommends disabled     # Omite dependencias sugeridas y recomendadas
--win32-loader disabled    # Omite meter un "algo" que se puede ejecutar desde Windows, nunca lo he usado pero pienso que es omitible :P
--bootloader    # Usa Syslinux ("syslinux"), GRUB ("grub"), Yaboot ("yaboot" para bootear. Por defecto, Syslinux

Si vuelves a ejecutar el comando lh_config se sobreescribirán aquellos tags que hayas vuelto a declarar. A continuación, un ejemplo de cómo hacer un LiveCD con solo dos comandos (o 3 XD):
$ lh_config -a i386 -b iso -d sid -l es --mirror-binary "http://ftp.fr.debian.org/debian/" --mirror-bootstrap "http://ftp.fr.debian.org/debian/" --mirror-chroot "http://ftp.fr.debian.org/debian/" --categories "main contrib non-free" --packages "Interte_paquetes_aquí" --bootappend-live "locale=es_ES bootkbd=es console-setup/layoutcode=es" --debian-installer businesscard --debian-installer-distribution sid --binary-filesystem fat32 --bootstrap-flavour minimal --apt aptitude --linux-flavours 486 --binary-indices disabled --memtest memtest86+ --apt-recommends disabled --win32-loader disabled --bootloader syslinux
# export LH_BOOTSTRAP_EXCLUDE="$LH_BOOTSTRAP_EXCLUDE paquete1,paquete2,paquete3"  # Excluye paquetes de la instalación
# lh_build

La verdad es que más que un uso intuitivo... diría que no tienes que hacer absolutamente nada, solo elegir paquetes para instalar XD. Si en paquetes ponemos simplemente "gnome-desktop", "kde-desktop" o "xfce-desktop", nos instalará la suit básica de ese entorno. Por defecto se instalará Xorg como sistema de ventanas X, con un metapaquete de controladores para asegurar su funcionamiento con gran cantidad de gráficas.


Imagen Cómo configurar más aun el Live Imagen

Añadir paquetes y archivos al Live
Para muchos, quizá el uso de únicamente las 2~3 líneas anteriormente citadas se quede corto, ya sea porque quiere incluir paquetes en su binario que no se encuentren en el mirror elegido o porque quiere incluir una serie de archivos en el Live. Pues bien, tampoco es mucho más complicado hacer eso: en la carpeta "config" que se crea después de usar el comando lh_config tenemos chroot_local-includes y chroot_local-packages. La primera carpeta sirve para incluir archivos, y éstos deben tener el mismo directorio dentro de la carpeta que el que queramos tener en la build, es decir: el usuario del live, por defecto, se llama "user", si queremos incluir archivos en su "home" tan solo hemos de crear la carpeta "home" en "chroot_local-includes", dentro la carpeta "user" y dentro de "user" los archivos que queramos incluir. De modo que quedaría así:
  • Carpeta del Live
  • + config
  • -+ chroot_local-includes
  • --+ home
  • ---+ user
  • ----+ Archivo 1
  • ----+ Archivo 2
  • ----+ Archivo 3
En la carpeta chroot_local-packages tan solo hay que meter los paquetes *.deb que queremos que se instalen teniendo en cuenta que hemos de incluir las dependencias a la hora de designar los paquetes a instalar. Aprovechando la función de la carpeta chroot_local-includes, suelo utilizar IceWM como gestor de ventanas ya que se configura a base de editar archivos de texto, así tengo un problema menos [fumando] . Si el comando lh_config lo ha ejecutado el root, solo él puede escribir archivos en esas carpetas.
Editar el Live antes de crear el binario
Probablemente, esto a muchos también se les quede corto porque por un motivo u otro no pueden configurar algo con solo meter paquetes y archivos, así que a continuación paso a explicar cómo instalar módulos al Kernel, por ejemplo:
Antes de nada, usamos lh_config con nuestra configuración y metemos los archivos y paquetes que deseemos incluir en sus carpetas correspondientes.
Luego, en vez de hacer lh_build, usaremos una serie de comandos que están comprendidos dentro del proceso de lh_build, de este modo podemos detener el proceso "a medias" y toquetear cosillas.
# lh_chroot_hosts remove && lh_chroot_resolv remove && lh_chroot_proc remove && lh_binary   # Esto es la primera mitad del proceso de lh_buil

A partir de este momento, en nuestra carpeta config se crearán otras como "cache" y "chroot". En "cache" se meterán todos los paquetes descargados y "chroot" será nuestro Live pero usando carpetas como si se tratase de un SO normal. Si hacemos un chroot a la carpeta "chroot" estaremos "logueados" como el usuario root de nuestro live, podiendo instalar paquetes, desinstalarlos, modificar archivos, etc
# chroot chroot   # Pasamos a ser root utlizando "/" como esa carepta
~# aptitude install module-assistant wireless-tools ndiswrapper-common ndiswrapper-utils-1.9 ndiswrapper-source
~# m-a --kvers-list 2.6.x-x-486 prepare   # No olviéis señalar el Kernel que use vuestro live, o instalará el módulo en el Live para el Kernel de vuestro SO, supongo que un "--kvers-list $(uname -r)" también funcionará, pero no lo he probado.
~# m-a a-i --kvers-list 2.6.x-x-486 ndiswrapper
~# echo ndiswrapper >> /etc/modules
~# exit
#

Mucho cuidado con esto, porque como os equivoquéis haciendo el chroot o algo podéis hacer mucha pupa a vuestro SO creyendo que estáis tocando el Live [mad]. Ahora introducimos el resto del script para que nos monte el binario
# lh_chroot_hosts remove && lh_chroot_resolv remove && lh_chroot_proc remove && lh_binary

Y listo, nos creará una imagen ISO (si es que hemos elegido "iso" como tipo de imagen de binario, si elegimos USB será *.img) que podremos grabar tranquilamente en un CD y provarla en nuestro PC o directamente usar una Máquina Virtual

Reducir tamaño del Live
Este mismo procedimiento de usar chroot para manipular el Live antes de ser empaquetado en un binario, también tiene otras utilidades como, por ejemplo, eliminar archivos innecesarios para que ocupe menos. Los métodos que suelo usar son utilizar deborphan para eliminar programas innecesarios* y localepurge para eliminar las locales que no vayamos a utilizar (puede ahorrar unos 60MB). El procedimiento es parecido al anterior, empezamos usando el comando chroot
# chroot chroot
~# aptitude install deborphan localepurge    # Tras instalar "localepurge", nos aparecerá un asistente para seleccionar las locales que deseamos guardar. Recomiendo seleccionar "es" y todas las "es_ES", aunque también se pueden elegir "en" y todas las "en_US" para evitar posibles problemas. Se elige pulsando la barra espaciadora y se salta al OK con tabulador.
~# localepurge    # Automáticamente se pone a limpiar las locales. Si nos hemos equivocado al seleccionarlas, hacemos un "dpkg-reconfigure localepurge" para volver a elegirlas.
~# deborphan --guess-all    # Mostrará los paquetes que pueden ser borrados sin "problemas" (Mentira, quería borrarme el módulo del kernel de ndiswrapper xD). Si os salen muchas y soy muy vagos para hacer un "aptitude purge" a todas, podéis hacer un "for i in $(deborphan --guess-all); do apt-get remove $i; done"
~# aptitude purge deborphan localepurge # Recomiendo usar purge para no dejar "ni rastro" xP
~# aptitude clean
~# aptitude purge aptitude  # Esto no lo he probado, pero si no queremos hacer nuestro Live compatible con internet puede ser una opción xD



* Modificar el Live una vez creado *

Es posible que una vez creado el binario lo testeemos y comprobemos que algo ha fallado o no ha salido como queríamos o que se nos ha olvidado incluir/borrar algún paquete. Hay varias opciones en el lh_clean para limpiar el directorio del live:
# lh_clean         # Borra todo menos la caché y config. La carpeta "config" conserva su configuración y la carpeta "cache" conserva los paquetes descargados. Bastante útil para ahorrar tiempo volviendo a descargarlo todo.
# lh_clean --binary      # Borra solo el binario. La carpeta "chroot" se mantiene y podemos seguir trasteando con ella para montar un nuevo binario.
# lh_clean --all                    # Borra todo menos la carpeta "config", que sigue manteniendo su configuración.


* Testear el Live *

Para probar el live recomiendo usar QEMU (con KQEMU si se tiene procesador de doble núcleo o más) o KVM. Yo personalmente uso KVM que también tiene opción para usar doble núclero y la verdad es que no tengo queja alguna de él :P. Usarlo es tan sencillo como...
# aptitude install kvm
# adduser tu_user kvm   # Para que nuestro usuario pueda usar KVM con opción de aprovechar el doble núcleo.
# reboot   # Hay que reiniciar para que el cambio sobre el usuario tenga efecto
$ kvm -cdrom binary.iso    # Si el binario es una ISO
$ kvm -hda binary.img      # Si el binario ha sido creado para USB

En QEMU los tags son idénticos, se cambia kvm por qemu y "et voilà!", pero si se quiere aprovechar el doble núcleo, y se tiene el módulo del Kernel de KQEMU, hay que añadir el tag "-kernel-kqemu"

* Instalación del Live en un CD o USB *

Si es una imagen ISO usar nuestro grabador favorito o growisofs, incluido en el paquete dvd+rw-tools.
$growisofs -Z /dev/cdrom=binary.iso -speed=16   # Para CD
$growisofs -dvd-compat -Z /dev/dvd=binary.iso -speed=4    # Para DVD

Si es una imagen para USB
# dd if=binary.img of=/dev/XXX  # Donde "XXX" es el identificado del dispositivo sin número de partición

Personalmente no me gusta mucho ese método y lo que suelo hacer es crear el Live en formato ISO. Nada más se crea el binary, ya sea ISO o IMG, en la misma carpeta también se encuentra la carpeta "binary" que contiene los archivos de la ISO. Entro dentro de la carpeta, renombro "isolinux" a "syslinux". Abro exithelp.cfg, stdmenu.cfg e isolinux.cfg y renombro todas las referencias (1 en cada uno xD) a la carpeta "isolinux" por "syslinux". Luego renombro isolinux.cfg a syslinux.cfg. Después, esto ya es opcional, abro el live.cfg y añado una entrada (copia de la primera) añadiendo el tag "single" al "append", para que no cargue las X (porque tengo un PC en casa en el que nunca he conseguido hacer funcionar las X a la primera, y es reacio a Lives xD). También edito el nuevo syslinux.cfg y cambio el "timeout" a 90, porque tengo un teclado inalámbrico que no funciona en la ventana del Syslinux y no puedo ni elegir opción ni darle a INTRO :-|. Por último copio todo el interior de la carpeta "binary" al root del USB, lo desmonto y hago un:
# syslinux /dev/XXXy   # Con el identificador del USB y la partición, que suele ser 1


* F.A.Q. *

- Mi Live tiene X web browser y el ordenador está conectado a internet mediante cable de red pero no funciona.
Esto sucede porque al añadir el tag "--bootstrap-flavour minimal" al lh_config toma los paquetes referentes al protocolo DHCP como paquetes sugeridos y/o recomendados y no los instala. Tendrás que añadir en el listado de paquetes los siguientes: dhcp3-client, ifupdown y netbase.

- ¿Hay algún modo de que mi Live monte automáticamente todos los discos que encuentre al iniciar?
A la Debian Wiki me remito XD




mejorar formato
hacer más digerible

Agradecimientos a Capitanquartz por dejarme usar las imágenes que va incluyendo en sus tutos, así como la estructura que siguen [beer]
Páginas de interés:
Que curioso precisamente ayer estuve viendo la documentación de live-helper para hacer una live y enseñarle debian a un colega, la verdad es que es facilillo, pero siempre viene bien un tuto a mano y nunca hay demasiada documentación ;)

Un saludo.
^^, perfecto. Algun dia quiero preparar la mia y tal. De gran ayuda lo de poder incluir en el live que quieres crear los programas necesites meter ya sea desde repositorios o desde .deb sin necesidad de instalarlo en tu sistema actual (supongo que resolvera dependencia y demas ^^).
Con lo cual luego supongo que podemos crearnos una interfaz inicial ya sea a comandos o un un tema gdm (es el que manejo :P) para elegir que tipo de escritorio utilizaremos.

Y como tiene la posibilidad de meter cualquier archivo a la misma raiz sabiendo la jerarquia que siguen se podrian cambiar los archivos de configuracion y demas para dejarlo a gusto del consumidor..., y eso creo que la forma mas facil es crear el live, probarlo en qemu, hacer cambios y guardarnos lor archivos que hemos modificados para aplicarlos a la siguiente version de la live ^^

Hasta ahora yo pensaba que solo podias hacer una live de tu sistema actual (clonarlo practicamente) o una base y añadir a base de modulos. Se nota que nunca he tenido tiempo de investigarlo XD, ¿En Debian podemos añadirle modulos estilo Slax?.

Si algun año tengo tiempo..., en vez de llevar 3 o 4 distros en mi pen me ahorrare mucho espacio y solo tendre una personalizada con diferente carga de modulos y servicios dependiendo de la potencia del PC y uso que se le vaya a dar ^^. Todo eso junto a un instalador personalizado selectivo con los paquetes a incluir (alguno habra digo yo XD) da mucho, mucho juego ^^.

De todas formas esto queda aun muy avanzado para mi hasta que le dedique al menos 1 o 2 horas de lectura para entender el sistema y hacer alguna practica, pero asi ya me he hecho una vision general que anima a uno a hacerlo uno mismo ^^. Tal vez para Debian 6.0 XD

P.D.: ¿carpeta "chroot_local-paclages"?, ¿por logica no seria "chroot_local-packages"?, cosa mas rara :S
blackgem escribió:De todas formas esto queda aun muy avanzado para mi hasta que le dedique al menos 1 o 2 horas de lectura para entender el sistema y hacer alguna practica, pero asi ya me he hecho una vision general que anima a uno a hacerlo uno mismo ^^. Tal vez para Debian 6.0 XD

Hombre, la parte fácil, la de lh_config -- argumentos && lh_build creo yo que complicada no es y grabar una ISO resultante menos xD. con que copies esta línea y la adaptes a los paquetes que te gustaría tener, vas más que sobrado para tener un primer Live e ir testeando ;)
lh_config -a i386 -b iso -d sid -l es --mirror-binary "http://ftp.fr.debian.org/debian/" --mirror-bootstrap "http://ftp.fr.debian.org/debian/" --mirror-chroot "http://ftp.fr.debian.org/debian/" --categories "main contrib non-free" --packages "paquete1 paquete2 paquete3" --bootappend-live "locale=es_ES bootkbd=es console-setup/layoutcode=es" --debian-installer businesscard --debian-installer-distribution sid --binary-filesystem fat32 --bootstrap-flavour minimal --apt aptitude --linux-flavours 486 --binary-indices disabled --memtest memtest86+ --apt-recommends disabled --win32-loader disabled --bootloader syslinux

Donde "paquete1 paquete2 paquete3" puede ser, por ejemplo, "gnome-desktop". Y si la quieres en formato ISO y más o menos no te preocupa mucho el tamaño final, puedes quitar el tag "--bootstrap-flavour minimal".

blackgem escribió:P.D.: ¿carpeta "chroot_local-paclages"?, ¿por logica no seria "chroot_local-packages"?, cosa mas rara :S

Lapsus mio, pero lo más preocupante es que de las 3~4 veces que lo he escrito estaba en todas mal [mad] XD

Saludos! [toctoc] y a ver si doy un muerdo xD
Ostia que interesante.

Cuando me aburra la pruebo, así siempre podría tener una live de rescate personalizada.
He estado pensando en como simplificar un poco el proceso... y basándome en este script he hecho uno que puede simplificar bastante las cosas (lo adjunto al final del post). Para usarlo es tan sencillo como copiar el contenido en un archivo de texto y darle permisos de ejecución con "chmod +x nombre_del_script", aunque se debe ser usuario root para poder usarlo. El uso es tal que...
  • Creamos una carpeta
  • Metemos el script dentro y lo ejecutamos con "./nombre_del_script"
  • Nos creará las carpetas Base y Paquetes y el script se pausará. En Paquete incluimos archivos *.deb para instalar y en Base podemos meter los archivos que queremos incluir en el live usando la misma ruta que si fuera /
  • Recomiendo echar un vistazo al script. He comentado algunas lineas que pueden ser útiles si se descomentan pero que pueden influir en algunos paquetes.
  • Siempre que vuelvas a ejecutarlo copiara el contendido de Base y Paquetes a chroot_local-includes sustituyendo los archivos. Si al ejecutar el script lo haces con "./nombre_del_script -deldir", borra todos los archivos de chroot_local-includes.
#!/bin/bash
# Copyright 2007 Franklin Piat ; License GPL + LGPL ; Modified by Kaitos
# Configuramos las opciones
ARQUITECTURA="i386"      # Para mayor compatibilidad, dejar por default
KERNELIMAGE="486"     # Para mayor compatibilidad, dejar por default
BINARIO="iso"        # iso, net, tar, usb-hdd
BINARIOFS="fat32"     # fat16, fat32
DISTRIBUCION="sid"     # lenny, squeeze, sid
IDIOMA="es"
AUTOR="Debian live-helper"
BOOTLOADER="syslinux"     # grub, syslinux, yaboot
TIMEOUT="9"
BOOTAPPEND="locale=es_ES bootkbd=es console-setup/layoutcode=es"
MIRROR="http://ftp.fr.debian.org/debian/"
MIRRORSEC="http://security.eu.debian.org/"
CATEGORIAS="main contrib non-free"
PAQUETES="gdm xfce4"
APT="apt"        # apt, aptitude
RECOMENDADOS="disabled"     # enabled, disabled
MEMTEST="memtest86+"     # memtest86+, memtest86, disabled
INSTDEBIAN="businesscard" # enabled, cdrom, netinst, netboot, businesscard, live, disabled
DISTINSTALLER="sid"     # lenny, squeeze, sid
OTROS="--bootstrap-flavour minimal --packages-lists minimal --win32-loader disabled --binary-indices disabled"

# Configuramos el Live-Helper
lh_config -a $ARQUITECTURA --linux-flavours $KERNELIMAGE -b $BINARIO --binary-filesystem $BINARIOFS -d $DISTRIBUCION -l $IDIOMA --bootloader $BOOTLOADER --syslinux-timeout $TIMEOUT --bootappend-live "$BOOTAPPEND" --mirror-binary $MIRROR --mirror-bootstrap $MIRROR --mirror-chroot $MIRROR --mirror-chroot-security $MIRRORSEC --mirror-binary-security $MIRRORSEC --categories "$CATEGORIAS" --packages "$PAQUETES" --apt $APT --apt-recommends $RECOMENDADOS --memtest $MEMTEST --debian-installer $INSTDEBIAN --debian-installer-distribution $DISTINSTALLER --iso-preparer "$AUTOR" --iso-publisher "$AUTOR" $OTROS

# Meter archivos y paquetes
if [[ $1 == '-deldir' ]]; then rm -Rf config/chroot_local-includes/*; fi
mkdir -m 777 Base
mkdir -m 777 Paquetes
echo "Mete los directorios del Live en la carpeta Base y los paquetes en Paquetes."
read -p "Pulsa INTRO para continuar."
cp -Rf Base/* config/chroot_local-includes
cp -Rf Paquetes/* config/chroot_local-packages

# Scripts CHROOT
# Script de limpieza de locales y paquetes huérfanos (el script se detendrá cada vez que intente borrar algo)
cat <<CHROOTLOCALHOOKS01 > config/chroot_local-hooks/script-01.sh
#!/bin/sh
# Remover locales y dependencias huérfanas
apt-get install localepurge deborphan -y
cat <<LOCALENOPURGE > /etc/locale.nopurge
MANDELETE
DONTBOTHERNEWLOCALE
SHOWFREEDSPACE
#en
#en_US
#en_US.ISO-8859-15
#en_US.UTF-8
es
es_ES
es_ES@euro
es_ES.UTF-8
LOCALENOPURGE
localepurge
echo locales hold | dpkg --set-selections
for i in $(deborphan --guess-all); do apt-get remove --purge $i; done  #Añadir "-y" para que no pregunte
apt-get remove --purge localepurge deborphan dselect -y
apt-get autoremove
apt-get clean
CHROOTLOCALHOOKS01
chmod +x "config/chroot_local-hooks/script-01.sh"

cat <<CHROOTLOCALHOOKS02 > config/chroot_local-hooks/script-02.sh
#!/bin/sh
# Borramos módulos del Kernel no útiles
#rm -Rf /lib/modules/*/kernel/drivers/isdn
#rm -Rf /lib/modules/*/kernel/drivers/media
#rm -Rf /lib/modules/*/kernel/drivers/net/wireless
CHROOTLOCALHOOKS02
chmod +x "config/chroot_local-hooks/script-02.sh"

cat <<CHROOTLOCALHOOKS03 > config/chroot_local-hooks/script-03.sh
#!/bin/sh
# Realizamos cambios en el sistema de archivos. Unos ejemplos:
# rm -Rf /var/cache/apt/*
# rm -Rf /usr/share/man/*
# echo "alias montar='bash /sbin/diskmounter.sh -w'" >> /root/.bashrc && echo "alias ls='ls --color=auto'" >> /root/.bashrc && echo "alias dir='dir --color=auto'" >> /root/.bashrc && echo "alias xterm='xterm -fn 8x16'" >> /root/.bashrc
CHROOTLOCALHOOKS03
chmod +x "config/chroot_local-hooks/script-03.sh"

# Excluimos paquetes del Live
#export LH_BOOTSTRAP_EXCLUDE="wget,vim-tiny,ed"

# Remover carpeta /boot del Live (se crea sola al inicio)
export MKSQUASHFS_OPTIONS="-e boot"

# Da comienzo el proceso de cosntrucción. "nice ionice -c2" es para que no chupe mucha CPU
nice ionice -c2 lh_build --debug


Pues eso es todo, configurar al gusto y au. Recordad que para tener conexión a internet, hay que añadir los paquetes "netbase iputils-ping sysklogd update-inetd tcpd dhcp3-client", según el Wiki de Debian. También puede que os pida borrar el paquete "locales" en algún momento del script. Si le dais a sí reduciréis el espacio en unos 12MB pero perderéis lo acentos y demases, así que no lo recomeindo xD

Saludos! [bye]
Está bien redactado, pero una cosa por si no lo sabías, los lh-config los abres y creas uno propio con los paquetes que quieres, resolviendo el todo.

Si no te sabe mal, explicare unos pequeños trucos más.
Snakefd99cb escribió:Está bien redactado, pero una cosa por si no lo sabías, los lh-config los abres y creas uno propio con los paquetes que quieres, resolviendo el todo.

¿Te refieres a crear tu lista de paquetes en /usr/share/live-helper/lists y elegirlas con el tag "--packages-lists nombre_de_la_lista"? o,o

Snakefd99cb escribió:Si no te sabe mal, explicare unos pequeños trucos más.

Claro que no me sabe mal, es más, seguro que aun hay muchas pequeñas opciones que son curiosas y aun no las he descubierto xD. Adelante con esos trucos [oki]

Saludos! [bye]

PD: Siento haber tardado en contestar, voy un poco de cabeza con los deberes de vacaciones y preparándome para las recuperaciones de septiembre [ayay]. En acabar todo eso, completo un poco más el tuto y lo porto a la Wiki ;)
Kaitos escribió:
Snakefd99cb escribió:Está bien redactado, pero una cosa por si no lo sabías, los lh-config los abres y creas uno propio con los paquetes que quieres, resolviendo el todo.

¿Te refieres a crear tu lista de paquetes en /usr/share/live-helper/lists y elegirlas con el tag "--packages-lists nombre_de_la_lista"? o,o

Snakefd99cb escribió:Si no te sabe mal, explicare unos pequeños trucos más.

Claro que no me sabe mal, es más, seguro que aun hay muchas pequeñas opciones que son curiosas y aun no las he descubierto xD. Adelante con esos trucos [oki]

Saludos! [bye]

PD: Siento haber tardado en contestar, voy un poco de cabeza con los deberes de vacaciones y preparándome para las recuperaciones de septiembre [ayay]. En acabar todo eso, completo un poco más el tuto y lo porto a la Wiki ;)



Sí, me refiero a hacer uno propio y que resuelva las dependencias. Por ejemplo uno que se llame "gnome-core" el cual lleve ese paquete, el xorg y gdm en exclusiva.

De aquí unos días comento más sobre trucos y otras historias.
He pedido que desarchiven el hilo, que es un tema muy interesante, asi como poco conocido, y me parece una pena que se pierda en el olvido.

Yo empece con live-helper alla por mediados-finales de 2008 con un liveCD personalizado para el curro, con KDE y herramientas varias de testeo/stress de PC's, puertos serie, etc. Me gusto mucho el resultado.

Ahora ando apañando la v2.0 de dicho liveCD, con KDE SC 4.3.4 de Testing, y un poco mas pulida en algunos aspectos, mas scripts propios para autoconfigurar cosas, etc.

Puede parecer complejo al principio, si se tiene poca experiencia en GNU/Linux, pero es algo que realmente vale la pena :)
Hola a tod@s, estoy intentandolo hacer en debian 5.03 lenny y me salga el siguiente ¿error?

P: Configuring file /etc/apt/sources.list
/usr/bin/lh_chroot_sources: line 45: chroot/etc/apt/sources.list: No existe el fichero o el directorio
P: Begin unmounting filesystems...

en el comando a introducir he cambiado sid por lenny, debo hacer algo mas?
Estoy migrando el Tuto a la Wiki de EOL para que cualquiera pueda contribuir editándolo :). Entre hoy y mañana (más mañana que hoy XD) a ver si lo tengo terminado, porque también quiero testear la versión 2 del LH. Sólo pido que no editéis mucha cosa hasta que quite el "En construcción" que hay en la parte superior del artículo [ayay]

Saludos! [bye]
Kaitos escribió:Estoy migrando el Tuto a la Wiki de EOL para que cualquiera pueda contribuir editándolo :). Entre hoy y mañana (más mañana que hoy XD) a ver si lo tengo terminado, porque también quiero testear la versión 2 del LH.

Mola [oki]
Yo igual puedo aportar algo ahi XD

Por cierto, del LH 2 no esperes mucho... externamente es casi igual. bueno, ahora es siempre el ejecutable "lh" con "config", "build" y demas como parametros, pero basicamente no creo que notes mucho XD
Tambien se puede hacer en Ubuntu (El paquete esta Hardy hasta Lucid)
http://packages.ubuntu.com/search?lang=es&searchon=names&keywords=live-helper
¿Digo yo q en cualquier distribucion basada en Debian se puede hacer no?
PS1 escribió:Tambien se puede hacer en Ubuntu (El paquete esta Hardy hasta Lucid)
http://packages.ubuntu.com/search?lang=es&searchon=names&keywords=live-helper
¿Digo yo q en cualquier distribucion basada en Debian se puede hacer no?

En teoría sí. De hecho, hubo problemas el argumento --categories por intentar hacerlo funcional en todas las distros y actualmente está desactivado, pero creo que es porque se ha renombrado a --archive-areas.

JanKusanagi escribió:Por cierto, del LH 2 no esperes mucho... externamente es casi igual. bueno, ahora es siempre el ejecutable "lh" con "config", "build" y demas como parametros, pero basicamente no creo que notes mucho XD

Eso y que como actives el memtest peta el lh build (al menos en mi configuración xD). En fin, unos bugs se van y otros vienen :-|

Estos días no he podido dedicarle mucho al Wiki porque han sido fiestas en mi pueblo y para colmo ahora ando liado con la autoescuela, pero poco a poco se irá completando xD. Quien quiera ir editando por mi parte tiene vía libre [oki] (poco más se me ocurre para ir añadiendo, quizá ejemplos y cosas así ein? )

Saludos! [toctoc]
A mi me va bien con memtest (pero con memtest86+).
Si me suena que hace mucho (en la pre-2.0) tuve problemas activando el memtest. A veces hay que andar con cuidado con ciertos cambios y los restos en la cache. incluido el cache/stages_bootstrap, o algun .stage que haya por ahi :P
15 respuestas