Página 1 de 1

Como lograr persistencia en lives usb de Debian o derivados?

Publicado: Sab, 07 Jun 2014, 15:43
por GhOsT14105
Saludos de antemano.

Necesito encarecidamente si alguien sabe como lograr tener un live usb de Debian o derivados de dicha distro y que a la ves este tenga persistencia, se que en ubuntu eso se puede por que lo he hecho, pero en Debian, no se, ni me imagino como se hace.

Aclaro que no tengo acceso al mas alla (internet).

Re: Como lograr persistencia en lives usb de Debian o deriva

Publicado: Jue, 03 Jul 2014, 15:46
por stanley
Suponiendo que tienes un live CD ya creado, montas la imagen iso:

Código: Seleccionar todo

mkdir $HOME/media

Código: Seleccionar todo

fuseiso -p /direccion/imgen.iso $HOME/media
Copias el contenido a la memoria usb:

Código: Seleccionar todo

cp -r $HOME/media/* /media/memoria-montada
Renombras el fichero isolininux.cfg a syslinux.cfg y lo copias en la raíz de la memoria es decir afuera. Luego desmontas la memoria y sin quitarla realizaras esto:

Código: Seleccionar todo

sudo fdisk -l 
si tu memoria es por ejemplo /dev/sdb1 realizas este paso:

Código: Seleccionar todo

su
# cat /usr/lib/syslinux/mbr.bin > /dev/sdb
[b]Ojo: no deben ponerle el 1 después de /dev/sdb[/b]
# syslinux --install /dev/sdb1
Luego con el gparted te fijas que este marcada como booteable, de lo contrario le das un clic en Gestionar Opciones y das un clic en boot.

Hasta aquí el proceso típico de crear un live USB, ahora veremos como crear la persistencia:

Código: Seleccionar todo

cd /media/memoria-montada 
dd if=/dev/zero of=casper bs=1M count=100
mkfs.ext2 ./casper
Ahora abrimos el fichero syslinux.cfg con el editor de texto de tu preferencia y copiaremos las siguientes lineas:

Código: Seleccionar todo

label live-persistent
  menu label live - boot the Live System - Guardar Cambios - Unsecure
  kernel /casper/vmlinuz
  append noprompt cdrom-detect/try-usb=true persistent locale=es_ES file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.gz --
Las lineas más importantes que inician la memoria en modo peristente son estas
noprompt cdrom-detect/try-usb=true persistent locale=es_ES

Espero esto te sirva, si tienes alguna duda postealo.

Re: Como lograr persistencia en lives usb de Debian o deriva

Publicado: Dom, 06 Jul 2014, 09:19
por GhOsT14105
Todavia no he probado, en cuanto lo tenga lo hare, pero te dire que esas lineas las he estudiado y he visto algo parecido en lineas creadas por unetbooting y te cuento que solo funcionan solo para distribuciones hechas a partir de ubuntu, de todas formas estoy probando con algo que encontro un socio en internet para sistemas debian, mas adelante les comentare como se hace, cuando este casi 100% de que funcione bien..

Re: Como lograr persistencia en lives usb de Debian o deriva

Publicado: Dom, 06 Jul 2014, 09:55
por GhOsT14105
Bueno les expongo lo que encontro el socio con respecto al tema.

A nuestro rescate sale Ben Armstrong explicando cómo lograrlo con la última versión de Debian.

Traducción

Desde wheezy, Debian ya no ofrece descargas de imágenes live listas de hdd (conocido anteriormente como usb-hdd) que, en squeeze, eran necesarias si deseaba utilizar persistencia. Las buenas noticias son que, debido a que las nuevas imágenes iso-hybrid utilizan xorisso, puede copiar la imagen a una memoria USB y reparticionarla para agregar una partición de persistencia. Desafortunadamente, el sistema de archivos en sí mismo es sólo de lectura, por lo que debe agregar manualmente el parámetro de arranque persistence cada vez que inicie la imagen. Si esto no le molesta, puede evitar todo este tutorial y simplemente seguir las http://live.debian.net/manual/stable/ht ... ersistence para agregar la partición de persistencia y ya.

Este tutorial explica cómo extraer el contenido de una imagen live iso-hybrid de wheezy en una memoria USB y modificarla para arrancar con este parámetro habilitado permanentemente. Lo estoy escribiendo sólamente como una forma de esquivar el problema y no considero que ésta sea una forma de personalizar imágenes Debian Live en general. Me encantaría ayudar a crear una forma más conveniente y oficial de lograr lo mismo para una versión futura. Mientras tanto, la forma recomendada y oficial de realizar cualquier cambio a una imagen Debian Live es crearla desde cero utilizando live-build, como se describe en http://live.debian.net/manual/stable

Si lo prefiere, se encuentra disponible un servicio web Debian Live Images Autobuilder: http://live-build-cgi.debian.net/ simplificado que funciona bien para muchas personalizaciones comunes. Utilice uno de estos métodos si desea hacer esta u otras personalizaciones de la forma oficial. De lo contrario, continúe leyendo.

Prerequisitos

Necesita descargar una imagen live iso-hybrid de Debian. Para este tutorial utilizaremos la imagen live de Debian wheezy amd64 LXDE: http://cdimage.debian.org/debian-cd/cur ... esktop.iso

Tenga en cuenta el tamaño de la imagen. Con ls -lh debian-live-7.0.0-amd64-lxde-desktop.iso puede ver que el tamaño de la imagen para este ejemplo es 854M.

Más tarde, utilizará este espacio más 5% como el tamaño de la partición que la contendrá.

Necesita una memoria USB lo suficientemente grande para la imagen en sí y su partición de persistencia. Para esta imagen podría inclusive utilizar una memoria de 1G, aunque le quedaría muy poco espacio para persistencia. En este tutorial, la memoria de prueba es de 8G por lo que sobra mucho espacio en la misma para crecer.

Asumo para este ejemplo que está preparando la memoria en un sistema Debian o Linux que monta automáticamente los medios extraíbles cuando se los conecta, una configuración bastante usual.
Este tutorial también utiliza las siguientes herramientas, que necesitará instalar si no las tiene: parted, mbr, dosfstools, p7zip, syslinux

Identificación del dispositivo de la memoria USB

Precaución: siempre revise y controle que está escribiendo al dispositivo correcto para evitar perder datos importantes. Puede hacer dos cosas para protejerse. La primera es no escribir la memoria USB como root. La segunda es siempre utilizar ls -l /dev/disk/by-id primero para identificar qué dispositivo es la memoria USB deseada.

Código: Seleccionar todo

lrwxrwxrwx 1 root root  9 Jun 22 11:58 
 usb-SanDisk_Cruzer_Contour_0000184CA87406BC-0:0 -> ../../sdb
Como puede ver, mi SanDisk Cruzer Countour es /dev/sdb. Durante el tutorial haré referencia a este dispositivo como /dev/sdX para evitar desastres lamentables si copia y pega del mismo. Cuando lo siga, recuerde reemplazar dicho dispositvo con el correcto para la memoria USB en su sistema.

Inicialización de la memoria USB

Comience conectando la memoria y desmontando cualquier partición que haya sido montada automáticamente para asegurarse que nada es accesible en el dispositivo. Por ejemplo:

Código: Seleccionar todo

$ umount /dev/sdX1
Ahora realice los cambios a la tabla de particiones. Utilice parted porque puede ejecutarlo como un usuario normal y tiene cierta funcionalidad avanzada más allá de las herramientas básicas como fdisk.

Código: Seleccionar todo

$ /sbin/parted
WARNING: You are not superuser.  Watch out for permissions.
GNU Parted 2.3
Using /dev/sdX
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print devices
/dev/sdX (8221MB)
(parted) select                                                           
New device?  [/dev/sdX]?                                                  
Using /dev/sdX
(parted)
Sepa que cuando lo ejecute como un usuario normal, si sólo tiene conectado un dispositivo extraíble (que podría incluir reproductores mp3, cámaras y lectores electrónicos), parted inmediatamente selecciona dicho dispositivo. Pero sólo para asegurarse, utilice print devices para enumerar los dispositivos y seleccionar el correcto como se mostró en el ejemplo anterior.
Reparticionado de la memoria USB

Una vez que verificó que tiene el dispositivo correcto, comience el reparticionado. Escriba una nueva tabla de particiones con mklabel msdos para eliminar todas las particiones anteriores en el mismo. Puede saltear este paso y adaptar las instrucciones restantes si tiene particiones que desea mantener. Esta es su última oportunidad de evitar errores si el dispositvo es el incorrecto, por lo que asegúrese que es el adecuado antes de continuar.

Código: Seleccionar todo

(parted) mklabel msdos
Warning: The existing disk label on /dev/sdX will be destroyed and all data
on this disk will be lost. Do you want to continue?
Yes/No? y
Error: Partition(s) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 on
/dev/sdX have been written, but we have been unable to inform the kernel of
the change, probably because it/they are in use.  As a result, the old
partition(s) will remain in use.  You should reboot now before making further
changes.
Ignore/Cancel? i
(parted)
El error es normal y aparece cuando se ejecuta parted como un usuario normal, por lo que está bien presionar «i» para ignorarlo cada vez que aparece. En el resto del tutorial, omitiré estos errores de las salidas mostradas por cuestiones de brevedad.

Cree tres particiones, una partición fat32 para la imagen en sí que sea 5% más grande que el tamaño del archivo ISO, una partición ext4 de 1G para persistencia y una partición fat32 adicional con el resto del espacio. Ubique como primera la partición adicional para que los otros sistemas operativos en los que utilice la memoria puedan utilizarla. Utilice posicionamiento relativo desde el final del dispositivo para hacer más sencillo el utilizar todo el espacio restante en la primer partición. Por último, active la marca de arranque en la partición de la imagen live.

Código: Seleccionar todo

(parted) mkpart primary fat32 1 -1897M
(parted) mkpart primary ext4 -1897M -897M
(parted) mkpart primary fat32 -897M -0
(parted) set 3 boot on
(parted) quit
Information: You may need to update /etc/fstab.
Desconecte la memoria USB y conéctela nuevamente para que el núcleo vuelva a leer la tabla de partición actualizada. Si algún sistema de archivos preexistente es montado automáticamente, desmóntelos nuevamente. Ahora estamos listos para crear los nuevos sistemas de archivo.

Código: Seleccionar todo

$ umount /dev/sdX1
$ /sbin/mkdosfs -nEXTRA /dev/sdX1
mkdosfs 3.0.16 (01 Mar 2013)
$ /sbin/mkfs.ext4 -q -Lpersistence /dev/sdX2
$ /sbin/mkdosfs -nLXDE /dev/sdX3
mkdosfs 3.0.16 (01 Mar 2013)
Marca de arranque de la memoria USB

Utilice install-mbr para instalar un MBR en la memoria y syslinux para instalar el gestor de arranque que iniciará su la imagen de su partición live.

Código: Seleccionar todo

$ /sbin/install-mbr /dev/sdX
$ syslinux -i /dev/sdX3
Montaje de las particiones

Desconecte la memoria USB y conéctela nuevamente para que se monten automáticamente las nuevas particiones.

Revise dónde se montaron las particiones con df.

Código: Seleccionar todo

$ df
...
/dev/sdX1        6204568         4   6204564   1% /media/EXTRA
/dev/sdX3         831888         4    831884   1% /media/LXDE
/dev/sdX2         944120      1204    894124   1% /media/persistence
Extracción del contenido del archivo ISO a la memoria

Para continuar con la preparación de la memoria como un usuario normal, utilice p7zip para descomprimir el archivo ISO. Una alternativa es montar el archivo ISO como «loopback» y extraerlo de esa forma, pero para ello necesitará permisos de root.

Código: Seleccionar todo

$ cd /media/LXDE
$ 7z x ~/debian-live-7.0.0-amd64-lxde-desktop.iso
...
Extracting  live/filesystem.packages-remove
...
Cuando se descomprima live/filesystem.sqashfs (justo después de live/filesystem.packages-remove), será el archivo que más demore ya que contiene el sistema de archivos live completo. Tenga paciencia y eventualmente finalizará la extracción de éste y todos los demás archivos en la imagen.

Código: Seleccionar todo

...
Everything is Ok

Folders: 245
Files: 370
Size:       892183367
Compressed: 895483904
Modificación de los archivos de configuración del gestor de arranque

En la instalación de un archivo ISO, el directorio de configuración del gestor de arranque syslinux y los archivos en él, poseen el nombre isolinux. Necesita cambiar el nombre de este directorio y dos archivos de isolinux a syslinux para que el gestor de arranque los encuentre en la partición fat32 de la imagen live.

Código: Seleccionar todo

$ mv isolinux syslinux
$ mv syslinux/isolinux.cfg syslinux/syslinux.cfg
$ mv syslinux/isolinux.bin syslinux/syslinux.bin
Activación de la persistencia permanente

A continuación, agrege « persistence» a los parámetros de arranque y active la persistencia permanente creando un archivo llamado persistence.conf con el contenido «/ union» en la partición de persistencia.

Código: Seleccionar todo

$ sed -i 's/\(append boot=.*\)$/\1 persistence/' syslinux/live.cfg
$ cd /media/persistence
$ echo / union > persistence.conf
Reinicio en el sistema live

Ahora su memoria USB está lista para iniciar con la persistencia permanentemente activada.

Artículo original: http://syn.theti.ca/2013/06/22/tutorial ... ce-on-usb/