¡Hecho! :-)

¡Hecho! :-)

Estaba intentando instalar Ubuntu en vivo en una unidad USB con cambios persistentes. Sin embargo, quería escribir los cambios en HDD en lugar de USB por varias razones (rendimiento, espacio).

Descubrí que los cambios se manejan dentro de un archivo con un sistema de archivos ext3 que monta el sistema (casper-rw). Pero parece que se detecta automáticamente en la unidad flash al iniciar.

¿Cómo puedo crear un nuevo archivo casper-rw en el disco duro y redirigir el sistema en vivo Ubuntu en la unidad USB al disco duro?

editar 2015-07-14:

Gracias por las respuestas hasta ahora. Son muy interesantes y ayudan mucho a comprender mejor la mecánica de la "función de guardado persistente del sistema en vivo" y muestran buenos enfoques para resolver el problema. Desafortunadamente, estaba tratando de superar algunas limitaciones que tenía en mente al hacer la pregunta sobre el acceso al sistema host y/o el acceso al nuevo hardware que no mencioné claramente (lo siento).

Si dividir es una opción, creo que la respuesta indicadaaquíes muy bueno, ya que solo requiere que crees una nueva partición, la etiquetes casper-rw y listo (funciona genial, lo probé).

Si comprar hardware nuevo es una opción, le vienen a la mente unidades flash USB 3.0 (MLC o SLC), discos duros portátiles, eSATA y otras opciones que tienen un rendimiento mucho mejor que una unidad flash USB 2.0 promedio.

Entonces me preguntaba si hay una manera de simplemente crear un archivo casper-rw en lugar de una partición en un disco con acceso limitado (o copiar/vincular el que está en la unidad flash).

De esta manera, sería fácil copiar el archivo casper-rw nuevamente a la unidad flash y usarlo desde allí nuevamente o moverlo a otra computadora, lo que otorga una gran flexibilidad, cambios mínimos en el disco duro y una fácil eliminación de los cambios realizados en el sistema.

Respuesta1

Eso es extremadamente fácil si utiliza la siguiente configuración:

  1. Instalar Ubuntu en unMemoria USB SLC(Se prefiere USB 3.0 si su hardware lo admite) sin nada de casper (solo una instalación normal, tratando la memoria USB como una SSD).

    ¿Por qué?Los SLC son dos veces más caros que losMLC¡Pero son 4 veces más rápidos y duran 8* más! ¡Así que realmente son pequeños SSD en un dispositivo!

  2. Optimice el sistema y trate la memoria USB como una pequeña SSD, por lo tanto:

    En tu /etc/sysctl.confanuncio:

    # Fabby: change the "swappiness" to 10 to prevent swapping as much as possible
    # to not wear out the USB stick as the Ubuntu default is optimized for a server.
    # 10 to balance with vfs_cache_pressure
    vm.swappiness = 10
    
    # Fabby: Lower vfs_cache_pressure to 75% 
    # (once cached, probably not immediately needed any more)
    #
    # This percentage value controls the tendency of the kernel to reclaim
    # the memory which is used for caching of directory and inode objects.
    #
    # At the default value of vfs_cache_pressure=100 the kernel will attempt to
    # reclaim dentries and inodes at a "fair" rate with respect to pagecache and
    # swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
    # to retain dentry and inode caches.
    vm.vfs_cache_pressure = 75
    
    # Fabby: Good to improve sequential reads (stop stuttering in movie play)
    # Can also be implemented per disk using udev rules
    vm.max-readahead=2048
    vm.min-readahead=1024
    

    En tu /etc/fstabagregar elparámetros en negritaa su línea USB de arranque. (Probablemente será sdco sdd. El siguiente es un ejemplo, use UID si es posible)

    /dev/sdc / ext4 defaults,noatime,discard,errors=remount-ro 0 1

  3. cree 2 usuarios: un usuario administrador que tiene su directorio de inicio en la memoria USB pero tiene muy pocos archivos y un usuario normal quetendrásu directorio de inicio en el HDD.

  4. Solo ahorainserte el HDD y agregue la información necesaria del HDD para fstabmontar automáticamente el HDD y agregue los siguientes parámetros:

    nobootwait,nofail

    para permitir el arranque incluso cuando el disco duro no está presente (si ese es el caso, solo el usuario administrador tendrá acceso, no el usuario normal)

  5. Ahora inicie sesión como usuario administrador y mueva el directorio de inicio del usuario normal desde la memoria USB al HDD:

cp --preserve=all /home/NormalUser/* /media/ExternalHDD/NormalUser

Si todo está bien:

rm --recursive --force /home/NormalUser/*
cd /home
ln --symbolic /media/ExternalHDD/NormalUser

¡Hecho! :-)

Para que conste: tengo una memoria USB 2.0 MLC de 16 GB como esta (más que suficiente para mi caso de uso y no demasiado cara, ¡tiene aproximadamente 5 años y sigue funcionando!)

Respuesta2

Puede colocar fácilmente el sistema de archivos grabable (en el archivo casper-rw) para un medio en vivo en un disco duro. La limitación es que el archivo casper-rw debe ir en una partición FAT. Todas las máquinas más nuevas (UEFI) tienen una partición FAT EFI, pero normalmente es demasiado pequeña para contener un archivo casper-rw de 1G-4G. En otra partición FAT lo suficientemente grande, puede crear directorios, cada uno con un archivo casper-rw para posiblemente diferentes medios en vivo. Supongamos que sda11 es 10G y tiene un sistema de archivos FAT 10G, montado en /mnt/sda11, en el que hay directorios /A, /B, /C, /D y /E. Supongamos que usaremos /A para nuestros medios persistentes, colocando un casper-rw allí.

cd /mnt/sda11/A
dd if=/dev/zero of=casper-rw bs=1M  count=4096
mkfs.ext4 -F -O^has_journal -L casper-rw casper-rw

Tome sus medios en vivo creados con persistencia y edite el archivo /boot/grub/grub.cfg y el archivo /syslinux/txt.cfg, agregando después de la palabra "persistente"

"persistent-path=/A"

/boot/grub/grub.cfg ...

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux   /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- cdrom-detect/try-usb=true noprompt persistent persistent-path=/A
    initrd  /casper/initrd.lz
}

/syslinux/txt.cfg

default live
label live
menu label ^Try Ubuntu without installing
kernel /casper/vmlinuz.efi
append noprompt cdrom-detect/try-usb=true persistent persistent-path=/A file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
label live-install
...

Eso es todo. Ni siquiera necesita cambiar el nombre/eliminar el archivo casper-rw en el medio USB.


Si hay espacio en el medio USB, puedes incluso copiar el casper-rw del disco duro nuevamente al USB y llevarte los cambios contigo.


La ruta persistente no permite ninguna referencia explícita al disco, por lo que debe ser única en todas las particiones FAT. Probado con 1 o 2 particiones FAT (una de las cuales es la partición EFI). No funcionará en un sistema de archivos ext2 o ntfs en lugar de FAT. Si también agrega la palabra "toram" en la misma línea que "persistente", su sistema de archivos comprimido en el USB lento se copiará en la RAM y brindará un rendimiento mucho mejor; sin embargo, parece haber un problema de apagado con la partición FAT. no estar limpiamente desmontado (lo que no parece causar ningún problema pero...)

información relacionada