[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume]


Capitolo 779.   nanoLinux: aggiornamento

nanoLinux prevede la possibilità di «aggiornare» il sistema a partire dal DVD di una nuova edizione. L'aggiornamento avviene con l'utilizzo di Rsync (capitolo 351) e in pratica si ottiene un riallineamento parziale con il DVD, che può contenere anche una versione precedente o avere un insieme più piccolo di pacchetti applicativi.

La procedura di riallineamento deve sottostare a qualche compromesso, nel tentativo di preservare la configurazione e i registri (log) del sistema installato. Pertanto, il risultato che si ottiene dal riallineamento non è mai perfettamente conforme al disco utilizzato per l'aggiornamento.

Il procedimento di riallineamento è realizzato cercando di evitare di compromettere dati importanti nel file system; tuttavia, non si può escludere l'imprevisto e prima di aggiornare, ovvero prima di riallineare, è assolutamente necessario fare una copia di sicurezza di tutti i dati, o almeno di quelli che non si vogliono perdere. Si osservi che ogni struttura del file system, non prevista dalla procedura di riallineamento, verrebbe eliminata inesorabilmente!

In generale, l'uso del meccanismo di aggiornamento previsto per nanoLinux è sconsigliabile. Va osservato anche che nello sviluppo di nanoLinux, questo aspetto non viene curato a sufficienza.

779.1   La procedura di riallineamento in generale

La procedura di riallineamento (gestita tramite lo script nanorc), prevede di salvare una copia di sicurezza della directory /etc/, con un nome del tipo /etc.orign/, dove n rappresenta la data (anno, mese, giorno, ore, minuti e secondi) del momento in cui inizia la copia. Se le sostituzioni fatte attraverso la procedura di riallineamento non sono gradite in tutto, si possono recuperare a mano i file necessari. Naturalmente, quando tutto risulta funzionare correttamente, la directory /etc.orign/ può essere eliminata.

Durante il riallineamento, i messaggi generati dai programmi utilizzati vengono ridiretti verso il file /var/log/system-upgrade-log, nel caso fosse necessario vedere cosa è accaduto realmente.

Durante l'aggiornamento della directory /etc/, i file /etc/passwd e /etc/group vengono rimpiazzati, recuperando gli utenti e i gruppi con numero UID e GID da 1 000 a 29 999. In particolare, nel file /etc/group vengono ripristinate le aggregazioni degli utenti ai gruppi che rappresentano funzioni speciali del sistema.

I file contenuti all'interno delle directory /etc/cron.*/, vengono semplicemente sovrascritti, senza eliminare quelli mancanti nel disco utilizzato per l'allineamento. Ciò serve a evitare di cancellare degli script aggiunti per delle gestioni particolari, ma d'altra parte, ciò significa che eventuali script superflui devono essere rimossi manualmente.

I file utilizzati per l'avvio (kernel e file di GRUB 1) non vengono modificati; vengono solo aggiunti i kernel che hanno versioni diverse da quelli già presenti. Per fare in modo di utilizzare i file aggiunti, bisogna aggiornare i collegamenti simbolici (/vmlinuz, /vmlinuz.old ed eventualmente altri collegamenti contenuti nella directory /boot/); infine occorre verificare il contenuto del file /boot/grub/menu.lst.

La directory /opt/ viene aggiornata solo nei contenuti che esistono effettivamente nel disco di origine, usato per l'aggiornamento. In questo modo, se ci sono sottodirectory di applicazioni che nel disco di aggiornamento non sono presenti, queste vengono preservate.

Tabella 779.1. Elenco dei file e delle directory principali che vengono preservati dalla procedura di riallineamento.

Percorso Annotazioni

/dev/
Directory dei file di dispositivo.

/boot/
/lib/modules/
/vmlinuz
/vmlinuz.old
File usati per l'avvio.

/etc/X11/xorg.conf
Configurazione di X.

/etc/aliases
/etc/aliases.db
/etc/postfix/main.cf
/etc/mailname
Configurazione riferita alla posta elettronica.

/etc/resolv.conf
/etc/bind/
Configurazione del servizio di risoluzione dei nomi di dominio.

/etc/cron.*/
Script di procedure da avviare a intervalli regolari. Si osservi che i file del disco di aggiornamento vengono sovrascritti, senza cancellare altri file esistenti.

/etc/exports
Configurazione dei percorsi accessibili attraverso il protocollo di rete NFS.

/etc/default/nis
/etc/defaultdomain
/etc/yp.conf
/var/yp/
Configurazione del NIS (il file /var/yp/Makefile viene aggiornato).

/etc/fstab
/mnt/
Configurazione dei punti di innesto.

/etc/gpm.conf
Configurazione della gestione del mouse.

/etc/passwd
/etc/group
/etc/shadow
/etc/gshadow
I file /etc/passwd e /etc/group vengono aggiornati, cercando di preservare le utenze comuni e le utenze di amministrazione (UID pari a zero).

/etc/hostname
Configurazione del nome dell'elaboratore locale.

/etc/hosts
/etc/networks
Configurazione dei nomi abbinati a indirizzi IP e a indirizzi di rete.

/etc/hosts.allow
/etc/hosts.deny
Configurazione del TCP wrapper.

/etc/rc.local
Script libero della procedura di avvio.

/etc/nanoLinux/
File di configurazione specifici di nanoLinux.

/etc/printcap
/etc/lprng/lpd.*
Configurazione della stampa.

/etc/samba/smbpasswd
/etc/samba/smb.conf
Utenze e configurazione di Samba.

/etc/ssh/
Configurazione di OpenSSH.

/etc/syslog.conf
Configurazione del registro di sistema.

/home/
/home-backup/
/root/
Directory personali degli utenti.

/proc/
/sys/
File system virtuali per ottenere informazioni dal kernel.

/selinux/

/tmp/
/var/tmp/
Directory temporanee.

/var/run/
/var/log/,...
File sullo stato di funzionamento e altri dati variabili.

Tabella 779.2. Elenco dei file e delle directory che vengono preservati quando dalla configurazione sembra che l'elaboratore abbia il ruolo di router.

Percorso Annotazioni

/etc/init.d/rc.network
Script per la configurazione della rete.

/etc/oops/
Directory contenente la configurazione di OOPS.

/etc/dansguardian/
Directory contenente la configurazione di DansGuardian.

779.2   Esempio di utilizzo

L'aggiornamento, ovvero il riallineamento a una certa edizione, avviene a partire dal sistema da aggiornare o riallineare in funzione. Il disco usato per aggiornare è probabilmente un DVD, che contiene uno script nanorc aggiornato; pertanto, conviene cominciare rimpiazzando proprio questo script. Si presume di voler aggiornare a partire da un DVD di nanoLinux, inserito in un lettore a cui si accede tramite il file di dispositivo /dev/hdc; si comincia con l'innesto del DVD:

mount /mnt/hdc[Invio]

Quindi si copia il file aggiornato nella sua collocazione naturale all'interno del file system attuale:

cp /mnt/hdc/HD-ROOT/etc/script/nanorc /etc/script[Invio]

A questo punto si può iniziare con il comando di aggiornamento, tenendo conto che non fa alcuna differenza che il DVD sia già innestato o meno:

umount /mnt/hdc[Invio]

nanorc system upgrade[Invio]

.-------------------------System upgrade/downgrade---------------------------.
| You are going to upgrade or downgrade your system.                         |
| Please note that it is DANGEROUS, because you might loose all or just some |
| of your important data.                                                    |
| Before you go any further, you have to make a backup copy of all the file  |
| system.                                                                    |
|                                                                            |
| Should the upgrade/downgrade be started?                                   |
|                                                                            |
|                                                                            |
|----------------------------------------------------------------------------|
|                       < Yes >            < No  >                           |
`----------------------------------------------------------------------------'

Prima di iniziare, viene ricordato che l'aggiornamento può portare alla perdita di tutti o anche solo di alcuni dati, che possono essere importanti, pertanto, per la propria sicurezza, è bene procedere soltanto se è stata eseguita una copia di ciò che è di proprio interesse.

<Yes>

.------Source device---------.
| Please insert the upgrade  |
| source disk as a device    |
| file name:                 |
| .------------------------. |
| |/dev/hdc                | |
| `------------------------' |
|----------------------------|
|   <  OK  >  <Cancel>       |
`----------------------------'

Viene richiesto di specificare il file di dispositivo a cui corrisponde il disco (in questo caso il DVD) che contiene la versione aggiornata di nanoLinux.

/dev/hdc<OK>

Il disco viene innestato in una directory temporanea; se l'operazione ha successo, si prosegue:

.----------System upgrade/downgrade------------.
| Current system: 40, 2007.01.01               |
| Upgrade disk:   60, 2008.01.01               |
|                                              |
| Should the upgrade/downgrade continue?       |
|                                              |
|----------------------------------------------|
|           < Yes >      < No  >               |
`----------------------------------------------'

Viene fatto osservare che il sistema attuale corrisponde a un nanoLinux 40, versione 2007.01.01, mentre si richiede di aggiornare, portandolo a un nanoLinux 60, versione 2008.01.01. L'operazione corrisponde alle proprie aspettative, quindi si prosegue:

<Yes>

A questo punto inizia il riallineamento del sistema, che può durare anche diverse ore. Eventualmente si può osservare il contenuto del file /var/log/system-upgrade-log, mentre il lavoro procede (dovrebbe apparire automaticamente nella console /dev/tty12). Al termine si ottiene il messaggio seguente:

.----------------------------------------------------------------------------.
| I wish the work is done well...                                            |
|                                                                            |
| Please note that:                                                          |
| the directory "/boot/" and the directory "/lib/modules/" are not           |
| modified (if you need to update the kernel, you have to do it by hand);    |
| the original "/etc/" directory is saved inside                             |
| "/etc.orig20080102030405";                                                 |
| the directory "/var/" is only partly updated;                              |
| the directory "/opt/" is updated only for known subdirectories.            |
|                                                                            |
| You can find a complete log inside: "/var/log/system-upgrade-log".         |
|                                                                            |
| Check out your configuration!                                              |
|                                                                            |
| Good luck,                                                                 |
| your nanorc assistant.                                                     |
|                                                                            |
|----------------------------------------------------------------------------|
|                                 <  OK  >                                   |
`----------------------------------------------------------------------------'

In questo caso si viene a sapere, in particolare, che è stata conservata una copia della directory /etc/ originale, nella directory /etc.orig20080102030405/.

Se l'operazione di allineamento dovesse interrompersi per qualunque motivo, prima di ripeterla, conviene mettere da parte la directory /etc/ esistente, copiando nuovamente l'originale:

mv /etc /etc.bad[Invio]

cp -dpRv /etc.orig20080102030405 /etc[Invio]

nanorc system upgrade[Invio]

...

779.3   Aggiornamento del kernel

L'aggiornamento attraverso nanorc system upgrade non aggiorna i kernel, o almeno non lo fa completamente; pertanto occorre fare qualche piccolo intervento manuale. Eventualmente, il procedimento che viene spiegato qui vale per aggiornare il kernel indipendentemente da altri problemi.

Si suppone di disporre di un kernel versione 2.6.21.11. Per prima cosa viene innestato il DVD (di nanoLinux) che lo contiene:

mount /mnt/hdc[Invio]

Si copiano i file principali nella directory /boot/:

cp /mnt/hdc/HD-ROOT/boot/System.map-2.6.21.11 /boot[Invio]

cp /mnt/hdc/HD-ROOT/boot/config-2.6.21.11 /boot[Invio]

cp /mnt/hdc/HD-ROOT/boot/vmlinuz-2.6.21.11 /boot[Invio]

Si sistemano i collegamenti simbolici a cui forse fa riferimento il file /boot/grub/menu.lst:

rm /boot/vmlinuz[Invio]

rm /vmlinuz[Invio]

ln -s /boot/vmlinuz-2.6.21.11 /boot/vmlinuz[Invio]

ln -s /boot/vmlinuz-2.6.21.11 /vmlinuz[Invio]

Si copiano i moduli:

cp -dpRv /mnt/hdc/HD-ROOT/lib/modules/2.6.21.11 /lib/modules[Invio]

Quello che resta da fare, eventualmente, è di verificare e forse ritoccare il file /boot/grub/menu.lst.


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome nanolinux_aggiornamento.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory