Live CD de debian squeeze con instalador mediante squashfs

Enviado por damian_sima el 18 Abril, 2010 - 05:55.


"Este es mi primer blog. Asi que espero todo tipo de consejo y/o quejas. desde ya gracias a todos por todo.
Todo esto surgió a partir de, por así decir, un capricho mio. Lo que logre hacer es un live CD de debian instalable, es decir que se puede bootear e instalar desde el sistema en vivo. Lo hice nada mas que porque quería realizar un live CD para una materia de la cual soy Ayudante, entonces me puse a investigar y me gusto la idea de hacer un live personalizado. Después por otro lado estuve buscando y digo: si elive, sidux, ubunntu, knoppix, fedora, mandriva y otros tienen instalador en vivo, porque debian live no lo tiene. Y... hay que hacerlo! Obviamente no pretendo revolucionar ni nada, solo quiero mostrar lo que he hecho y si me ayudan a mejorar."


1 Como crear un live CD:

1-1 Primer paso creación del live CD:

1-2 Creando la configuración del cd

1-3 Paquetes Instalados:

1-3.1 Paquetes que no estan en repositorios

1-4 Borrando ficheros no necesarios

1-5 Creacion de la iso

1-6 Agregar el driever de nvidia

1-7 Modificar el live CD

2 Iso personalizada

3 Como crear el instalador

3-1 Como esta construida la iso

3-2 Como Instalar un live con imagen squashfs

3-2.1 Para terminar con la instalación, lo mínimo que debemos realizar es

4 Scripts Instalador

4-1 Scripts para poder comenzar instalacion y usar interface gdialog

4-2 Scripts principal

4-3 Scripts para terminar de instalar dentro del chroot




1 Como crear un live CD:

Siguiendo esta guía y obteniendo mas información de google como para matar dudas, logré crear un live CD:

1-1 Primer paso creación del live CD:
Nos vamos a una consola, cualquiera (siempre trabajamos en consola con este progrma)instalamos el programa live-helper

sistema#: aptitude install live-helper

Luego elegimos una carpeta para trabajar y entramos en ella, en particular trabajo como root:

sistema$ mkdir live
sistema$ sudo su
sistema# cd live

Como se puede esperar la creación del cd no es mas que seguir la guía de la wiki ya expuesta. A partir de aquí se pueden observar que la configuracion puede ser distinta y se pueden plantear formas distintas de configurar, la que he hecho es:

1-2 Creando la configuración del cd

lh config --packages-list minimal --root-command sudo --bootloader syslinux --binary-images iso --architecture amd64 --username usuario --distribution squeeze --apt apt-get --mirror-chroot "ftp://ftp.us.debian.org/debian/" --mirror-bootstrap "ftp://ftp.us.debian.org/debian/" --mirror-binary "ftp://ftp.us.debian.org/debian/" --bootappend-live "locale=es_ES.UTF-8 keyb=es" --interactive shell --debconf-frontend dialog --memtest none --cache-stages None --archive-areas "main contrib non-free" --apt-options --force-yes --debian-installer false --apt-recommends disabled --binary-indices disabled

Insisto, estas configuraciones son personales y depende del gusto de cada uno.Después de configurar:

lh buil

Este comando es un conjunto de otros, como ser lh debootstrap, lh chroot y lh binary. El cual no lo ejecuto, ya que prefiero hacerlo de la siguiente manerea:

lh bootstrap
lh chroot

En fin, el lh binary lo dejamos para mas tarde. En este proceso se dedica un buen tiempo a descargar paquetes. Luego de desempaquetar, entra al nuevo sistema (chroot), y por lo tanto es hora de instalar los paquetes y copiar las configuraciones que queramos. Que se tenga en cuenta que esto de las configuraciones se puede hacer de varias formas. Por ejemplo podes instalar todo de una sola vez, usar las carpetas que están en live/config/ para configurar todo y copiar el contenido en su lugar, o instalar los paquetes que no están en repositorios, etc. La forma que lo hago, es así, y me parece bastante buena porque estoy cociente de como a ocurrido toda la instalación ya que se tiene mucho control. Y sobre todo para los que estamos acostumbrados al debootstrap, hasta es “divertido” hacer esto. Volviendo al tema, dentro del nuestro nuevo sistema, debemos instalar los paquetes extras, ya que según la configuración de lh config se instalo un sistema mínimo.

1-3 Paquetes Instalados:

En primer lugar configuramos el source.list, (el cual se elimina cuando se crea la imagen iso).

nano /etc/apt/sources.list 
deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free"
deb http://ftp.debian.org/debian/ squeeze main contrib non-free"
deb http://www.debian-multimedia.org/ squeeze main non-free"
##### repositorios de sid para lo nvidia emerald y compiz"
deb http://download.tuxfamily.org/shames/debian-lenny/desktopfx/unstable/ ./"
deb http://ftp.us.debian.org/debian/ sid main contrib non-free"

Como voy a instalar los drivers de nvidia, tengo en cuenta que que se debe habilitar por momentos los repositorios de sid, o si no crear un híbrido, véase sistemas mixtos, que es lo que he hecho y lo configure así:

#nano /etc/apt/apt.conf
APT::Default-Release "testing";
APT::Cache-Limit 1500000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";
#nano /etc/apt/preferences
Package: *
Pin: release a=testing
Pin-Priority: 950
Package: *
Pin: release a=sid
Pin-Priority: 300
apt-get update
# apt-get update

Después al de las configuraciones de apt, actualizo la lista de paquetes, y me informa la falta de distintas llaves públicas, tuxfamily, otra de multimedia. busco y las instalo, por ejemplo la de multimedia:

apt-get install debian-multimedia-keyring

A instalar paquetes se ah dicho:

apt-get --no-install-recommends install  gnome-core gdm xserver-xorg xarchiver evince unzip unrar p7zip-rar rar gimp tar gzip zip  ntfsprogs e2fsprogs gparted testdisk htop linux-image-2.6-amd64 mc nano mesa-utils
apt-get install network-manager-gnome smplayer gnome-media gnome-power-manager gnome-themes gnome-volume-manager exaile ntfs-3g esound gstreamer0.10-alsa audacious audacious-plugins audacious-plugins-extra
apt-get --no-install-recommends install firmware-iwlwifi firmware-ipw2x00 firmware-ralink firmware-linux firmware-linux-free firmware-linux-nonfree
apt-get --no-install-recommends install emesene gthumb openoffice.org-gnome openoffice.org-impress  openoffice.org-calc openoffice.org-writer  myspell-es openoffice.org-help-es geany flashplugin-nonfree

apt-get --no-install-recommends install dhcp3-client  g++ gcc grub2 os-prober pkg-config bc locales localepurge disk-manager  xdg-utils

Para instalar compiz, lo hago desde sid:

apt-get install -t sid compiz compiz-gnome compiz-plugins compizconfig-settings-manager compizconfig-backend-gconf compiz-fusion-plugins-extra compiz-fusion-plugins-main
apt-get install emeralde merald-themes

1-3.1 Paquetes que no estan en repositorios

Instalar paquetes que no estan en repositorios, en este caso google-chrome, mas adelante se vera la instalacion de nvidia-kernel. El paquete xdg-utils instalado anteriormente, se instalo como dependencia, solo para los que quieren instalar chrome:
Los pasos a seguir en la instalacion del chrome son sencillos:
→ Primero instalamos todas las dependencias (ya hecho),
→ Segundo descargamos y copiamos a /var/cache/apt/archives/:

# cp google-chrome-beta_current_amd64.deb  /live/chroot/var/cache/apt/archives/

→ Tercero. Teniendo en cuenta que la copia se debe hacer desde otra consola, luego desde la consola que estábamos originalmente, lo instalamos:

dpkg -i /var/cache/apt/archives/google-chrome-beta_current_amd64.deb

Luego para terminar con la configuración:

passwd
mkdir /home/usuario
cd /home/usuario/
tar xvzfp ../usuario.tgz
chown -R 1000:1000 /home/usuario
rm /home/usuario.tgz

Donde usuario.tgz es un comprimido con archivos de configuraciones del usuario, hechos desde otra instalación, para que al iniciar la sesión, se cargue una configuración distinta, esto es para que quede mas bonito, para guardar configuraciones como el sonido, navegador, etc.

NOTA: En cuanto a la construccion del live, es conveniente que se tenga a mano esta guía en la wiki , esta y otras teniendo en cuenta que cambian un poco el uso según si tenemos la versión para testing o lenny.

1-4 Borrando ficheros no necesarios

En este momento, ya tenemos todos los paquetes instalados, podemos crear la iso, pero con tantos paquetes instados es seguro que el tamaño de esta puede superar a el disponible en un cd, por lo tanto, debemos proceder a borrar archivos no útiles, o mejor dicho, no tan útiles para un live CD.
Si hacemos dpkg-reconfigure locales vemos que no se puede elegir el local que queremos, entonces una forma de hacerlo es saliendo del live, volviendo al sistema y entrando de otra forma:

live# exit
sistema# chroot chroot
live# dpkg-reconfigure locales
live# dpkg-reconfigure localepurge
live# exit
sistema# lh chroot
live# localepurge

También se podría modificar los archivos de configuración, en vez de dpkg-reconfigure pero me parece que esto es bastante practico y rápido. En el momento que ejecutamos localepurge según lo seleccionado como locales y para eliminar, se puede elimina mas de 200MB! Esto es importante, ya que nos disminuye mucho el tamaño de la iso ya que los locales no generados están comprimidos.

Después, borramos los paquetes descargados y más:

live#apt-get clean
live#rm -r /var/tmp/*
live#rm -r /tmp/*
live#rm -r /usr/share/doc
live#exit

Como se observa en la ultima linea estoy eliminados los doc, esto le puede caer mal a mas de un usuario, pero, lo importante es aclarar que es filosofía de live CD con la mayor utilidad, y para el uso de personas que podrán tener conocimientos básicos de linux.

Llegado hasta aquí nos ponemos a pensar como seria este live:
tendrá un escritorio gnome basico (gnome-core) y un conjunto de aplicaciones útiles extras como ser: ofimática, Internet (wirelees, navegador y mensajería) multimedia (videos y musicas), y herramientas extras como htop, ntfsprogs, parted, mc, gparted, tesdisck y otras. Lo importante es que mas que para realizar backap este cd esta diseñado para el uso en las mayorias de las PCs por los firmwares, aplicaciones, drivers, etc. No estará optimizado para una máquina especifica.

1-5 Creacion de la iso

Luego de configurar, instalar y borrar creamos la iso:

lh binary

Este paso esta formado por varias etapas, en primer lugar, se genera el filesystem.squashfs en la carpeta live/binary/live/filesystem.squashfs luego con este comprimido genera la imagen iso, que mas adelante se explicaré.
Para los casos en que ya hayamos generado una iso, el comando anterior no funcionara y debemos ejecutar:

lh binary --force

1-6 Agregar el driever de nvidia

Para agregar este driver, la forma mas fácil es compilando con module-ssistant, lo cual podría hacerse en el chroot, pero esto instalaria alrededor de 150MB de paquetes que no necesitamos, obviamente se podría eliminarlos, de todas formas mi recomendación es la siguiente:

  1. Bootear el cd en una maquina con nvidia (no estoy seguro que sea necesario que la maquina tenga esta targeta de video)
  2. Como ya tiene los repositorios configurados testing-sid necesarios para poder instalar con exitos la targeta nvidia, procedemos a hacerlo:
    m-a a-i -f nvidia-kernel
  3. Despues de esto tenemos nuestro driver importante en /usr/src/ con el nombre nvidia-kernel-2.6.32-3-amd64_190.53-2+2.6.32-9_amd64.deb (dependiendo de las versiones)
    dpkg -i –force-all  nvidia-kernel-2.6.32-3-amd64_190.53-2+2.6.32-9_amd64.deb
    aptitude install -t sid nvidia-glx nvidia-kernel-common nvidia-settings nvidia-xconfig
  4. Cargamos y comprobamos si todo va bien, si no ha ido bien tendremos que releer la guía drivers de nvidia con m-a
    modprobe nvidia
    nvidia-xconfig
  5. Una vez que tenemos nuestra targeta configurada, copiamos los .deb necesarios
    cp -r /usr/src/nvidia-kernel-2.6.32-3-amd64_190.53-2+2.6.32-9_amd64.deb /media/{disco}/todo_nvidia_deb/
    cp /var/cache/apt/archives/nvidia*.deb /media/{disco}/todo_nvidia_deb/

También, lo hago de esta forma, porque así con la imagen ya creada, y con la ayuda de unetbootin puedo comprobar las configuraciones hechas.
Una vez que tengamos estos .deb podremos instalarlos normalmente. Pero ahora lo que hay que hacer es modificar el cd, ya que este fue creado:

1-7 Modificar el live CD

Para modificar se puede hacer de una manera semejante a la que esta descrita en la wiki, seria, ir a la carpeta en la cual esta nuestro live descomprimido, y ejecutar la parte correspondiente al chroot y luego generar la imagen iso nuevamente:

sistema#cd live
sistema#lh chroot
live#

Esto nos permite realizar todas las nuevas configuraciones, como por ejemplo instalar los .deb de nvidia creados anteriormente, para eso vea el apartado 1-3.1 Paquetes que no estan en repositorios . Despues de realizar las modificaciones se vuelve a la sección 1-5 Creación de la iso. El paso siguiente después de las modificaciones debe ser:

live#exit
sistema#lh binary --force


2 Iso personalizada

Como ya tenemos la iso creada y comprobamos su funcionamiento, podemos observar que si instalamos el driver de nvidia tenemos aceleracion 3D solo en chipsets nvidia y no así en los intel ni ati (con los drivers libres). Esto se debe a que nvidia-glx esta en conflicto con los demás, para solucionarlo, lo que hago es que se instale el driver de nvidia en el booteo, y solo si se tiene tarjeta nvidia, luego se la configura y arranca las X con el dichoso driver, esto sería:

nano /etc/init.d/nvidia
#!/bin/bash
if [ $(lspci | grep VGA | grep nVidia | awk '{print $1}') ]; then
echo -e  "\n\033[31mtienes una targeta nvidia, se la configurara\033[0m"
dpkg -i /debian/*.deb
nvidia-xconfig
#read -p "Enter para continuar"
rm /etc/rc2.d/S*nvidia
rm /etc/init.d/nvidia
fi

Otro script practico al inicio es:

nano /etc/init.d/fstab
#!/bin/bash
#RAIZ=$(mount | grep " / " | awk '{print $1}')
mkdir -p $(fdisk -l | grep /dev/ | grep -v Disk | grep -v Linux | grep -v Ext\'d | sed 's/W95/ \ /' | sed 's/*/ \ /' | awk '{print " a" $1  }' | sed 's/a\/dev/\/media/')
fdisk -l | grep /dev/ | grep -v Disk | grep -v Linux | grep -v Ext\'d | sed 's/W95/ \ /' | sed 's/*/ \ /' | awk '{print $1" a" $1 " "$6 }' | sed 's/HPFS/ntfs\-3g/' | sed 's/NTFS/ \ /'  | sed 's/\/ / \ /' | sed 's/FAT32/vfat/'  | sed 's/a\/dev/\/media/' | awk '{print $1 " "$2" "$3 "  auto,defaults,uid=1000,users     0       0"}' >> /etc/fstab
mount -a
rm /etc/rc2.d/S*fstab
rm /etc/init.d/fstab

Este, lo que hace es añadir al fstab las lineas correspondientes a nuestras particiones de windows, fat32 fat16 y ntfs.
Una vez que se ah instalado el sistema agrego estas lineas al scripts:

update-grub
echo -e "\033[31m\nreiniciando el sistema...\033[0m"
reboot

que hacen que en el primer arranque se genere el fstab y se actualice el grub2. Y, obviamente que están faltando los permisos de ejecución y enlaces simbólicos a estos scripts:

chmod +x /etc/init.d/fstab
chmod +x /etc/init.d/nvidia
ln -s /etc/init.d/fstab /etc/rc2.d/S03fstab
ln -s /etc/init.d/nvidia /etc/rc2.d/S03nvidia



3 Como crear el instalador

3-1 Como esta construida la iso

En primer lugar la creacion de un Live CD se basa en un sistema instalado según debootstrap, ver la guía en ella se habla de una instalación limpia, en la que estamos usando una particion, en la cual vamos a instalar el sistema operativo, en cambio podemos hacer tranquilamente la instalación en una carpeta cualquiera. Siendo esto lo que se realiza en la primera etapa del lh buil, es decir que empieza a descargar los archivos y se instalaran en nuestra carpeta live/, entonces después de que realicemos todos los pasos, justo antes de crear la iso, se crea un file system con el formato squashfs, que no es mas que nuestro sistema ubicado en live/chroot comprimido. La imagen creada es guardada en /live/binary/live/filesystem.squashfs dependiendo del tamaño nuestro sistema live, será el comprimido filesystem.squashfs y según ésta sera el tamaño de nuestra iso. Para tener en cuenta: con 1.75GB en chroot → 630MB en squashfs → 640MB en iso. La diferencia mas importante entre squashfs y la iso es que las imagen del kernel no se encuentran en squashfs. Ya que es requerida para poder arrancar el sistema y luego poder desempaquetar el sistema filesystem.squashfs al bootear el CD. A grandes rasgos la iso contiene kernel + filesystem.squashfs.

3-2 Como Instalar un live con imagen squashfs

Como ya he explicado la fichero filesystem.squashfs se encuentra dentro de la iso, y en el momento que se bootea el cd es dscomprimido en / esto no es tan verídico, pero yendo al grano.... El sistema filesystem.squashfs posee todo lo que necesitamos a excepción de lo que ya se mencionó, la imagen del kernel que no se a puesto aquí dentro, pero si debe estar en la iso. Cuando arrancamos nuestro live ya sea con cd o usb, etcétera, lo que sea que usamos para bootear, se forma una estructura de ficheros de esta forma: sistema raíz con toda lo conocido normalmetne en debian mas una carpeta en /live/image/, en la cual esta el contenido montado de la iso, es decir que en algún lugar de aquí dentro esta filesystem.squashfs y la imagen del kernel (vmlinuz initrd.img). Entonces para instalar el sistema que fue creado en /live/chroot con todas nuestras configuraciones desde el live CD, es necesario realizar estos pasos:

mkdir /mnt2
mount /dev/{disco particion} /mnt
mount -t squashfs -o loop /live/image/live/filesystem.squashfs /mnt2
cp /live/image/live/vmlinuz /mnt/boot/vmlinuz-2.6.32-3-amd64
cp /live/image/live/initrd.img /mnt/boot/initrd.img-2.6.32-3-amd64
cp -dpR /mnt2/* /mnt

Una vez realizados estos simples pasos podemos gozar de un sistema instalado en una nuestra partición, sin mas que el tiempo que se tarda en copiar alrededor de 2GB. Claro esta que este sistema no tiene nada de configuraciones personalizadas, ni siquiera un usuario, y la clave de superusuario es la que hemos puesto en la creación de la iso.

3-2.1 Para terminar con la instalación, lo mínimo que debemos realizar es

  1. → copia de archivos de configuraciones
  2. → entrar con chroot al sistema y configurar usuarios contraseñas permisos reconfigurar el kernel
  3. → instalar grub

4 Scripts Instalador

Para simplificar un poco las cosas he hecho un scripts instalador, esto reune la parte de configuraciones, chroot, copia de archivos y otras, lo hice en primer momento en bash para usarlo desde consola nada mas, luego agregue una especie de interfaz gráfica con gdialog

4-1 Scripts para poder comenzar instalacion y usar interface gdialog

Este script debe ejecutar ya que los scripts lo he puesto en ese fichero /debian con el comando:

sudo /debian/instalador

Una forma bonita de ejecutar el script fue creando un lanzador en el escritorio con el comando anterior.

/debian/instalador

#!/bin/bash
sudo cp /home/usuario/.bashrc /root/.bashrc
echo "/debian/instalar.sh" >> /root/.bashrc
echo "exit" >> /root/.bashrc
sudo su
exit

4-2 Scripts principal

/debian/instalar.sh

#!/bin/bash

cancelar(){
gdialog  --title 'Cancelando la Instalando de debian GNU/Linux' --msgbox 'A elegido cancelar la instalacion... '  \
cp /home/usuario/.bashrc /root/.bashrc
exit 0
}

gdialog   --title 'Instalando debian GNU/Linux'                             \
--msgbox 'Este instalador le \"guiara\". Ayudandolo a configurar su nuevo sistema debian \
Se usara 3GB Aproximadamente. \
Vaya siguiendo con calma la guia hasta que se le pida reiniciar, sea paciente por favor...'  \
[ $? -eq 1 ] && cancelar

################################################################
gdialog  --title 'Instalando debian GNU/Linux'                             \
--msgbox 'Debes revisar las particiones existentes, y si no tiene una particion ext3 o ext4, deberas crear una de al menos 4GB en dnonde se instalara GNU/Linux debian \
Tenga en cuenta que los nombres de las particiones en linux son /dev/sdXN (Discos Sata) y /dev/hdXN (Discos IDE). Ahora se iniciara el editor de particiones \"gparted\" donde podra crear, redimensionar, mover, etc. las particiones de su disco! y/o ver en que particion instalara GNU/Linux debian. \
Despues de realizar los ajustes en su disco, cierre el particionador \"gparted\" teniendo en cuenta el nombre de la particion'  \
[ $? -eq 1 ] && cancelar

TEMPORAL=1
while [  $TEMPORAL -eq 1 ]; do
gparted
#partitionmanager
clear
echo -e "\033[31m\n\"fdisk -l\": \033[0m"
fdisk -l
fdisk -l | grep Linux > /tmp/temp
FIN=$(wc -l /tmp/temp | awk '{print $1}')
if [ $FIN -eq 0 ] ; then  
gdialog  --title 'Instalando debian GNU/Linux'                             \
--msgbox "No tiene particiones de linux, intenete creandolas"
[ $? -eq 1 ] && cancelar
exit 0
fi
rm /tmp/temp
for numero in `seq 1 $FIN`
do
echo "$(echo $(sudo fdisk -l | grep Linux |  awk '{print $1}' ) |  awk '{print $'$(echo $numero)'}') $(echo " scale=1; $(echo $(echo $(sudo fdisk -l | grep Linux |  awk '{print $4}' ) |  awk '{print $'$(echo $numero)'}') -0 | bc ) /1024 /1024" | bc )Gb" >>/tmp/temp
done
gdialog --title 'Instalando debian GNU/Linux' --menu 'que disco vas a usar?' 0 0 0 \
$(more /tmp/temp) 2>/tmp/particion
[ $? -eq 1 ] && cancelar
PARTICION=$( cat /tmp/particion )
gdialog --title 'Instalando debian GNU/Linux' --inputbox "Las particiones disponibles de Linux son:
$(more /tmp/temp)
Se usara $PARTICION Escriba \"seguro\" para continuar " 0 0 2>/tmp/nome.txt
# [ $? -eq 1 ] && cancelar
OPCION=$( cat /tmp/nome.txt )
TEMPORAL=1
if [ $OPCION  == 'seguro' ] ; then  
TEMPORAL=0
fi
done

umount $PARTICION
umount /mnt
mkfs.ext4 $PARTICION >> /dev/null
mount $PARTICION /mnt
mkdir /mnt2

clear
echo -e "\033[31m\nCopiando Datos del CD... \033[0m"
###############    Copia de archivos (barra de progreso) #########################
mount -t squashfs -o loop /live/image/live/filesystem.squashfs /mnt2
#mount -t squashfs -o loop /home/sima/live2/binary/live/filesystem.squashfs /mnt2
sizeof() { du -s "$1" | cut -f1; }
running(){ ps $1 | grep $1 >/dev/null; }

TOTAL=$(sizeof /mnt2)
mkdir /mnt/boot
cp /live/image/live/vmlinuz /mnt/boot/vmlinuz-2.6.32-3-amd64 &
cp /live/image/live/initrd.img /mnt/boot/initrd.img-2.6.32-3-amd64 &
cp -dpR /mnt2/* /mnt/ &
CPPID=$!
trap "kill $CPPID" 2 15
(
while running $CPPID; do
COPIADO=$(sizeof /mnt/)
PORCENTAGEM=$((COPIADO*98/TOTAL))
echo $PORCENTAGEM
sleep 1
done
echo 100
) | gdialog --title "Copiando, Espere por favor" --gauge "Copiando datos del CD..." 0 0 0
[ $? -eq 1 ] && cancelar
###########################################################################

#gdialog  --title 'Instalando debian GNU/Linux'                             \
#--msgbox 'Se configurara su sistema '  \ || exit 1
#[ $? -eq 1 ] && cancelar
## CONFIGURANDO
echo -e "\033[31m\nCopiando archivos de configuracion... \033[0m"
cp /etc/resolv.conf /mnt/etc/
cp -a /etc/adjtime /mnt/etc/
echo "auto lo">/mnt/etc/network/interfaces
echo "iface lo inet loopback" >> /mnt/etc/network/interfaces
########   CONFIGURANDO FSTAB
echo "#Aqui estan las configuraciones de las particiones, para el caso de una particion de windows" >/mnt/etc/fstab
echo "#pueden ser fat32 (vfat) o ntfs (ntfs-3g) si tiene una o mas de esta configure las siguientes lineas..." >>/mnt/etc/fstab
echo "#Tenga en cuenta de reemplazar /dev/xxx y el tipo de particion vfat o ntfs-3g y debe estar creado el punto de montage ej:/media/Datos" >>/mnt/etc/fstab
echo "#Las lineas que empiezan con # son comentarion y no tienen validez \n" >>/mnt/etc/fstab
echo "# /dev/sda1  /media/Windows  ntfs-3g  auto,defaults,uid=1000,users             0       0" >>/mnt/etc/fstab
echo "# /dev/sda2  /media/Datos  vfat  auto,defaults,uid=1000,users             0       0" >>/mnt/etc/fstab
echo "$PARTICION   /      ext4  defaults,errors=remount-ro      0       1" >>/mnt/etc/fstab
echo "# /dev/sda5  none             swap            sw                        0       0" >>/mnt/etc/fstab
echo "proc         /proc            proc            defaults                        0       0" >>/mnt/etc/fstab

# nos pasamos al nuevo sistema
echo -e "\033[31m\nPasando al nuevo sistema... \033[0m"
echo "deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free" >> /mnt/etc/apt/sources.list
echo "deb http://ftp.debian.org/debian/ squeeze main contrib non-free" >> /mnt/etc/apt/sources.list
echo "deb http://www.debian-multimedia.org/ squeeze main non-free" >> /mnt/etc/apt/sources.list
echo "##### repositorios de sid para lo nvidia emerald y compiz" >> /mnt/etc/apt/sources.list
echo "deb http://download.tuxfamily.org/shames/debian-lenny/desktopfx/unstable/ ./" >> /mnt/etc/apt/sources.list
echo "deb http://ftp.us.debian.org/debian/ sid main contrib non-free" >> /mnt/etc/apt/sources.list

gdialog  --title 'Instalando debian GNU/Linux'                             \
--msgbox 'Ahora se configuraran los datos personales:'  \ 
[ $? -eq 1 ] && cancelar
echo "/debian/instalar2.sh" >> /mnt/root/.bashrc
echo "exit" >> /mnt/root/.bashrc
mount -o bind /dev /mnt/dev
chroot /mnt
cp /mnt2/home/usuario/.bashrc /mnt/root/.bashrc
umount /mnt/dev
umount /mnt
umount /mnt2
gdialog  --title 'Finalizando la Instalacion' \
--msgbox 'Sistema Instalado Correctamente...

"Reinicie su equipo" para usar su nuevo sistema, una vez que inicie su nuevo sistema se terminara de configurar. No se preocupe si no ve todos sus sistemas en el primer inicio, en el proximo reinicio se re-configurara grub2 y seguramente podra arrancar todos los sistemas operativos instalados. Sera conveniente que cuando pueda realice las actualizaciones ya que este sistema tiene su ultima actualizacion el 14 de Abril del 2010'  \
cp /home/usuario/.bashrc /root/.bashrc
exit


4-3 Scripts para terminar de instalar dentro del chroot

El siguiente scripts es ejecutado automaticamente cuando se entra en el nuevo sistema, es decir despues de #chroot /mnt ya que este se encuentra en /root/.bashrc de nuestro sistema recién instalado:
/debian/instalar2.sh

#!/bin/bash
mount proc

nombre(){
TEMPORAL=1
while [  $TEMPORAL -eq 1 ]; do
echo -e "\nIngrese el nombre de usuario:"
read -p ":> " NOMBREAPE
select USUARIO in $NOMBREAPE; do
break;
done
if [ $USUARIO ]; then
echo "El usaurio sera \"$USUARIO\""
TEMPORAL=0
else
TEMPORAL=1
echo -e "\033[31m\n[!] OPCION NO VALIDA\033[0m"
fi
done
}
nombre

mv /home/usuario/ /home/$USUARIO >> /dev/null
useradd -m -u 1000 -s /bin/bash $USUARIO >> /dev/null
chown -R $USUARIO:$USUARIO /home/$USUARIO >> /dev/null
dialog  --title 'Finalizando la Instalacion' --msgbox "Elija una contrasena para el usuario -$USUARIO- (No deje en blanco)" 10 50
while [ true ]; do
passwd $USUARIO
if [ $? == 0 ]; then
        break
else
        echo "clave no valida, intente nuevamente"
fi
done

dialog  --title 'Finalizando la Instalacion' --msgbox 'Elija una contrasena para el superusuario -root- (No deje en blanco)' 10 50
while [ true ]; do
passwd
if [ $? == 0 ]; then
        break
else
        echo "clave no valida, intente nuevamente"
fi
done

######### kdm kde4
#~ mkdir -p /home/$USUARIO/.kde/env
#~ echo "#!/bin/bash" > /home/$USUARIO/.kde/env/gtk-qt-engine.rc.sh
#~ echo "export GTK2_RC_FILES=/home/$USUARIO/.gtkrc-2.0-kde" >> /home/$USUARIO/.kde/env/gtk-qt-engine.rc.sh
#~ chmod +x /home/$USUARIO/.kde/env/gtk-qt-engine.rc.sh
#~ #################
#~ echo "AutoLoginEnable=true" >> /etc/kde4/kdm/kdmrc
#~ echo "AutoLoginUser=$USUARIO" >> /etc/kde4/kdm/kdmrc

######### gdm gnome
echo "AutomaticLoginEnable=true" >> /etc/gdm/gdm.conf
echo "AutomaticLogin=$USUARIO" >> /etc/gdm/gdm.conf
echo "TimedLoginEnable=true" >> /etc/gdm/gdm.conf
echo "TimedLogin=$USUARIO" >> /etc/gdm/gdm.conf

#####################################
mkdir /home/$USUARIO/.themes >> /dev/null
ln -s /home/$USUARIO/.themes /root/
echo "127.0.0.1       localhost" > /etc/hosts
echo "127.0.1.1       $USUARIO-debian" >> /etc/hosts
echo "$USUARIO-debian" > /etc/hostname
chmod +w /etc/sudoers
echo "$USUARIO ALL=(ALL) ALL" >> /etc/sudoers
echo "$USUARIO ALL=NOPASSWD:ALL " >> /etc/sudoers
chmod -w /etc/sudoers

disco(){
TEMPORAL=1
while [  $TEMPORAL -eq 1 ]; do
fdisk -l | grep "Disk /dev"
echo "Elija un disco:> "
DISCOS=$(fdisk -l | grep "Disk /dev" | cut -b 6,7,8,9,10,11,12,13)
select DISCO in $DISCOS; do
break;
done
if [ $DISCO ]; then
TEMPORAL=0
else
TEMPORAL=1
echo -e "\033[31m\n[!] OPCION NO VALIDA\033[0m"
fi
done
}

dialog  --title 'Finalizando la Instalacion' --msgbox 'Configurando el kernel' 10 50
dpkg-reconfigure linux-image-2.6.32-3-amd64  >> /dev/null

dialog  --title 'Finalizando la Instalacion' --msgbox 'Se instalara el cargador de arranque (grub2) en su sistema. Seleccione un disco' 10 50
disco
grub-install $DISCO >> /dev/null
echo "Espere por favor..."
update-grub >> /dev/null

rm -r /home/$USUARIO/.xsession*
rm -r /home/$USUARIO/.config/google-chrom*
rm -r /home/$USUARIO/Desktop/Instalar*
#rm -r /home/$USUARIO/Instala*
mv  /debian/primera /etc/rc2.d/S03primera
chmod +x /etc/rc2.d/S03primera
umount /proc
exit



En todo esto he encontrado errores que me quedan por arreglar, así que me imagino que dirán, pero ya! Espero que les guste y sus opiniones.

Saludos

Imagen de damian_sima
Enviado por damian_sima el 18 Abril, 2010 - 06:00.

Se puede editar esto?
yo no se....
Bueno no se ve de la misma forma que en la vista previa. Pensé que la etiqueta code quedaría bien pero no se respeta...
espero que la próxima me salga mejor, al menos el formato!

Imagen de realmystic
Enviado por realmystic el 19 Abril, 2010 - 04:28.

Me parece realmente interesante damian_sima. Como te ha ido con la difusion de este CD?

Imagen de ssorgatem
Enviado por ssorgatem el 19 Abril, 2010 - 07:24.

¡Muy currado, sí señor! :D

Cada X tiempo hay alguien que pregunta cómo hacer un liove CD de debian, o cómo peronalizarlo, o algo de ello. Hasta ahora siempre les he recomendado leer sobre live-helper, pero a partir de ahora los mandaré para aquí.

Creo que está bastante bien explicado y que deja al alncance de cualquiera* hacer un CD de debian personalizado

Pues eso, muy buen trabajo :)

*cualquiera que realmente lo necesite... mi abuela, por ejemplo, no xD

Imagen de Froggy
Enviado por Froggy el 19 Abril, 2010 - 07:37.

Está muy bien esplicado, lo fuí leyendo por partes y esta bastante bien esplicado, me dieron ganas de probar en hacer una version propia.

PD: No veo que instalaras algun programa para editar las particiones como gparted

Saludos

Imagen de xanderboy
Enviado por xanderboy el 19 Abril, 2010 - 07:39.

Excelente. Son las 12:38 Am, lo he guardado en mis "Favoritos", mañana que tenga tiempo lo leeré detenidamente.

Saludos

Imagen de cnicolas
Enviado por cnicolas el 19 Abril, 2010 - 07:52.

Fenomenal, yo tambien estoy pensando en como crear un live-cd de estas caracteristicas, em mi caso con lenny.
Lo usare como guia. Enhorabuena por la entrada clap
Aqui dejo un enlace a un pdf con la explicacion de estas heramientas.

Imagen de damian_sima
Enviado por damian_sima el 19 Abril, 2010 - 13:55.
cnicolas escribió:

Fenomenal, yo tambien estoy pensando en como crear un live-cd de estas caracteristicas, em mi caso con lenny.
Lo usare como guia. Enhorabuena por la entrada clap
Aqui dejo un enlace a un pdf con la explicacion de estas heramientas.

muy buen manual, tengo uno pero este esta mejor...

Gracias a todos por sus comentarios. Saludos

Ah, pronto se vendrán modificaciones!!!

repito: Gracias

Imagen de simple
Enviado por simple el 20 Abril, 2010 - 04:22.

Muy grosso!!

Buenisimo che!

D:

Imagen de damian_sima
Enviado por damian_sima el 20 Abril, 2010 - 18:30.

Aqui les dejo el link de la iso para los que quieran probar como queda, es el mismo que he explicado, espero que lo prueben y comenten como le fue:
squeeze gnome x64

Cuando inicia el cd pueden precionar TAB y cambiar las opciones de booteo. si quieren usar un pendriver con el programa unetbootin pueden cargarlo fácilmente y el booteo es mucho mas rápido!

Saludos...

Imagen de megabloc
Enviado por megabloc el 19 Septiembre, 2010 - 16:30.

Impresionante,acabo de instalar tu live-cd y va de maravilla!!
Estaba aburrido de la ubuntu lucid y me dije,vamos a probarla.
Tengo un amd athlon x2 245 con una grafica nvidia,me he quedado alucinado de lo que pueden hacer algunos con conocimiento.
Las particiones ya las tenia hechas,tras intalar edite /etc/fstab para tener mi carpeta de usuario en la particion home.
Felicidades!!! clap