Debian Live USB persistente

USB Key Flash Drive with Logo

La amplia mayoría de distribuciones GNU/Linux, desde las más conocidas hasta aquellas de las que nunca has oido hablar disponen de versiones Live, ofreciendo una forma rápida de probarla y opcionalmente instalarla en nuestra máquina. Entre las muchas posibilidades existentes en el universo Linux, es posible encontrar distribuciones Live de propósito general como Knoppix, Slax, etc, así como otras dedicadas a temas específicos como auditorias de seguridad (Backtrack), centros multimedia (GeeXboX), recuperación (SystemRescueCD), etc.

La distribución Live fué concebida en un principio parar ser utilizada sobre medios de solo lectura como CDs/DVDs, por lo que cualquier modificación realizada se pierde una vez apagado el sistema, ya que en realidad todas las operaciones de escritura se aplican sobre la memoria principal volatil (mediante el sistema de archivos tmpfs). Sin embargo, utilizando medios extraibles de lectura/escritura como llaves o discos USB, omitimos esta restricción a través del concepto de persistencia, el cual permite preservar todos los cambios, extendiendo así la idea de distribución Live a una herramienta que permite la portabilidad tanto de nuestros datos como de nuestras aplicaciones las cuales estarán actualizadas y configuradas según nuestras preferencias.

Para crear nuestra Live persistente recurriremos al proyecto Debian Live, el cual nos ofrece varias alternativas:

  • Descargar de un repositorio de imágenes ISO y HDD, cuyas versiones son standard, rescue (ambas sin X.Org) y desktop (con X.Org), existiendo versiónes para los entornos de escritorio Gnome Shell, KDE Plasma, Xfce y LXDE. Todas las imágenes incorporan paquetes correspondientes a la rama estable de Debian, existiendo por cada versión una equivalente que también incorpora paquetes de los repositorios non-free.
  • Solicitar a Debian Live una imagen personalizada a través de este formulario, recibiendo un email de conformación con el enlace de descarga una vez se haya generado la imagen.
  • Crear nuestra propia imagen personalizada pudiendo establecer rama, arquitectura, kernel, paquetes a instalar, etc.

Entre las distintas alternativas, no cabe duda que la más sencilla es descargar una de las imágenes disponibles en los repositorios, aunque al estar estas basadas en la rama estable de Debian, dada la política de esta distribución, es posible que el software que incluye se encuentre desactualizado, algo que no tiene por qué ocurrir si creamos una imagen personalizada, la cual puede estar basada en cualquiera de las ramas de debian, incluso en la rama unstable/sid mucho más actualizada

Antes de continuar, los únicos requisitos son:

  • Llave USB de al menos 4 GB (para una persistencia completa).
  • Conexión a Internet.
  • Distribución Debian o derivada (Ubuntu, Linux Mint, etc)

Construcción de imagen Live personalizada

Si eres de los que prefiere crear su propia imagen personalizada, sigue los pasos siguientes:

  1. Instalamos (como superusuario) los paquetes correspondientes.
    aptitude install live-build live-config
    
  2. Creamos el directorio de trabajo y nos ubicamos en el.
    mkdir live && cd live
    
  3. Copiamos las plantillas de los scripts build, clean y config que serán ejecutados automáticamente al invocar la orden lb [build | clean | config ] correspondiente.
    cp -R /usr/share/doc/live-build/examples/auto .
    
  4. Editamos el script auto/config en el que establecemos las opciones de configuración que se ajusten a nuestras necesidades. Dicho script será invocado automáticamente al crear el arbol de configuración de la Live. Por supuesto el grado de persionalización es tan alto como queramos, basta con consultar las opciones disponibles en la ayuda en linea (comando man lb config).
    #!/bin/sh
    
    set -e
    
    lb config noauto \
         --architectures i386 \
         --linux-flavours 686-pae \
         --binary-images hdd \
         --distribution sid \
         --archive-areas "main contrib non-free" \
         --bootappend-live "boot=live \
                            config \
                            persistence \
                            hostname=debkey \
                            username=j2sg \
                            locales=es_ES.UTF-8 \
                            timezone=Europe/Madrid \
                            keyboard-layouts=es" \
         --firmware-binary true \
         --firmware-chroot true \
         --updates false \
         --security false \
         --memtest memtest86+ \
         "${@}"
    
  5. Creamos el arbol de configuración.
    lb config
    
  6. Incluimos las listas de paquetes a instalar.
    1. Lista de paquetes de prioridad estandar, la cual podemos generar automaticamente a través del comando ! Packages.
      echo "! Packages Priority standard" > config/package-lists/standard.list.chroot
      
    2. Lista de paquetes del entorno de escritorio para un determinado idioma (En este caso KDE Plasma en idioma español).
      echo "task-spanish task-kde-desktop task-spanish-kde-desktop task-desktop task-spanish-desktop" >> config/package-lists/desktop.list.chroot
      
    3. Lista de paquetes complementarios que deseemos incluir.
       echo "cryptsetup memtest86+" >> config/package-lists/others.list.chroot
      
  7. Construimos la imagen (Como superusuario).
    lb build
    

La construcción de la imagen puede llevar un buen rato, cuya duración dependerá de la velocidad de nuestra conexión de red para descargar los paquetes y en mayor medida de la capacidad de nuestro hardware para generar la imagen.

Preparación de llave USB

Llegados a este punto, ya disponemos de una imagen binaria Live (descargada de los repositorios o generada por nosotros), por lo que procedemos a escribirla en la llave USB y a crear las particiones persistentes (Las siguientes operaciones requieren privilegios de superusuario).

  1. Escribimos la imagen binaria en la llave USB, en este caso correspondiente al dispositivo /dev/sdb (CUIDADO con escribir en el dispositivo correcto, ya que esta operación implica la perdida de datos, empezando por la tabla de particiones del dispositivo).

    dd if=binary.img of=/dev/sdb bs=1M
    
  2. Creamos con fdisk (o bien parted/gparted) una segunda partición primaría que ocupe todo el espacio restante del dispositivo la cual utilizaremos como volumen de persistencia.

    fdisk /dev/sdb
    
  3. Creamos el sistema de archivos EXT4 en la partición /dev/sdb2 recien creada con la etiqueta persistence.

    mkfs.ext4 -L persistence /dev/sdb2
    
  4. Montamos la partición creada.

    mount /dev/sdb2 /media
    
  5. Creamos la configuración del volumen de persistencia, la cual se declara en el fichero persistence.conf en la raiz del volumen. La Live busca durante el arranque todas las particiones etiquetadas con persistence, las cuales deben tener el fichero persistence.conf, el cual permite establecer que directorio/s de la FHS son persistentes. La palabra clave union a continuación de cada ruta indica que solo se guardaran en el volumen los cambios efectuados y no todos los datos persistentes. Para conseguir una persistencia completa declaramos lo siguiente.

    echo "/ union" > /media/persistence.conf
    
  6. Desmontamos la partición.

    umount /media
    
  7. Reiniciamos la máquina para probar la Live.

Ya contamos con una distribución Debian Live completamente persistente.

debian.live.sid.screenfetch

A partir de ahora podemos empezar a instalar nuestras aplicacion, configurar el entorno a nuestro gusto y por supuesto copiar nuestros datos para poder disponer de ellos en cualquier parte.

debian.live.sid.upgrade

Fuentes:

Atribuciones:

Anuncios

9 comentarios sobre “Debian Live USB persistente

  1. Hola: He copiado tu fichero auto/config y me funciona bien lb config sin embargo otras configuraciones me fallan y me dicen que no encuentra dichas configuraciones. Le pongo \ para continuar las líneas pero es que no encuentro ninguún sentido al fallo. ¿Alguna idea? Saludos

  2. Hola: alguien conoce algún reemplazo a la herramienta remastersys ya que no esta soportada para jessie, o alguna forma de crear un live cd de un sistema ya instalado.gracias!!

  3. Buenas tardes, alguien ha probado esto con jessie, por mas pruebas que hago no me funciona, os cuento;
    He bajado debian-live-8.4.0-i386-lxde-desktop.iso
    ejecuto desde un terminal con sudo
    dd if=debian-live-8.4.0-i386-lxde-desktop.iso of=/dev/sdb
    con gparted creo la segunda particion con label persistence
    mount /dev/sdi2 /media/my_usb
    echo “/ union” > /media/my_usb/persistence.conf
    umount /media/my_usb
    Todo perfecto pero al arrancar el pendrive no se si hay que seleccionar alguna opcion concreta pero ninguna me pone nada de persistente, y por mas que he probado con las opciones que me aparecen al reiniciar se pierde los datos

    Esto mismo lo probe con una Kali, y aqui aparece al arranque una opcion que pone live+persistent y eligiendo esa funciona el modo persitente.
    Entiendo que el proceso debe de ser igual para una que para otra asi que no se como activarlo en debian puro.

    ¿alguna idea?

    Gracias

    1. Hola Pepe.

      Para que funcione la persistencia es necesario que cuando se ha iniciado el grub, estando seleccionada la opción Live (i386) pulses tabulador y añadas la opción persistence para el kernel, lo que hará que el sistema arranque en modo persistente.

      En realidad esto tan solo es necesario para los que como en tu caso utilizan una imagen ISO predeterminada de los servidores de debian. Si hubieras creado una imagen personalizada, como puedes ver en la linea 12 del script auto/config está incluida la opción de arranque persistence, lo que hace que el sistema arranque en modo live persistente por defecto.

      Saludos.

      1. Ok gracias por la info, pensé en hacer la personalizada, pero soy muy nuevo en esto de linux, y de momento tire por una hecha, pero seguro que me haré una personalizada a futuro.

        Ya he probado lo que me comentas de añadir persistencia, incluso que arranque con teclado español que eso siempre lo perdía incluso en los persistentes, pero como podría grabar la linea con los cambios que hago o que fichero debo editar, no creo que siempre tenga que pulsar el tabulador y escribirlo ¿verdad?

        Gracias de nuevo-

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s