Creación del pen drive usb

http://syn.theti.ca/2013/06/22/tutorial-wheezy-live-iso-hybrid-with-persistence-on-usb

Nos bajamos una imagen live con el entorno gráfico que queramos:

http://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/

Instalamos paquetes necesarios:

# apt-get install parted mbr dosfstools p7zip syslinux

Creamos las particiones del usb.

sdc1 (fat32) -> datos (lo que sobre, en mi caso 80Gb)
sdc2 (ext4)  -> persistencia 16Gb
sdc3 (fat32) -> sistema 16Gb
# parted


Cambiamos a sdc
(parted) select                                                           
New device?  [/dev/sda]? **/dev/sdc**                                         
Using /dev/sdc

(parted) mklabel msdos                                                    
Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes  

(parted) mkpart primary fat32 1 -37940M
(parted) mkpart primary ext4 -37940M -18970M
(parted) mkpart primary fat32 -18970M -0
(parted) set 3 boot on
(parted) quit                                                             

Ahora formateamos las unidades

mkdosfs -nEXTRA /dev/sdc1
mkfs.ext4 -q -Lpersistence /dev/sdc2
mkdosfs -nLXDE /dev/sdc3

Hacemos el cd arancable:

install-mbr /dev/sdc
syslinux -i /dev/sdc3

Quitamos el pendrive y lo volvemos a conectar para que monte las unidades
Descomprimimos la imagen en la tercera particion. Tarda unos 5 minutos

$ cd /media/LXDE
$ 7z x ~/debian-live-7.0.0-amd64-lxde-desktop.iso

mv isolinux syslinux
mv syslinux/isolinux.cfg syslinux/syslinux.cfg
mv syslinux/isolinux.bin syslinux/syslinux.bin

Hacemos persistente. Cambiamos los parámetros de arranque del Kernel: Añadimos persistence en el arranque en el fichero: /dev/sdc3/syslinux/live.cfg o /dev/sdc3/syslinux/menu.cfg en debian 10

$ sed -i 's/\(append boot=.*\)$/\1 persistence/' syslinux/live.cfg
$ sed -i 's/\(boot=.*\)$/\1 persistence/' syslinux/menu.cfg
label live-amd64
	menu label ^Live (amd64)
	menu default
	linux /live/vmlinuz
	initrd /live/initrd.img
	append boot=live components quiet splash persistence

label live-amd64-failsafe
	menu label ^Live (amd64 failsafe)
	linux /live/vmlinuz
	initrd /live/initrd.img
	append boot=live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal persistence

En la segunda partición sdc2 (persistence) añadimos el fichero persistence.conf con el contenido:

/ union
$ cd /media/persistence
$ echo "/ union" > persistence.conf

Docker

Docker no arranca porque quiere montar un sistema de ficheros aufs sobre aufs. Se para docker y se mueve la carpeta de docker de /var/lib a otro file system:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
aufs             18G  3.0G   14G  18% /
tmpfs           3.2G  9.2M  3.2G   1% /run
/dev/sdb3        18G  1.2G   17G   7% /lib/live/mount/persistence/sdb3
/dev/loop0     1008M 1008M     0 100% /lib/live/mount/rootfs/filesystem.squashfs
tmpfs           7.9G     0  7.9G   0% /lib/live/mount/overlay
/dev/sdb2        18G  3.0G   14G  18% /lib/live/mount/persistence/sdb2
devtmpfs         10M     0   10M   0% /dev
tmpfs           7.9G   80K  7.9G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
tmpfs           7.9G  240K  7.9G   1% /tmp
tmpfs           1.6G   12K  1.6G   1% /run/user/1000
/dev/sdb1        25G   64K   25G   1% /media/user/EXTRA

Creamos enlace simbólico en otro filesystem

ln -s /lib/live/mount/persistence/sdb2/docker /var/lib