¿Hay alguna aplicación similar a Deep Freeze para Ubuntu?

10

Me gustaría saber si hay alguna alternativa a Deep Freeze para Linux que todavía está en desarrollo, porque he leído algunas cosas en Internet y parece que la misma compañía que desarrolló Deep Freeze tenía una versión de Linux, pero El proyecto fue descontinuado.

Zignd
fuente
¿Porqué querrías eso? Simplemente no permita que usuarios no root cambien los archivos del sistema.
David Foerster
@DavidFoerster Acabo de editar la pregunta para responder a tu comentario.
Zignd
Hola, puedes probar esta alternativa sourceforge.net/projects/dafturnofris-id
2
Los usuarios "invitados" normales ( /tmplistos para usar) en Ubuntu (¿reciente?) Se crean sobre la marcha, tienen su hogar y se limpian después de cerrar sesión ... ¿no es esto suficiente?
Rmano

Respuestas:

8

OFRIS es una aplicación de código abierto que puede congelar su Linux, es como Deep Freeze en el sistema operativo Microsoft Windows.

Para las versiones de Ubuntu 9.10, 10.04 y 10.10. Para instalar OFRIS, simplemente presione Ctrl+ Alt+ Ten su teclado para abrir Terminal. Cuando se abra, ejecute los siguientes comandos:

sudo add-apt-repository ppa:tldm217/tahutek.net -y
sudo apt-get update && sudo apt-get install ofris-en -y

Para las versiones de Ubuntu 11.04, 11.10, 12.04 y 13.04. Para instalar OFRIS, simplemente presione Ctrl+ Alt+ Ten su teclado para abrir Terminal. Cuando se abra, ejecute los siguientes comandos:

[COPY-fileformat]

if [ $(uname -m) == "x86_64" ]; then deb="http://goo.gl/DleLl"; else deb="http://goo.gl/V94Qs"; fi && wget -q $deb -O ofris.deb && sudo dpkg -i ofris.deb && rm ofris.deb

La imagen a continuación muestra OFRIS ejecutándose el 13.04

ingrese la descripción de la imagen aquí

Fuente: XGeek

Mitch
fuente
Instalé esto en 15.10 y luego apliqué Freeze presionando 3, confirmó que el sistema está en modo congelado. Luego reinicié, hice un archivo / var / tmp / myname con valor, luego volví a reiniciar pero el archivo aún está allí. ¿Cómo es esta congelación?
¿Qué quieres decir exactamente? También necesito verificar si esto funciona en 15.10. La congelación del sistema está restableciendo todo a la forma en que estaba antes de que se congelara. Por favor hagamelo saber.
Mitch
2

Advertencia: he implementado esta solución y funciona, pero los tiempos de fusión para volver a la instantánea pueden hacer que el proceso de arranque tarde mucho tiempo si se realizaron grandes cambios en el sistema durante su último arranque. ¡Durante este período de espera, puede parecer a los usuarios que el sistema se está bloqueando!

También tenga en cuenta que cualquiera que tenga el conocimiento suficiente para montar la instantánea, podría hacer cambios al estado "congelado". He aprovechado esta posibilidad para actualizar los sistemas "congelados", pero de nuevo, ¡esto también puede aumentar el tiempo que lleva fusionar (volver a) la instantánea!


Instantáneas LVM + cron + script = estado "congelado"

Recientemente comencé a excavar en LVM y se me ocurrió que uno podría crear un estado "congelado" en una máquina usando LVM y sus capacidades de instantánea. Por supuesto, este método requiere un sistema que esté configurado usando LVM (o al menos LVM en las particiones a congelar).

Resumen:

  • Instale el sistema en particiones LVM reservando suficiente espacio en un PV para una instantánea
  • Configure el sistema de la manera que lo desee.
  • Cree un trabajo cron que se ejecute como raíz en el arranque para fusionar la instantánea y cree una nueva instantánea para reemplazar la fusionada
  • Todos los reinicios sucesivos vuelven a la instantánea. Todas las instantáneas creadas se toman del sistema en el estado en que lo creó.
  • Como beneficio adicional, la instantánea se puede montar y modificar (siempre que tenga privilegios de root) y el estado "congelado" se puede actualizar si es necesario.

Prueba de concepto: congele todo excepto una partición de una instalación limpia

La instalación:

  • Arranque desde un disco / USB de Ubuntu en vivo y elija la opción para "Probar Ubuntu sin instalar". Esto es importante para configurar particiones manualmente con LVM
  • Cuando Ubuntu carga la partición, su disco utiliza la herramienta que elija para que tenga una partición que ocupe todo el espacio de la unidad. Esto es con lo que estoy trabajando:
    • /dev/sda (tamaño 1T)
      • /dev/sda1 (tamaño 1T)
  • A continuación, en un terminal, configure LVM activado /dev/sda1. Voy a poner la mayor parte del sistema en una sola partición, pero no tendría que hacerlo.
    • sudo pvcreate /dev/sda1
    • sudo vgcreate ubuntu-vg /dev/sda1
    • sudo lvcreate -n swap -L 1G ubuntu-vg
    • sudo lvcreate -n unfrozen -L 10G ubuntu-vg
    • sudo lvcreate -n root -l +50%free ubuntu-vg
  • Ahora, si tuviera que ejecutar sudo vgsseguido sudo lvs, debería poder ver que la cantidad de espacio libre que queda en el grupo de volúmenes "ubuntu-vg" (VFree bajo la salida vgs) es igual a la cantidad de espacio ocupado por la raíz del volumen lógico " "(LSize bajo salida lvs). En mi caso, tengo 506.44g gratis en ubuntu-vg y mi partición raíz es 506.44g grande. Si el espacio libre que queda en el grupo de volúmenes es igual al tamaño de la partición que quiero congelar, debería poder borrar toda la partición y aún así poder recuperarme con un reinicio. Deje el resto del espacio libre en ubuntu-vg sin usar por ahora. Lo usaremos más tarde.
  • Ahora instale Ubuntu usando particionamiento manual image.png
  • Cuando finalice la instalación, continúe y reinicie en el sistema recién instalado.
  • Una vez que se inicia en su nuevo sistema, configúrelo para que sea exactamente como desea que sea cuando la computadora se inicia cada vez.
    • Si no realiza cambios accidentales en la instantánea y no desea que la partición de la instantánea se muestre en la barra de menú ...
      • mkdir /steady
      • Edite /etc/fstabagregando (esto es todo una línea) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1como la última línea del archivo
    • Dado que cosas como las actualizaciones quedarán impresionadas con cada reinicio, es posible que desee desactivarlas.
    • Si tiene una partición no congelada como la mía en / unfrozen, no olvide hacerla accesible para los usuarios que necesitan acceder a ella.
  • Una vez que haya configurado el sistema exactamente como lo desea, cree el siguiente script (necesitará privilegios de root) y guárdelo como /root/steadystate.shcon su editor favorito. Tenga en cuenta que si cambió el nombre del grupo de volúmenes al configurar LVM, también deberá actualizarlo en el script a continuación.
    #!/bin/bash
    LOG=/dev/kmsg

    # wait for merge in progress
    echo -n "Reverting to snapshot if present... " | tee -a $LOG
    merging=1
    while [ "$merging" == "1" ];
    do
        /usr/sbin/service lightdm stop #prevent the auto-login/login screen from loading
        [ "$(sudo lvs -a | grep steadystate)" == "" ] && merging=0
        sleep 1
    done

    # create snapshot
    echo -n "Creating new snapshot... " | tee -a $LOG
    /sbin/lvcreate -s -n steadystate -l +100%free /dev/ubuntu-vg/root

    # make sure root comes online before trying to merge
    while [ ! -e /dev/mapper/ubuntu--vg-root];
    do
        sleep .5;
    done
    echo -n "Scheduling reset to snapshot... " | tee -a $LOG
    /sbin/lvconvert --merge /dev/ubuntu-vg/steadystate

    echo -n "Starting lightdm... " | tee -a $LOG
    /usr/sbin/service lightdm start
  • Finalmente ejecute sudo crontab -e, seleccione un editor y colóquelo @reboot /bin/bash /root/steadystate.shal final del archivo. Guardar y cerrar ( Ctrl+ X; responder Ypara guardar)
  • Reinicie, y debería tener un sistema que esté congelado, excepto la partición montada en / sin congelar

Esto funciona porque la instantánea se crea en el momento del arranque, y aunque pasamos el comando para fusionar la instantánea inmediatamente después, la instantánea no se puede fusionar mientras el volumen lógico para root esté activo. Por lo tanto, pospone la acción de fusión hasta la próxima vez que se active / dev / ubuntu-vg / root, que es el próximo reinicio. Esta acción también se activaría si el sistema se iniciara desde un USB en vivo.

¡Solo por diversión, entré después de un reinicio y ejecuté sudo apt remove --purge firefox* libreoffice-* unity*lo que normalmente no recomendaría hacer porque elimina algunos programas útiles y pone el sistema en un estado que podría ser menos que deseable! broken.png El sistema ni siquiera se apaga correctamente desde la GUI. Entonces, ¿cómo se soluciona esto? ¡Reiniciar! rebooted.png Al reiniciar, todo volvió a estar en orden. Firefox, LibreOffice y Unity estaban de vuelta donde pertenecían.

También intenté eliminar Linux *. Esto dejó a la máquina incapaz de arrancar, sin embargo, simplemente arrancar desde un disco Ubuntu en vivo pareció hacer que la fusión tuviera lugar. Reiniciar nuevamente dejó el sistema en su estado "congelado"

Si quisiera poder hacer cambios, podría (re) montar la instantánea con privilegios rw y luego hacer un chroot y hacer los cambios que desea que permanezcan permanentes. Esto no es perfecto, pero es una prueba de concepto.

b_laoshi
fuente
1

Por defecto, Ubuntu y la mayoría de los otros Unices niegan a los usuarios regulares (estudiantes, invitados) el acceso de escritura a los archivos del sistema. Solo un administrador con la autorización adecuada (nombre de usuario y clave) puede instalar software, cambiar la configuración del sistema o eliminar particiones.

Los usuarios habituales pueden, por defecto, solo escribir en su directorio personal y en el directorio temporal del sistema. Una forma común de manejar sesiones de invitados de una sola vez es colocar su directorio de inicio dentro del directorio temporal y el directorio temporal en la memoria principal.

Si desea asegurarse más, monte la partición del sistema de solo lectura y coloque una partición aufs sobre ella que almacene los cambios en la memoria principal.

David Foerster
fuente
1

fsprotect es un conjunto de scripts que protegen los sistemas de archivos existentes. fsprotect es excelente para computadoras públicas como las de bibliotecas, cibercafés, etc.

Usando aufs, empacan un sistema de archivos tmpfs que obliga a escribir los cambios en el sistema de archivos tmpfs.

El sistema de archivos raíz está protegido por un script initramfs. Otros sistemas de archivos están protegidos por un script de inicio. Todos los sistemas de archivos protegidos pasan a ser de solo lectura, lo que garantiza su inmutabilidad incluso en los apagados.

Para instalar fsprotect en todas las versiones compatibles de Ubuntu, abra el terminal y escriba:

sudo apt-get install fsprotect

Los beneficios de usar fsprotect son:

  • Los sistemas de archivos están protegidos y nunca se escriben cambios en el disco.
  • Los sistemas de archivos protegidos se montan de solo lectura. Esto significa que no se dañan cuando la computadora se apaga incorrectamente.
  • Es muy fácil de usar.
  • En algunos casos, hace que el acceso al sistema de archivos sea más rápido.

Los inconvenientes de usar fsprotect son:

  • Los cambios en el sistema de archivos no pueden ser más que un límite predefinido en bytes (establecido por usted).
  • Como tmpfs se usa mucho, debe tener un espacio de intercambio adecuado.
karel
fuente
La instalación falla en Ubuntu 16.04.2. El problema es una mala referencia touchen un script initram. Apunta a /usr/bin/touchmás que a /bin/touch. Esto puede ser forzado a funcionar, pero incluso cuando está instalado, la red deja de funcionar.
b_laoshi
La red deja de funcionar podría deberse a que está utilizando un núcleo defectuoso o un núcleo sin archivos de encabezado. Cuando la computadora se reinicie, espere hasta que desaparezca la pantalla de inicio del fabricante, luego presione la tecla Shift para mostrar las opciones de arranque de GRUB. Desde la pantalla púrpura de GRUB, seleccione Opciones avanzadas para Ubuntu y presione Entrar. Aparecerá una nueva pantalla púrpura que muestra una lista de núcleos. Seleccione un núcleo diferente y presione Entrar.
karel
Es prácticamente una nueva instalación con todas las actualizaciones. Probé el núcleo antiguo y al principio arrancó con redes, pero luego me di cuenta de que fsprotect no estaba incluido en el núcleo antiguo. Actualicé todos los núcleos y ahora no tengo redes cuando inicio desde cualquiera de los núcleos.
b_laoshi
1
Eliminar la opción fsprotect de grub y actualizar initramfs deshabilitó fsprotect, por supuesto, y la red vuelve a funcionar. Claramente, es algo en fsprotect que está rompiendo las redes.
b_laoshi