Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmministrazioneSistema/UbuntuSolaLettura"
Differenze tra le versioni 2 e 6 (in 4 versioni)
Versione 2 del 19/04/2012 15.54.10
Dimensione: 4269
Commento:
Versione 6 del 21/04/2012 15.32.57
Dimensione: 7006
Commento: modificata inserendo mie note per future modifiche.
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
##
Linea 5: Linea 4:
<<Indice>> <<Indice(depth=2)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,518449.0.html";)>>

{{{#!wiki comment
Su quale versione è stata provata?
}}}
Linea 9: Linea 13:
Ubuntu in Read Only è lo strumento perfetto per gli Internet cafè e affini. Si hanno tutti i vantaggi di un Ubuntu classica ma il sistema operativo viene caricato dal disco fisso alla Ram. Alcuni sostanziali vantaggi avendo Ubuntu in Read Only: Questa guida spiega come impostare '''Ubuntu''' in modalità di sola lettura.
Linea 11: Linea 15:
 * Avento postazioni multi utente il rischio che il software installato venga modificato è praticamente nullo
 * Se la corrente viene a mancare il disco non subirà danni
 * Si può installare Ubuntu su Compact Flash che hanno un ciclo di letture e scrittura molto più basso dei classici HD favorendo sistemi embedded
Tale procedura prevede che '''Ubuntu''' venga caricato dalla ram anziché dal disco fisso. Ciò può risultare utile per coloro che necessitano di rendere disponibile '''Ubuntu''' in contesti pubblici, per esempio gli internet cafè, affinché:
 * disponendo di postazioni multi-utente o ad accesso libero, le applicazioni e le configurazioni non vengano modificate dall'utente;
 * sia possibile installare Ubuntu su Compact Flash che hanno un ciclo di letture e scrittura molto più basso dei classici HD favorendo sistemi embedded;
 * il disco non subisca danni se la corrente viene a mancare.
Linea 15: Linea 20:
== Prerequisiti ==
Occorre solamente un prerequisito pre questa installazione:

 1. Un installazione Ubuntu e tutto il software di cui si necessita

'''Attenzione!! Installare e configurare il sistema secondo le proprie esigenze prima di procedere con il resto della guida!!''' Sarà comunque possibile rimettere il sistema in Read Write ma è molto meglio avere un sistema finito prima di procedere

== Prima di procedere ==
Ubuntu non è nato per il Read Only prima di procedere si deve porre rimedi a qualche piccolo bug che si andrà a creare.

Prima di tutto inserire in sysctl.conf questa stringa:{{{
kernel.yama.protected_nonaccess_hardlinks = 0
{{{#!wiki comment
Toglierei il punto due. Non è un vantaggio direttamente collegato a questa procedura.
Linea 29: Linea 24:
In questo modo l'audio funzionerà correttamente e il gnome-settings-daemon non utilizzerà il 100% della CPU. Al termine della seguente procedura, il sistema sarà costituito dalla directory `root` (`/`) montata su `tmpfs`.
Linea 31: Linea 26:
La secondo modifica comporta il disabilitare il servizio apparmor al boot:{{{
update-rc.d apparmor disable
Saranno inoltre create in fase di avvio due cartelle:
 * la cartella `/ro` dove verrà montata la nostra partizione `root` in sola lettura;
 * la cartella `/rw` dove verranno scritti i file modificati durante l'attività della macchina.

{{{#!wiki comment
Le cartelle `/ro` e `/rw` vengono create dentro `tmpfs` se ho capito bene.
Linea 35: Linea 34:
per ulteriore sicurezza spostare gli script in /etc/apparmor.d in una cartella di backup in modo da disabilitarli ma averli disponibili all'occorrenza:{{{
mkdir /etc/apparmor_disable
mv /etc/apparmor.d* /etc/apparmor_disable
= Prerequisiti =

Un installazione '''Ubuntu''' funzionante e tutto il software che si ritiene necessario fornire all'utente finale.

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">E' consigliabile personalizzare il proprio sistema prima di procedere con il resto della seguente guida. Benché sia possibile riportare il sistema in condizioni di lettura e scrittura, risulta più comodo preparare prima il sistema finito. ||

= Prima di procedere =

Prima di procedere è necessario risolvere una serie di bug che si andrebbero a creare in modalità sola lettura.

{{{#!wiki comment
Quali bug più prcisamente?
Linea 40: Linea 48:
Questa modifica è necessaria in quanto il dhclient non configurava la rete correttamente  * Con un editor di testo e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione ]] aggiungere la seguente riga al file `/etc/sysctl.conf`: {{{
kernel.yama.protected_nonaccess_hardlinks = 0
}}} al fine di consentire un corretto funzionamento dell'audio e per evitare che ''gnome-settings-daemon'' utili il 100% della CPU.
Linea 42: Linea 52:
== Read Only ==
Per creare l'ambiente in RO occorre creare 2 script nelle seguenti cartelle:

 * /etc/initramfs-tools/hooks
 * /etc/initramfs-tools/scripts/init-bottom

Entrare nella prima cartella e con i permessi di root creare il file ro_root:{{{
cd /etc/initramfs-tools/hooks
vi ro_root
 * Con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione ]], disabilitare all'avvio il servizio ''apparmor'': {{{
sudo update-rc.d apparmor disable
Linea 53: Linea 56:
All'interno inserire:{{{  * Per ulteriore sicurezza spostare gli script posti nella cartella `/etc/apparmor.d` in una cartella di backup in modo da disabilitarli ma averli disponibili all'occorrenza: {{{
sudo mv /etc/apparmor.d /etc/apparmor_disable
}}} Questa modifica è necessaria in quanto, viceversa, il dhclient non configurava la rete correttamente.

{{{#!wiki comment
Migliorare ulteriormente.
}}}

= Configurazione =
== Creazione script ==

 * Con un editor di testo e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione ]] creare il all'interno della cartella `/etc/initramfs-tools/hooks` il file `ro_root`: {{{
sudo nano /etc/initramfs-tools/hooks/ro_root
}}}
 * Inserire al suo interno il seguente script: {{{
Linea 74: Linea 91:

Salvare
e rendere eseguibile il file: {{{
chmod +x ro_root
 * Rendere il file eseguibile: {{{
sudo chmod +x /etc/initramfs-tools/hooks/ro_root
Linea 78: Linea 94:

Stessa procedura per il secondo file, al suo interno inserire::{{{
 * Inoltre, all'interno della cartella `/etc/initramfs-tools/scripts/init-bottom` creare il file `ro_root` {{{
sudo nano /etc/initramfs-tools/scripts/init-bottom/ro_root
}}} inserendo il seguente contenuto: {{{
Linea 128: Linea 145:

rendere eseguibile il file.

Per sicurezza prima di procedere creiamo una copia di backup del file initrd in modo da avere un modo più veloce di ripristinare il sistema in caso si avesse bisogno di un sistema RW:{{{
cd /boot
cp initrd-$VERSIONE initrd-$VERSIONE.rw
 * Rendere il file eseguibile: {{{
sudo chmod +x /etc/initramfs-tools/scripts/init-bottom/ro_root
Linea 136: Linea 149:
Ora creare un nuovo initrd per il sistema in RO:{{{ == Configurazione initrd ==

 * Per sicurezza prima di procedere creare una copia di backup del file initrd in modo da avere un modo più veloce di ripristinare il sistema in caso si avesse bisogno di un sistema RW: {{{
cd /boot
sudo cp initrd-$VERSIONE initrd-$VERSIONE.rw
}}}

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Sostituire `$VERSIONE` con il numero di versione del kernel in uso.'' ||

 * Ora creare un nuovo initrd per il sistema in RO: {{{
Linea 141: Linea 163:

= Montare il filesystem in Read Write =

Per montare il filesystem in rw da terminale digitare: {{{
sudo mount -o remount,rw /ro
}}} in questo modo la cartella ro sarà scrivibile.

Copiare i files modificati nel loro relativo percorso sotto la cartella `/ro` e rimettere i filesystem in RO: {{{
sudo mount -o remount,ro /ro
}}}

È possibile inoltre installare nuovi pacchetti anche se il sistema è in sola lettura. Seguire il passo appena citato per rendere la directory `/ro` scrivibile e mentre il sistema è in RW tramite il comando ''chroot'' entriamo nella cartella `/ro`: {{{
chroot /ro
}}} a questo punto installare i pacchetti come di consueto.

Appena finito digitare {{{
exit}}} per uscire dal ''chroot'' e rimettere il sistema in RO.

{{{#!wiki comment
Renderlo più accessibile all'utenza meno tecnica.
}}}

= Ulteriori risorse =

{{{#!wiki comment
Esiste una fonte o documento originale?
}}}


----
CategoryNuoviDocumenti


Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa guida spiega come impostare Ubuntu in modalità di sola lettura.

Tale procedura prevede che Ubuntu venga caricato dalla ram anziché dal disco fisso. Ciò può risultare utile per coloro che necessitano di rendere disponibile Ubuntu in contesti pubblici, per esempio gli internet cafè, affinché:

  • disponendo di postazioni multi-utente o ad accesso libero, le applicazioni e le configurazioni non vengano modificate dall'utente;
  • sia possibile installare Ubuntu su Compact Flash che hanno un ciclo di letture e scrittura molto più basso dei classici HD favorendo sistemi embedded;
  • il disco non subisca danni se la corrente viene a mancare.

Al termine della seguente procedura, il sistema sarà costituito dalla directory root (/) montata su tmpfs.

Saranno inoltre create in fase di avvio due cartelle:

  • la cartella /ro dove verrà montata la nostra partizione root in sola lettura;

  • la cartella /rw dove verranno scritti i file modificati durante l'attività della macchina.

Prerequisiti

Un installazione Ubuntu funzionante e tutto il software che si ritiene necessario fornire all'utente finale.

E' consigliabile personalizzare il proprio sistema prima di procedere con il resto della seguente guida. Benché sia possibile riportare il sistema in condizioni di lettura e scrittura, risulta più comodo preparare prima il sistema finito.

Prima di procedere

Prima di procedere è necessario risolvere una serie di bug che si andrebbero a creare in modalità sola lettura.

  • Con un editor di testo e con i privilegi di amministrazione aggiungere la seguente riga al file /etc/sysctl.conf:

    kernel.yama.protected_nonaccess_hardlinks = 0

    al fine di consentire un corretto funzionamento dell'audio e per evitare che gnome-settings-daemon utili il 100% della CPU.

  • Con i privilegi di amministrazione, disabilitare all'avvio il servizio apparmor:

    sudo update-rc.d apparmor disable
  • Per ulteriore sicurezza spostare gli script posti nella cartella /etc/apparmor.d in una cartella di backup in modo da disabilitarli ma averli disponibili all'occorrenza:

    sudo mv /etc/apparmor.d /etc/apparmor_disable
    Questa modifica è necessaria in quanto, viceversa, il dhclient non configurava la rete correttamente.

Configurazione

Creazione script

  • Con un editor di testo e con i privilegi di amministrazione creare il all'interno della cartella /etc/initramfs-tools/hooks il file ro_root:

    sudo nano /etc/initramfs-tools/hooks/ro_root
  • Inserire al suo interno il seguente script:

    PREREQ=''
    
    prereqs() {
      echo "$PREREQ" 
    }
    
    case $1 in
    prereqs)
      prereqs
      exit 0
      ;;
    esac
    
    . /usr/share/initramfs-tools/hook-functions
    manual_add_modules aufs
    manual_add_modules tmpfs
    copy_exec /bin/chmod /bin
  • Rendere il file eseguibile:

    sudo chmod +x /etc/initramfs-tools/hooks/ro_root
  • Inoltre, all'interno della cartella /etc/initramfs-tools/scripts/init-bottom creare il file ro_root

    sudo nano /etc/initramfs-tools/scripts/init-bottom/ro_root

    inserendo il seguente contenuto:

    PREREQ=''
    
    prereqs() {
      echo "$PREREQ" 
    }
    
    case $1 in
    prereqs)
      prereqs
      exit 0
      ;;
    esac
    
    # Boot normally when the user selects single user mode.
    if grep single /proc/cmdline >/dev/null; then
      exit 0
    fi
    
    ro_mount_point="${rootmnt%/}.ro" 
    rw_mount_point="${rootmnt%/}.rw" 
    
    # Create mount points for the read-only and read/write layers:
    mkdir "${ro_mount_point}" "${rw_mount_point}" 
    
    # Move the already-mounted root filesystem to the ro mount point:
    mount --move "${rootmnt}" "${ro_mount_point}" 
    
    # Mount the read/write filesystem:
    mount -t tmpfs root.rw "${rw_mount_point}" 
    
    # Mount the union:
    mount -t aufs -o "dirs=${rw_mount_point}=rw:${ro_mount_point}=ro" root.union "${rootmnt}" 
    
    # Correct the permissions of /:
    chmod 755 "${rootmnt}" 
    
    # Make sure the individual ro and rw mounts are accessible from within the root
    # once the union is assumed as /.  This makes it possible to access the
    # component filesystems individually.
    mkdir "${rootmnt}/ro" "${rootmnt}/rw" 
    mount --move "${ro_mount_point}" "${rootmnt}/ro" 
    mount --move "${rw_mount_point}" "${rootmnt}/rw" 
    
    # Make sure checkroot.sh doesn't run.  It might fail or erroneously remount /.
    rm -f "${rootmnt}/etc/rcS.d"/S[0-9][0-9]checkroot.sh
  • Rendere il file eseguibile:

    sudo chmod +x /etc/initramfs-tools/scripts/init-bottom/ro_root

Configurazione initrd

  • Per sicurezza prima di procedere creare una copia di backup del file initrd in modo da avere un modo più veloce di ripristinare il sistema in caso si avesse bisogno di un sistema RW:

    cd /boot
    sudo cp initrd-$VERSIONE initrd-$VERSIONE.rw

Sostituire $VERSIONE con il numero di versione del kernel in uso.

  • Ora creare un nuovo initrd per il sistema in RO:

    update-initramfs -u

Il sistema è ora in Read Only.

Montare il filesystem in Read Write

Per montare il filesystem in rw da terminale digitare:

sudo mount -o remount,rw /ro

in questo modo la cartella ro sarà scrivibile.

Copiare i files modificati nel loro relativo percorso sotto la cartella /ro e rimettere i filesystem in RO:

sudo mount -o remount,ro /ro

È possibile inoltre installare nuovi pacchetti anche se il sistema è in sola lettura. Seguire il passo appena citato per rendere la directory /ro scrivibile e mentre il sistema è in RW tramite il comando chroot entriamo nella cartella /ro:

chroot /ro

a questo punto installare i pacchetti come di consueto.

Appena finito digitare

exit

per uscire dal chroot e rimettere il sistema in RO.

Ulteriori risorse


CategoryNuoviDocumenti