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 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