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 4 e 5
Versione 4 del 19/04/2012 16.08.24
Dimensione: 5323
Commento:
Versione 5 del 19/04/2012 16.13.27
Dimensione: 5353
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 165: Linea 165:
----
CategoryNuoviDocumenti


Introduzione

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:

  • 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

Come funziona

Il sistema finito sarà costituito dalla root directory (/) montata in tmpfs.

Saranno inoltre create al boot 2 cartelle:

  • /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

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 rimedio a qualche piccolo bug che si andrà a creare.

Prima di tutto inserire in sysctl.conf questa stringa:

kernel.yama.protected_nonaccess_hardlinks = 0

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:

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

Salvare e rendere eseguibile il file:

chmod +x ro_root

Stessa procedura per il secondo file, al suo interno inserire::

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

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:

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:

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


CategoryNuoviDocumenti