Esiste un'applicazione simile a Deep Freeze per Ubuntu?


10

Mi piacerebbe sapere se esiste qualche alternativa a Deep Freeze per Linux ancora in fase di sviluppo, perché ho letto alcune cose su Internet e sembra che la stessa società che ha sviluppato Deep Freeze ne avesse una versione Linux, ma il il progetto è stato sospeso.


Perché lo vorresti? Basta non consentire agli utenti non root di modificare i file di sistema.
David Foerster,

@DavidFoerster Ho appena modificato la domanda per rispondere al tuo commento.
Zignd,

Ciao, puoi provare questa alternativa sourceforge.net/projects/dafturnofris-id

2
Gli utenti "guest" normali (pronti all'uso) in (recente?) Ubuntu vengono creati al volo, hanno la loro casa /tmpe vengono ripuliti dopo il logout ... non è sufficiente?
Rmano,

Risposte:


8

OFRIS è un'applicazione open source che può congelare il tuo Linux, è come Deep Freeze nel sistema operativo Microsoft Windows.

Per le versioni di Ubuntu 9.10, 10.04 e 10.10. Per installare OFRIS, basta premere Ctrl+ Alt+ Tsulla tastiera per aprire Terminale. Quando si apre, esegui i seguenti comandi:

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

Per le versioni Ubuntu 11.04, 11.10, 12.04 e 13.04. Per installare OFRIS, basta premere Ctrl+ Alt+ Tsulla tastiera per aprire Terminale. Quando si apre, esegui i seguenti comandi:

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

L'immagine sotto mostra OFRIS in esecuzione il 13.04

inserisci qui la descrizione dell'immagine

Fonte: XGeek


L'ho installato nel 15.10 quindi ho applicato Freeze premendo 3 mi ha confermato che il sistema è in modalità congelata. Quindi ho riavviato, ho creato un file / var / tmp / myname con valore, quindi di nuovo ho riavviato ma il file è ancora lì. Come sta congelando?

Cosa intendi esattamente? Inoltre devo controllare per vedere se funziona il 15.10. Il blocco del sistema sta ripristinando tutto come prima che fosse congelato. Per favore mi faccia sapere.
Mitch

3

Avvertenza: ho implementato questa soluzione e funziona, ma i tempi di unione per tornare all'istantanea possono far sì che il processo di avvio impieghi molto tempo se sono state apportate grandi modifiche al sistema durante l'ultimo avvio. Durante questo periodo di attesa, potrebbe sembrare agli utenti che il sistema sia sospeso!

Attenzione, inoltre, che chiunque disponga di conoscenze sufficienti per montare l'istantanea, potrebbe apportare modifiche allo stato "bloccato". Ho approfittato di questa possibilità per aggiornare i sistemi "congelati", ma anche questo può aumentare il tempo necessario per unire (ripristinare) l'istantanea!


Istantanee LVM + cron + script = stato "congelato"

Di recente ho iniziato a scavare in LVM e mi è venuto in mente che si poteva creare in modo fattibile uno stato "congelato" su una macchina usando LVM e le sue capacità di istantanea. Naturalmente, questo metodo richiede un sistema configurato utilizzando LVM (o almeno LVM sulle partizioni da congelare).

Sommario:

  • Installa il sistema su partizioni LVM riservando spazio sufficiente su un PV per un'istantanea
  • Ottieni il sistema configurato nel modo desiderato.
  • Creare un processo cron che viene eseguito come root all'avvio per unire l'istantanea e creare una nuova istantanea per sostituire quella unita
  • Tutti i riavvii successivi tornano all'istantanea. Tutte le istantanee create vengono acquisite dal sistema nello stato in cui è stato creato.
  • Come bonus aggiuntivo, l'istantanea può essere montata e modificata (a condizione che tu abbia i privilegi di root) e lo stato "congelato" può essere aggiornato, se necessario.

Prova del concetto: blocca tutto tranne una partizione da un'installazione pulita

L'installazione:

  • Avvia da un disco / USB di Ubuntu live e scegli l'opzione "Prova Ubuntu senza installare". Questo è importante per la configurazione manuale delle partizioni con LVM
  • Quando Ubuntu carica la partizione del disco usando lo strumento di tua scelta in modo che abbia una partizione che occupa l'intero spazio del disco. Ecco con cosa sto lavorando:
    • /dev/sda (taglia 1T)
      • /dev/sda1 (taglia 1T)
  • Successivamente in un terminale impostare LVM su /dev/sda1. Metterò la maggior parte del sistema su una singola partizione, ma non dovresti.
    • 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
  • Ora, se dovessi essere eseguito sudo vgsseguito da sudo lvs, dovresti essere in grado di vedere che la quantità di spazio libero rimasto nel gruppo di volumi "ubuntu-vg" (VFree nell'output vgs) è uguale alla quantità di spazio occupato dal volume logico "root "(LSize sotto lvs output). Nel mio caso, ho 506.44 g gratuiti in ubuntu-vg e la mia partizione di root è grande 506,44 g. Se lo spazio libero rimasto nel gruppo di volumi è uguale alla dimensione della partizione che voglio congelare, dovrei essere in grado di cancellare l'intera partizione ed essere ancora in grado di ripristinare con un riavvio. Lascia il resto dello spazio libero in ubuntu-vg per ora inutilizzato. Lo useremo più tardi.
  • Ora installa Ubuntu usando il partizionamento manuale image.png
  • Al termine dell'installazione, andare avanti e riavviare nel sistema appena installato.
  • Una volta avviato nel tuo nuovo sistema, configuralo in modo che sia esattamente come desideri che si avvii ogni volta che il computer si avvia.
    • Se non si verificano modifiche accidentali all'istantanea e non si desidera visualizzare la partizione dell'istantanea nella barra dei menu ...
      • mkdir /steady
      • Modifica /etc/fstabaggiungendo (questa è tutta una riga) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1come ultima riga del file
    • Poiché cose come gli aggiornamenti verranno spazzate via ad ogni riavvio, potresti volerle disattivare.
    • Se hai una partizione non bloccata come la mia in / unfrozen, non dimenticare di renderla accessibile agli utenti che hanno bisogno di accedervi
  • Una volta configurato il sistema esattamente come lo desideri, crea il seguente script (avrai bisogno dei privilegi di root) e salva come /root/steadystate.shcon il tuo editor preferito. Si noti che se si modifica il nome del gruppo di volumi durante l'impostazione di LVM, è necessario aggiornarlo anche nello script seguente.
    #!/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
  • Infine esegui sudo crontab -e, seleziona un editor e inserisci @reboot /bin/bash /root/steadystate.shalla fine del file. Salva e chiudi ( Ctrl+ X; risposta Yper salvare)
  • Riavvia e dovresti avere un sistema congelato ad eccezione della partizione montata su / unfrozen

Questo funziona perché l'istantanea viene creata all'avvio e anche se passiamo il comando per unire l'istantanea subito dopo, l'istantanea non può essere unita mentre il volume logico per root è attivo. Quindi rimanda l'azione di unione fino alla successiva attivazione / dev / ubuntu-vg / root che è al successivo riavvio. Questa azione verrebbe inoltre attivata se il sistema fosse avviato da una USB live.

Solo per i calci, sono entrato dopo un riavvio ed sudo apt remove --purge firefox* libreoffice-* unity*ho corso che normalmente non consiglierei di fare perché rimuove alcuni programmi utili e mette il sistema in uno stato che potrebbe non essere desiderabile! broken.png Il sistema non si spegnerebbe nemmeno correttamente dalla GUI. Quindi, come si può risolvere questo problema? Reboot! rebooted.png Al riavvio, tutto era tornato in ordine. Firefox, LibreOffice e Unity erano tutti al loro posto.

Ho anche provato a rimuovere Linux *. Ciò non gli consentì di avviare la macchina, tuttavia, il semplice avvio da un disco Ubuntu live sembrava aver avuto luogo l'unione. Il riavvio di nuovo ha lasciato il sistema nel suo stato "congelato"

Se si desidera essere in grado di apportare modifiche, è possibile (ri) montare l'istantanea con privilegi rw e quindi eseguire il chroot su di essa e apportare le modifiche che si desidera rimanere permanenti. Questo non è perfetto, ma è una prova del concetto.


1

Di default Ubuntu e la maggior parte degli altri Unices negano agli utenti regolari (studenti, ospiti) l'accesso in scrittura ai file di sistema. Solo un amministratore con l'autorizzazione appropriata (nome utente e chiave) può installare software, modificare le impostazioni di sistema o eliminare partizioni.

Gli utenti normali possono, per impostazione predefinita, scrivere solo nella propria directory home e nella directory temporanea del sistema. Un modo comune per gestire le sessioni guest una tantum è quello di mettere la loro directory home all'interno della directory temporanea e la directory temporanea nella memoria principale.

Se vuoi essere ancora più sicuro, monta la partizione di sistema in sola lettura e appoggia su di essa una partizione aufs che memorizzi le modifiche nella memoria principale.


1

fsprotect è un insieme di script che proteggono i filesystem esistenti. fsprotect è eccellente per computer pubblici come quelli di biblioteche, internet café, ecc.

Usando aufs impacchettano un filesystem tmpfs forzando la scrittura delle modifiche nel filesystem tmpfs.

Il filesystem di root è protetto da uno script initramfs. Altri filesystem sono protetti da uno script init. Tutti i filesystem protetti diventano di sola lettura garantendo la loro immutabilità anche in caso di spegnimento.

Per installare fsprotect in tutte le versioni attualmente supportate di Ubuntu aprire il terminale e digitare:

sudo apt-get install fsprotect

I vantaggi dell'utilizzo di fsprotect sono:

  • I filesystem sono protetti e nessuna modifica viene mai scritta sul disco.
  • I filesystem protetti sono montati in sola lettura. Ciò significa che non vengono danneggiati quando il computer viene spento in modo errato.
  • È molto facile da usare
  • In alcuni casi rende più veloce l'accesso al filesystem.

Gli svantaggi dell'utilizzo di fsprotect sono:

  • Le modifiche al filesystem non possono essere superiori a un limite predefinito in byte (impostato dall'utente).
  • Poiché tmpfs è molto utilizzato, è necessario disporre di spazio di scambio adeguato.

L'installazione non riesce su Ubuntu 16.04.2. Il problema è un cattivo riferimento a touchin uno script initram. Indica /usr/bin/touchpiuttosto che /bin/touch. Questo può essere forzato a funzionare, ma anche se installato, la rete smette di funzionare.
b_laoshi,

La rete smette di funzionare potrebbe essere perché stai usando un kernel cattivo o un kernel senza file di intestazione. Quando il computer si riavvia, attendere fino alla scomparsa della schermata iniziale del produttore, quindi premere il tasto Maiusc per mostrare le opzioni di avvio di GRUB. Dalla schermata viola di GRUB seleziona Opzioni avanzate per Ubuntu e premi Invio. Apparirà una nuova schermata viola che mostra un elenco di kernel. Seleziona un kernel diverso e premi Invio.
karel,

È praticamente una nuova installazione con tutti gli aggiornamenti. Ho provato il vecchio kernel e all'inizio si è avviato con la rete, ma poi ho capito che fsprotect non era raggruppato nel vecchio kernel. Ho aggiornato tutti i kernel e ora non ho reti quando avvio da uno dei kernel.
b_laoshi,

1
La rimozione dell'opzione fsprotect da grub e l'aggiornamento di initramfs hanno ovviamente disabilitato fsprotect e la rete funziona di nuovo. Chiaramente è qualcosa in fsprotect che sta rompendo il networking.
b_laoshi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.