Dimensione: 7008
Commento:
|
Dimensione: 6600
Commento: continuo dopo...
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 5: | Linea 5: |
<<Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,518449.0.html";)>> | <<Informazioni(rilasci="11.10";forum="http://forum.ubuntu-it.org/index.php/topic,518449.0.html";)>> |
Linea 7: | Linea 7: |
{{{#!wiki comment Su quale versione è stata provata? }}} |
|
Linea 13: | Linea 10: |
Questa guida spiega come impostare '''Ubuntu''' in modalità di sola lettura. | Questa guida spiega come impostare '''Ubuntu''' in modalità di sola lettura affinché venga avviato dalla ram anziché dal disco fisso. |
Linea 15: | Linea 12: |
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. {{{#!wiki comment Toglierei il punto due. Non è un vantaggio direttamente collegato a questa procedura. }}} |
Ciò può risultare utile per coloro che necessitano di rendere disponibile '''Ubuntu''' in contesti pubblici come, per esempio, gli internet cafè di modo che, disponendo di postazioni multi-utente o ad accesso libero, le applicazioni e le configurazioni non vengano modificate dall'utente. |
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Questa guida spiega come impostare Ubuntu in modalità di sola lettura affinché venga avviato dalla ram anziché dal disco fisso.
Ciò può risultare utile per coloro che necessitano di rendere disponibile Ubuntu in contesti pubblici come, per esempio, gli internet cafè di modo che, disponendo di postazioni multi-utente o ad accesso libero, le applicazioni e le configurazioni non vengano modificate dall'utente.
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.d_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
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.