Dimensione: 5323
Commento:
|
← Versione 15 del 03/03/2019 18.19.50 ⇥
Dimensione: 6052
Commento: nuovo stile note/avvisi/suggerimenti
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## | ## page was renamed from LorenzoGaruti/RoUbuntu |
Linea 5: | Linea 5: |
<<Indice>> | <<Indice(depth=2)>> <<Informazioni(rilasci="11.10";forum="http://forum.ubuntu-it.org/viewtopic.php?t=518449";)>> |
Linea 9: | Linea 11: |
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 avviare '''Ubuntu''' in modalità sola lettura, eseguendo il boot dalla ram anziché dal disco fisso. |
Linea 11: | Linea 13: |
* 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 |
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. |
Linea 15: | Linea 15: |
== Come funziona == Il sistema finito sarà costituito dalla root directory (/) montata in tmpfs. |
Al termine della seguente procedura, il sistema sarà composto dalla partizione '''/''' (`root`) montata su `tmpfs`. |
Linea 18: | Linea 17: |
Saranno inoltre create al boot 2 cartelle: | Saranno inoltre create in fase di avvio, all'interno di `tmpfs`, due cartelle: * in `/ro` sarà presente la partizione '''/''' (`root`) in sola lettura; * in `/rw` saranno presenti i file che saranno modificati dall'utente durante l'attività della macchina. |
Linea 20: | Linea 21: |
* /ro dove verrà montata la nostra partizione di root (sda1, hda1, ecc.) in Read Only) * /rw dove verranno scritti i files modificati durante l'uptime della macchina |
= Preparare il sistema = |
Linea 23: | Linea 23: |
== Prerequisiti == Occorre solamente un prerequisito pre questa installazione: |
Un installazione di '''Ubuntu''' funzionante e tutto il software che si ritiene necessario fornire all'utente. |
Linea 26: | Linea 25: |
1. Un installazione Ubuntu e tutto il software di cui si necessita | {{{#!wiki tip E' consigliabile personalizzare il proprio sistema __prima__ di proseguire. Benché sia possibile riportare il sistema in condizioni di lettura e scrittura, risulta più comodo preparare prima il sistema finito.}}} |
Linea 28: | Linea 28: |
'''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 | E' necessario risolvere una serie di problematiche che si andrebbero a creare in modalità sola lettura. 0. 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'' utilizzi il 100% del processore. 0. Con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione ]], disabilitare all'avvio il servizio ''apparmor'': {{{ sudo update-rc.d apparmor disable }}} 0. 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 configura la rete correttamente. |
Linea 30: | Linea 39: |
== Prima di procedere == Ubuntu non è nato per il Read Only prima di procedere si deve porre rimedio a qualche piccolo bug che si andrà a creare. |
= Configurazione = == Creazione script == |
Linea 33: | Linea 42: |
Prima di tutto inserire in sysctl.conf questa stringa:{{{ kernel.yama.protected_nonaccess_hardlinks = 0 |
0. Con un editor di testo e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione ]] creare all'interno della cartella `/etc/initramfs-tools/hooks` il file `ro_root`: {{{ sudo nano /etc/initramfs-tools/hooks/ro_root |
Linea 36: | Linea 45: |
In questo modo l'audio funzionerà correttamente e il gnome-settings-daemon non utilizzerà il 100% della CPU. La secondo modifica comporta il disabilitare il servizio apparmor al boot:{{{ update-rc.d apparmor disable }}} 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 }}} Questa modifica è necessaria in quanto il dhclient non configurava la rete correttamente == 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 }}} All'interno inserire:{{{ |
0. Inserire al suo interno il seguente script: {{{ |
Linea 82: | Linea 66: |
Salvare e rendere eseguibile il file: {{{ chmod +x ro_root |
0. Rendere il file eseguibile: {{{ sudo chmod +x /etc/initramfs-tools/hooks/ro_root |
Linea 86: | Linea 69: |
Stessa procedura per il secondo file, al suo interno inserire::{{{ |
0. All'interno della cartella `/etc/initramfs-tools/scripts/init-bottom` creare un altro file `ro_root` e inserire il seguente contenuto: {{{ |
Linea 136: | Linea 118: |
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 |
0. Rendere il file eseguibile, digitando il seguente comando: {{{ sudo chmod +x /etc/initramfs-tools/scripts/init-bottom/ro_root |
Linea 144: | Linea 122: |
Ora creare un nuovo initrd per il sistema in RO:{{{ | == Configurazione initrd == Prima di procedere è consigliato creare una copia di backup del file `initrd.img-$VERSIONE` in modo da avere un modo più veloce di ripristinare il sistema in caso si avesse bisogno di un sistema in lettura e scrittura. Per creare al copia di backup digitare il seguente comando in una finestra di terminale: {{{ cd /boot sudo cp initrd.img-$VERSIONE initrd.img-$VERSIONE.rw }}} Sostituire `$VERSIONE` con la versione del kernel in uso. Creare ora un nuovo `initrd` per il sistema in modalità sola lettura: {{{ |
Linea 148: | Linea 134: |
Il sistema è ora in Read Only. | = Montare il filesystem in lettura e scrittura = |
Linea 150: | Linea 136: |
== Montare il filesystem in Read Write == Per montare il filesystem in rw da terminale digitare:{{{ mount -o remount,rw /ro |
Per montare il filesystem in modalità lettura e scrittura digitare il seguente comando: {{{ sudo mount -o remount,rw /ro }}} In questo modo la cartella `/ro` sarà scrivibile. A questo punto, copiare i file modificati nel loro relativo percorso sotto la cartella `/ro` e rimettere i filesystem in sola lettura: {{{ sudo mount -o remount,ro /ro |
Linea 155: | Linea 145: |
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:{{{ mount -o remount,ro /ro }}} |
È possibile inoltre installare nuovi pacchetti anche se il sistema è in sola lettura. Dopo aver reso scrivibile la cartella `/ro` attraverso il comando precedente, entrare nella cartella `/ro`, tramite il comando ''chroot'': {{{ chroot /ro }}} A questo punto installare i pacchetti come di consueto. |
Linea 159: | Linea 149: |
È 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 }}} |
Per uscire dal ''chroot'' e rimettere il sistema in sola lettura digitare il seguente comando: {{{ exit }}} |
Linea 163: | Linea 153: |
a questo punto installare i pacchetti come di consueto. Appena finito digitare exit per uscire dal chroot e rimettere il sistema in RO |
---- CategoryAmministrazione CategoryDaRevisionare |
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Questa guida spiega come avviare Ubuntu in modalità sola lettura, eseguendo il boot 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à composto dalla partizione / (root) montata su tmpfs.
Saranno inoltre create in fase di avvio, all'interno di tmpfs, due cartelle:
in /ro sarà presente la partizione / (root) in sola lettura;
in /rw saranno presenti i file che saranno modificati dall'utente durante l'attività della macchina.
Preparare il sistema
Un installazione di Ubuntu funzionante e tutto il software che si ritiene necessario fornire all'utente.
E' consigliabile personalizzare il proprio sistema prima di proseguire. Benché sia possibile riportare il sistema in condizioni di lettura e scrittura, risulta più comodo preparare prima il sistema finito.
E' necessario risolvere una serie di problematiche 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 utilizzi il 100% del processore.
Con i privilegi di amministrazione, disabilitare all'avvio il servizio apparmor:
sudo update-rc.d apparmor disable
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 configura la rete correttamente.
Configurazione
Creazione script
Con un editor di testo e con i privilegi di amministrazione creare 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
All'interno della cartella /etc/initramfs-tools/scripts/init-bottom creare un altro file ro_root e inserire 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, digitando il seguente comando:
sudo chmod +x /etc/initramfs-tools/scripts/init-bottom/ro_root
Configurazione initrd
Prima di procedere è consigliato creare una copia di backup del file initrd.img-$VERSIONE in modo da avere un modo più veloce di ripristinare il sistema in caso si avesse bisogno di un sistema in lettura e scrittura. Per creare al copia di backup digitare il seguente comando in una finestra di terminale:
cd /boot sudo cp initrd.img-$VERSIONE initrd.img-$VERSIONE.rw
Sostituire $VERSIONE con la versione del kernel in uso.
Creare ora un nuovo initrd per il sistema in modalità sola lettura:
update-initramfs -u
Montare il filesystem in lettura e scrittura
Per montare il filesystem in modalità lettura e scrittura digitare il seguente comando:
sudo mount -o remount,rw /ro
In questo modo la cartella /ro sarà scrivibile.
A questo punto, copiare i file modificati nel loro relativo percorso sotto la cartella /ro e rimettere i filesystem in sola lettura:
sudo mount -o remount,ro /ro
È possibile inoltre installare nuovi pacchetti anche se il sistema è in sola lettura. Dopo aver reso scrivibile la cartella /ro attraverso il comando precedente, entrare nella cartella /ro, tramite il comando chroot:
chroot /ro
A questo punto installare i pacchetti come di consueto.
Per uscire dal chroot e rimettere il sistema in sola lettura digitare il seguente comando:
exit