Pasos para crear un LiveCD – DVD – USB desde cero en Debian y sus derivados.

12
9813

Partiendo de la necesidad de crear mi propio LiveCD el cual pueda actualizar periódicamente y personalizar a mi gusto, y conociendo los avances de las tecnologías informáticas en la rama de GNU/Linux, me percate de la escasa necesidad de instalar programas gráficos extras.

Gracias a los portables no necesitaré instalar programas de uso cotidiano para mi como el Gimp, Inskape, Blender, incluso el Libreoffice para algunas ocasiones. Sin estos programas instalados en mi sistema me ahorro varios mega-bits en software y librerías.


Los portables para Linux lo pueden descargar del siguiente sitio:

http://sourceforge.net/projects/portable/files

Incluso podrán realizar sus propios portables con los siguientes programas del mismo sitio:
– AppDirAssistant: Utilidad para portabilizar los programas, es necesario ejecutar AppDirAssistant antes de instalar el software a portabilizar; dicho software no puede estar instalado antes de ejecutar AppDirAssistant.
– AppImageAssistant: Utilidad para comprimir la estructura en un solo fichero auto ejecutable las carpetas creadas por

Para crear portables de algún software ya instalado podrán usar el siguiente programa:

Para 32 bits
https://github.com/downloads/pgbovine/CDE/cde_2011-08-15_32bit

Para 64 bits
https://github.com/downloads/pgbovine/CDE/cde_2011-08-15_64bit

Crear portables con este método no buscará dependencias instaladas en tu sistema operativo, ni guardará la configuración en tu carpeta de usuario a menos que se cree un enlace simbólico dentro de cde-root o se le indique al fichero cde.options con una línea parecida a esta:

ignore_prefix=/home

Viendo esto nos percataremos de que podremos descargar o crear los portables que deseemos, eliminando la necesidad de instalar aplicaciones extras ajenas a nuestro sistema base, y así reducir su espacio a la hora de crear nuestro propio LiveCD.

Desarrollo
Como bien dice el titulo veremos como crear nuestro propio LiveCD desde cero lo que nos permitirá instalar las aplicaciones que deseemos empezando por instalar nuestro sistema base, existen varias formas de conseguir esto una mediante una instalación modo texto sin llegar a instalar el sistema gráfico y otra usando debootstrap, este último caso es el que abordaremos en este manual porque nos permite crear nuestro sistema desde cero sin ningún programa extra al sistema base.

Teniendo un sistema de GNU/Linux, ya instalado crearemos una partición con el tamaño deseado para instalar el sistema base en dicha partición, veamos paso a paso como crear nuestro sistema base con debootstrap:

Paso #1
Instalar debootstrap

 # apt-get install debootstrap

Paso #2
Montar la nueva partición en /mnt

 # mount /dev/sdax /mnt

Paso #3
Instalar el sistema base en dicha partición:

Para 32 bits

 # debootstrap --arch i386 distribución /mnt

Para 64 bits

 # debootstrap --arch amd64 distribución /mnt

La distribución ha de cambiarse por el nombre de la versión de GNU/Linux que deseemos instalar, dichos ficheros se encuentran en /usr/share/debootstrap/scripts, si no existe el fichero con el nombre de la distribución que vayan a usar simplemente copian el de la ultima versión con el nombre de la nueva versión y lo abren con un editor de texto y donde se indique la dirección web la cambian por la nueva, ejemplo:

Se me da el caso de que los repositorio los descargo desde otra dirección y no de la pagina oficial, voy a /usr/share/debootstrap/scripts copio la ultima versión que este, en este caso uso un repositorio de Ubuntu (Oneiric) que esta esta carpeta pero la dirección de descarga es otra ya que esta se encuentra en el disco duro de mi pc, abrimos el fichero y cambiamos

default_mirror http://archive.ubuntu.com/ubuntu

por

default_mirror file:///camino/a/repo/ubuntu

Si se encuentran más de una linea con esta forma han de cambiarla también.

Es importante que el fichero dentro /usr/share/debootstrap/scripts tenga el nombre clave de dicha distribución, si es la versión de Debian squeeze, deberá tener dicho nombre, con los enlaces correctos a la web
No se recomienda realizar este procedimiento directamente sobre una memoria USB, ni un disco externo, ya que copiar ficheros hacia el puerto usb es más lento, además de que podría dañar un pendrive por la excesiva copia y extracción de paquetes que se realizaran en dicha partición.

Paso #4
Cambiamos la raíz de trabajo desde la terminal con chroot y procedemos a instalar el software esencial de acuerdo a nuestras necesidades.
– Cambiando la Jaula

# mount -t proc none /mnt/proc
# mount -o bind /dev /mnt/dev

– Montar el disco externo que contenga el repositorio

# mkdir /mnt/media/Nombre-Disco
# mount /dev/sdax /mnt/media/Nombre-Disco
# chroot /mnt

– Dentro de la misma jaula indicar cuales son los repositorios a usar en /etc/apt/source.list
nano /etc/apt/source.list
en mi caso desde el disco de mi pc

deb file:///media/Nombre-Disco/Oniric-Ocelot/mirror/ubuntu/ oneiric main multiverse restricted universe
deb file:///media/Nombre-Disco/Oniric-Ocelot/mirror/ubuntu/ oneiric-backports main multiverse restricted universe
deb file:///media/Nombre-Disco/Oniric-Ocelot/mirror/ubuntu/ oneiric-proposed main multiverse restricted universe
deb file:///media/Nombre-Disco/Oniric-Ocelot/mirror/ubuntu/ oneiric-security main multiverse restricted universe
deb file:///media/Nombre-Disco/Oniric-Ocelot/mirror/ubuntu/ oneiric-updates main multiverse restricted universe
deb file:///media/Nombre-Disco/Oniric-Ocelot/mirror/medibuntu/ oneiric free non-free
deb file:///media/Nombre-Disco/Oniric-Ocelot/mirror/canonical/ oneiric partner

Si usamos el método tradicional desde una pagina web y usamos una dirección proxy necesitaremos indicarle que use este proxy desde la misma jaula con el siguiente comando:

# export http_proxy=”http://usuario:clave@proxy.nombre.org:3128“
# export ftp_proxy=”http://usuario:clave@proxy.nombre.org:3128“

Paso #5

# apt-get update
# apt-get upgrade
# apt-get upgrade
# apt-get dist-upgrade

Paso #6
Instalar los locales (idiomas)

# aptitude install locales
# dpkg-reconfigure locales
# aptitude install localepurge
# localepurge

Paso #7
Instalar la versión del kernel que vallamos a usar, ejemplo:

# apt-get install GNU/Linux-image-3.0.0-14-generic
depmod 3.0.0-14-generic
user-setup

Paso #8
Proceder a instalar software esencial para el correcto arranque del sistema y posterior creación del LiveCD.

 # apt-get install aptitude grub2 sysGNU/Linux squashfs-tools casper archdetect-deb mkisofs genisoimage xorriso console-tools console-keymaps mc blkid parted

Paso #9
Crear algunos ficheros de configuración esenciales

 # mcedit /etc/network/interfaces

y agregar esto:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Editar el fichero:

 # mcedit /etc/hostname

y agregar esto:
Nombre-del-Host

 # mcedit /etc/hosts

y agregar esto:
127.0.0.1 localhost Nombre-del-Host

Paso #10
Crear el fichero mtab y fstab.

# grep -v rootfs /proc/mounts > /etc/mtab
# grep /etc/mtab -e " / " > /etc/fstab

Nota: Para evitar conflictos se recomienda dar la dirección al disco raíz por el uuid, con el comando blkid podrán obtener el uuid y remplazar /dev/sdax en /etc/fstab dentro de esta jaula por el uuid, ejemplo si es

 /dev/sda1 remplazar por UUID=uuid quedando así:
UUID=476efe22-73ec-4276-915d-c4gga65f668b / ext3 errors=remount-ro 0 0

Paso # 11
Instalar el entorno gráfico -Opcional si no necesitan instalar un entorno gráfico.

 # apt-get install xserver-xorg-video-all xorg xserver-xorg

Paso #12
Instalar el grub, si no tenemos instalado ningún grub en el sector de arranque podremos realizarlo de la siguiente forma:

En caso de no tener ningún sistema de GNU/Linux ya instalado procederemos de la siguiente forma:
Salimos de la jaula:

# exit
# sudo grub-install --root-directory=/mnt /dev/sda

Volvemos a la jaula:

# chroot /mnt
# update-grub

– En caso de tener el fichero del grub ya instalado simplemente editamos el fichero
Salimos de la jaula:

# exit
# update-grub

Paso #13

Instalamos nuestro entorno de escritorio preferido así como nuestro gestor de sesiones que deseemos. En mi caso instale el entorno de escritorio e17 (enlightenment) junto con el explorador de ficheros spacefm y así crear mi propio LiveCD para realizar copias de seguridad, así como le incluí el programa debootstrap para así instalar mis nuevos sistemas operativos directamente de los repositorios sin necesidad de usar otros LiveCD o instalaciones en modo texto.

 # apt-get install e17 e17-data gparted mtools testdisk secure-delete partimage gzip zip unzip tar pkill xterm

Ustedes pueden escoger el entorno de escritorio de su preferencia, así como el conjunto de aplicaciones a usar.

El gestor de sesión.

– En este caso no necesito un gestor de sesiones que me pida nombre de usuario y contraseña puesto su objetivo es que inicie directamente la sesión, para ello creamos un fichero de texto en /etc/startX

# touch /etc/init.d/startX
# chmod +x /etc/init.d/startX

Copiar lo siguiente dentro de este fichero

#!/bin/sh
. /lib/lsb/init-functions
PATH=/sbin:/bin:/usr/sbin:/usr/bin
case $1 in
start)
echo "Iniciando sistema gráfico"
echo "Puedes consultar el LOG en /var/log/arranque_x.log"
X :0 1>>/var/log/arranque_x.log 2>>/var/log/arranque_x.log &
DISPLAY=:0 su root -c enlightenment_start 1>/dev/null 2>/dev/null &
;;
stop)
echo "Parando todos los procesos X"
pkill X
;;
*)
echo "Opción invalida"
;;
esac
exit 0

Para indicarle al sistema que inicie este fichero con el sistema ejecutamos lo siguiente desde la consola.

 # update-rc.d startX defaults 99

Esto es para no tener que usar ningún gestor de ventanas como lxdm, gdm entre otros.

Reiniciamos la PC con la nueva instalación.

Como yo había indicado instale spacefm para ello descargo el código fuente de esta página.

http://spacefm.sourceforge.net/ (el fichero .tar.gz o .tar.xz) al disco de la maquina.

Instalo las dependencias de este software:

# apt-get install autotools-dev bash desktop-file-utils build-essential libc6 libcairo2 libglib2.0-0 libgtk2.0-0 libgtk2.0-bin libpango1.0-0 libx11-6 shared-mime-info intltool pkg-config libgtk2.0-dev libglib2.0-dev fakeroot libudev0 libudev-dev

Descompactamos dicho fichero

 tar -xf /camino/fichero/spacefm.tar.xz
cd /camino/fichero/spacefm
./configure
# make -s
# make install
# update-mime-database /usr/local/share/mime > /dev/null
# update-desktop-database -q
# gtk-update-icon-cache -q -t -f /usr/local/share/icons/hicolor
# gtk-update-icon-cache -q -t -f /usr/local/share/icons/Faenza

Con esto, si no hubo ningún problema tendremos a spacefm instalado.

Paso #14

Instalar remastersys.

Remastersys lo podrán buscar en su pagina web oficial http://remastersys.sourceforge.net/, pero les recomiendo usar el que les adjunto para mantener la compatibilidad, ya que este no instala ni desinstala ninguna aplicación durante el proceso de creación del LiveCD, así como dejo unos script para instalar el LiveCD en una memoria usb.

Descargar remastersys e instalar.

 # dpkg -i /camino/a/remastersys.deb
Nota: Ubiquity es el instalador gráfico de ubuntu, pero este no es necesario instalarlo para la posterior instalación del LiveCD en una PC.

Paso #15

Creación del LiveCD con remastersys.

Remastersys tiene 2 modos de creación de LiveCD, uno guardando la configuración de todos los usuarios y otra quitando toda configuración y registro de otro usuario que es la estamos acostumbrados a ver en los LiveCD tradicionales de ubuntu.

Para crear LiveCD guardando tu configuración.

 # remastersys backup

– Para crear LiveCD sin usuarios ni configuraciones (Recomendado).

# remastersys dist cdfs
# remastersys dist iso custom.iso
Nota: Estos ficheros se generaran en /home/remastersys, para personalizar el nombre de usuario y otros podrán editar el fichero /etc/remastersys.conf. Debido a que el usuario root no se le borra la contraseña se aconseja no tener ninguna clave comprometedora como la clave de root.

Paso #16

Instalación de cualquier LiveCD de Debian o derivados hechos con remastersys.
Primero verifiquen que su partición esta marcada como boteable con el gparted o parted de la siguiente manera:

# parted /dev/sdb set 1 boot on - Para activarla
# parted /dev/sdb set 1 boot off - Para desactivarla
Nota: El numero después de set corresponde con el número de la partición de dicha memoria.

– Instalamos el iso en un cd dvd, o si lo desean en un dispositivo usb de la siguiente forma (Todo esto como root):

mkdir -p /mnt/cdrom
mkdir -p /mnt/usb
mount -o loop /camino/fichero.iso /mnt/cdrom
mount /dev/sdbx /mnt/usb
cp -r /mnt/cdrom/* /mnt/usb
cp -r /mnt/cdrom/isoGNU/Linux/* /mnt/usb
mv /mnt/usb/isoGNU/Linux.cfg /mnt/usb/sysGNU/Linux.cfg
umount /mnt/usb
umount /mnt/cdrom

# OJO fíjense en la partición de su dispositivo usb si la partición que montaron es /dev/sdb1 el sector de arranque habrá de instalarse en /dev/sdb

# cat /usr/lib/sysGNU/Linux/mbr.bin > /dev/sdb
# sysGNU/Linux --install /dev/sdb1

Paso #16.1.

Primero iniciamos desde el LiveCD o usb si lo tenemos en la memoria.

Si no están creadas las particiones requeridas como la swap (área de intercambio) así como una partición de más de 1 GB o más en dependencia del tamaño del livecd.

Nota-Importante: /dev/sdax hace referencia a si es /dev/sda1 u otro número, esto podremos comprobarlo tecleando blkid en la consola.

Paso #16.2.

Montar la partición creada en /mnt

# fsck -a /dev/sdax
# mount /dev/sdax /mnt

Paso 16.3.

Copiar todos los ficheros dentro de la carpeta /rofs a /mnt

 # cp -r /rofs/* /mnt

Ojo: todo esto como usuario root.

Paso #16.4.

Instalar el grub

 # grub-install --root-directory=/mnt /dev/sda

Paso #16.5.

Preparar el sistema para arranque el grub correctamente.

mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
chroot /mnt
update-grub

Paso #16.6.

Sin salir de la jaula chroot preparamos los ficheros esenciales /etc/fstab y /etc/mtab

grep -v rootfs /proc/mounts > /etc/mtab
grep /etc/mtab -e " / " > /etc/fstab
Nota: Si es necesario creen un nuevo usuario que no sea root si lo desean mediante la consola con el siguiente comando:
useradd -m -c "Usuario Administrativo" -G adm,admin,sudo,dialout,cdrom,plugdev,lpadmin,sambashare -d /home/usuario -s /bin/bash usuario

Conclusiones

Con esto queda terminada esta amplia pero sencilla guía, la cual podrán poner en practica si lo desean y compartir con vuestros amigos su propio livecd, la calidad de todo livecd/dvd recae en los conocimientos del propio usuario, la puesta en práctica de nuevas tecnologías que ahorren espacio en el disco duro.

Como vieron no es necesario usar unetbootin para convertir un LiveCD en live usb, si usan spacefm tendrán todo lo necesario en lo que respecta a aplicación gráfica ya sea para convertir vídeos, ficheros de audio entre otros, solo necesitaran el programa que realiza esto desde la linea de comandos y crear o descargar un plugin para realizar dichas tareas.

↓↓↓¿Te sirvió este artículo?, Vota por nosotros en los OpenAwards↓↓↓

12 COMENTARIOS

  1. Demasiado complicado, en mi otra pc utilizo Remastersys en Xubuntu 13.04 y genero mi iso live cd perfectamente y en 13 min, desde el sitema ya isntalado y personalizado con los programas que son de mi interes. Hoy en dia, que unicamente exista remasterys pra lograr esto es totalmente reprochable, existen otros y otras formas, pero siguen siendo tediosas como la que se describe en este post.

  2. Pues a mi me parece un manual muy bueno que cuando tenga tiempo voy a probar.
    Tal vez haya formas más rápidas para hacer lo mismo, pero lo que se aprende en el camino (probablemente no salga a la primera) no tiene precio.

  3. Se me paso poner que a los que no instalen ubiquity se les aconseja instalar las siguientes dependencias.

    accountsservice apt-clone btrfs-tools console-setup cryptsetup dmidecode dmraid dpkg-repack ecryptfs-utils gconf2 gconf2-common gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-gstreamer-0.10 gir1.2-gtk-3.0 gir1.2-pango-1.0 gir1.2-soup-2.4 gir1.2-timezonemap-1.0 gir1.2-vte-2.90 gir1.2-webkit-3.0 indicator-application kbd keyutils language-selector-common laptop-detect libaccountsservice0 libappindicator1 libappindicator3-1 libbsd0 libcap-ng0 libcap2-bin libdbusmenu-glib4 libdbusmenu-gtk3-4 libdbusmenu-gtk4 libdebconfclient0 libdmraid1.0.0.rc16 libecryptfs0 libgail-3-0 libgck-1-0 libgconf2-4 libgcr-3-1 libgtk-3-0 libgtk-3-bin libgtk-3-common libgtop2-7 libgtop2-common libicu44 libindicator3-6 libindicator6 libiw30 libnss3-1d libp11-kit0 libpam-gnome-keyring libstartup-notification0 libtimezonemap1 libvte-2.90-9 libvte-common libwebkitgtk-3.0-0 libwebkitgtk-3.0-common libxklavier16 lsof psmisc python-appindicator python-argparse python-libxml2 python-pyicu python-xklavier rdate reiserfsprogs rsync

    Se que esta guia puede ser tediosa, pero si puedo conseguir m i propio live cd con no mas de 215 MB prefiero releer esta guia nuevamente.

  4. Interesante el procedimiento pero son ganas de complicarse la vida.

    # apt-get install live-magic
    $ live-magic

    Y con unos pocos clics tienes tu live CD o USB.

  5. Gracias por la info, esto sirve para cualquier distro linux? los portables se pueden meter en esa live personalizada?, gracias.

Dejar una respuesta