  mini-HOWTO su come fare l'upgrade di una distribuzione Linux
  Greg Louis, glouis@dynamicro.on.ca
  v1.11, 6 Giugno 1996

  Suggerimenti sull'upgrade da una distribuzione Linux ad un'altra.
  ______________________________________________________________________

  Indice Generale


  1. IMPORTANTE!!! Disclaimer e Copyright
  2. Cambiamenti dalla versione 1.1
  3. Introduzione
     3.1 Come uccidere e resuscitare Linux
     3.2 Perch farlo?
     3.3 Devo per forza ``distruggere e reinstallare''?
     3.4 Quanto tempo ci vuole?

  4. Scrivete tutto quello che fate.
  5. Fate un backup completo del sistema esistente.
  6. Fare il backup di /etc e delle sue sottodirectory su uno o pi floppy.
  7. Fate backup separati di ogni gruppo di file che volete conservare.
  8. Preparate i dischi di root e boot per la nuova installazione.
  9. Formattate i dischetti per il kernel temporaneo e per la compilazione finale.
  10. Inibite i login e fate il backup delle directory /root e /home.
  11. Avviate il sistema dai dischetti di boot e root.
  12. Cancellate le partizioni Linux con fdisk e ricreatele.
  13. Installate la nuova versione di Linux.
  14. Con il nuovo sistema linux avviato dall'hard disk, modificate /etc/fstab
  15. Recuperate le configurazioni nella directory /etc e nelle sue sottodirectory.
  16. Configurate e ricompilate il kernel di Linux.
  17. Recuperate quello che avevate salvato.
  18. Controllate la sicurezza.
  19. Abilitate i login.
  20. Mi dispiace, ma ancora una volta:
  21. Ringraziamenti


  ______________________________________________________________________

  11..  IIMMPPOORRTTAANNTTEE!!!!!! DDiissccllaaiimmeerr ee CCooppyyrriigghhtt

  The procedure to which this document attempts to be a guide is
  inherently dangerous to the programs and data stored in your computer.
  You carry out any such procedure entirely at your own risk.  The steps
  described in this document worked for the author; there is no
  guarantee that they will work for you, nor that you can attempt to
  follow them without serious damage to your computer's programs and/or
  data.  You are entirely on your own in any use you may make of the
  information presented herein, and the author shall not be liable in
  any way whatsoever for any damage or inconvenience of any kind that
  you may suffer in so doing.

  This document is copyright 1996, Dynamicro Consulting Limited, and is
  released under the terms of the GNU General Public License.  This
  basically means that you may copy and modify it at will, but may not
  prevent others from doing likewise.

  Comments and questions may be directed to the author.  Especially
  welcome, for use in future revisions, are accounts of successful
  upgrades of complex systems.


       _L_'_u_n_i_c_a _l_i_c_e_n_z_a _v_a_l_i_d_a _ _q_u_e_l_l_a _o_r_i_g_i_n_a_l_e _i_n _l_i_n_g_u_a _i_n_g_l_e_s_e_.
       _D_i _s_e_g_u_i_t_o _n_e _t_r_o_v_a_t_e _u_n_a _t_r_a_d_u_z_i_o_n_e _a_b_b_a_s_t_a_n_z_a _f_e_d_e_l_e _c_h_e
       _p_e_r_ _n_o_n _h_a _a_l_c_u_n _v_a_l_o_r_e_.
  La procedura su cui questo documento cerca di essere una guida 
  pericolosa per i programmi ed i dati immagazzinati nel computer.
  Portate avanti detta procedura a vostro rischio. I passi descritti in
  questo documento hanno funzionato per l'autore; non c' nessuna
  garanzia che funzionino per voi, n che possiate cercare di seguirle
  senza seri danni ai programmi ed ai dati contenuti nel vostro
  computer. Qualsiasi uso delle informazioni qui date  a vostro rischio
  e pericolo, e l'autore non pu essere considerato responsabile per
  qualsiasi danno o inconveniente di qualsiasi tipo che vi possa
  accadere nel farlo.

  La suddetta clausola  valida anche per quanto riguarda la traduzione
  italiana: il traduttore non potr essere considerato responsabile per
  qualsiasi errore o inesattezza della traduzione. Usate le informazioni
  contenute in questo documento completamente a vostro rischio e
  pericolo.

  Questo documento  copyright 1996 Dynamicro Consulting Limited, ed 
  distribuito sotto la licenza General Public License GNU; ci significa
  che potete copiarlo e modificarlo a vostro piacimento, ma non potete
  evitare che altri facciano lo stesso.

  La traduzione italiana  copyright 1997 Eugenia Franzoni
  (eugenia@pluto.linux.it).

  Potete rivolgere commenti e domande direttamente all'autore. Sono ben
  accette, per uso in versioni successive, relazioni su upgrade riusciti
  di sistemi complessi.


  22..  CCaammbbiiaammeennttii ddaallllaa vveerrssiioonnee 11..11


    Aggiunta questa sezione

    Aggiunto il suggerimento di Zoltn Hidvgi su mtime e ctime.
     Grazie, Zoltn!

    Aggiunta la sezione Ringraziamenti


  33..  IInnttrroodduuzziioonnee


  33..11..  CCoommee uucccciiddeerree ee rreessuusscciittaarree LLiinnuuxx

  Lo scopo di questo documento  di dare dei suggerimenti per aiutarvi
  nella distruzione e riinstallazione di un sistema Linux. Non  affatto
  un libro di "ricette" sicuro, ma spero che servir come indicazione su
  quello a cui si deve pensare, e sull'ordine in cui fare le cose. Mi
  sarebbe stato molto di aiuto se qualcun altro avesse scritto una cosa
  del genere prima del mio primo upgrade; quindi spero che sia di aiuto
  a voi, se dovete ricostruire una macchina Linux.

  Non prendetelo come vangelo! Alcune cose cambieranno quasi
  sicuramente.  Anche i nomi delle directory presenti nel documento
  possono essere diverse da quelle che dovete usare; alcuni hanno
  /usr/home invece di /home, ad esempio; altri la chiamano /u, ed altri
  (brivido :) mettono addirittura tutti gli utenti direttamente sotto
  /usr stessa! Non posso essere specifico per il vostro sistema, quindi
  ho semplicemente usato i nomi come sono nel mio.

  Noterete anche che uso la distribuzione Slackware, e che assumo
  abbiate abbastanza RAM e spazio disco per installare i sorgenti del
  kernel Linux e compilare il kernel. Se il vostro sistema  diverso,
  alcune delle mie raccomandazioni non saranno applicabili, ma spero che
  potrete comunque trovare lo schema generale che vi possa essere di
  aiuto nel progetto di ricostruzione.


  33..22..  PPeerrcchh ffaarrlloo??

  Buona domanda! Se si pu evitare, non fatelo! (E questa  la
  raccomandazione pi importante di tutta questa guida!!!) ...ma ci sono
  occasioni in cui non se ne pu fare a meno.

  Ad esempio, ho installato un hard disk da 4Gb e poi ho scoperto che
  Linux della Slackware 2.0 non sapeva che gli hard disk potessero
  essere pi grandi di 2Gb, e si confondeva orribilmente; quindi ho
  dovuto fare un upgrade all'allora ultima Slackware 2.3. Quell'upgrade
   stata un'esperienza estenuante, ed  parte della ragione per cui sto
  scrivendo queste note. Ho sbagliato praticamente tutto, e solo la
  fortuna ed il fatto che avessi un'altro Linux funzionante mi ha
  salvato dal disastro.

  Un altro esempio: ho scoperto che non potevo compilare un kernel linux
  a.out funzionante con la serie 1.3, usando un'installazione esterna
  della Slackware 2.3 (un'altra macchina, non quella con cui ho
  impasticciato). Ho preso la palla al balzo, ho comprato la Slackware
  3.0 su CDROM e ho convertito tutto a ELF. Stavolta la reinstallazione
   andata meglio, grazie in parte all'esperienza precedente, ed 
  servita come spunto per la maggior parte delle idee che vi sto
  offrendo qui.


  33..33..  DDeevvoo ppeerr ffoorrzzaa ````ddiissttrruuggggeerree ee rreeiinnssttaallllaarree''''??

  Stranamente  pi sicuro. Se installate sopra un sistema Linux
  esistente,  probabile che abbiate una miscela di binari vecchi e
  nuovi, e in genere un vero problema per l'amministrazione. Ripulire il
  sistema del tutto, e poi rimettere solo quello di cui sapete avere
  bisogno  un modo drastico ma efficace di avere un risultato pulito.
  (Naturalmente stiamo parlando di installare una distribuzione per
  intero, non di aggiornare uno o due pacchetti! Il modo migliore per
  evitare una reinstallazione completa , precisamente, di tenere
  aggiornati i singoli componenti -- specialmente gcc e le sue librerie,
  e le binutils. Se quello che usate  ragionevolmente aggiornato, e
  potete tenercelo prendendo, e se necessario compilando, del nuovo
  codice di tanto in tanto, non c' bisogno di un aggiornamento di
  massa).

  Come nota Patrick Volkerding (anche lui raccomanda di togliere tutto
  per fare gli upgrade), installare ELF sopra un sistema funzionante
  a.out  il modo sicuro per provocare un disastro: almeno, se ne sapete
  abbastanza per provarci, non avete bisogno di questa guida!

  Anche senza questa complicazione, per, sarebbe meglio ricostruire
  tutto da zero.


  33..44..  QQuuaannttoo tteemmppoo ccii vvuuoollee??

  Naturalmente dipende dalla complessit del sistema, ma posso dire che,
  per l'aggiornamento andato bene (l'altro? -- non chiedetemelo! :) ci
  ho messo circa dieci ore per i backup, sei ore per ricostruire il
  sistema per poter riabilitare i login, e un'altra mezza giornata pi o
  meno per rimettere a posto le cose meno cruciali. Col passar del tempo
  mi accorgo che ci sono delle piccole cose che non sono come le vorrei
  -- le aggiusto mano a mano che le trovo -- ma in tutto dovrebbero
  bastare venti ore di lavoro per un progetto ragionevolmente complesso.
  Forse meno se state reinstallando da hard disk (io ho usato il CDROM)
  o pi se dovete installare da floppy.  Forse meno se avete un Pentium
  veloce, pi se avete un 386. Avete capito il concetto.

  E questo per quanto riguarda l'installazione. Ecco come impostarla,
  una volta deciso che deve essere fatta. Armatevi di forza d'animo, di
  caffeina o cose del genere, e:


  44..  SSccrriivveettee ttuuttttoo qquueelllloo cchhee ffaattee..

  E' estremamente prezioso avere un registro di quello che avete fatto
  nel processo di preparazione e di applicazione delle modifiche.  E'
  specialmente importante una lista dei backup che farete in
  preparazione della distruzione del sistema esistente.


  55..  FFaattee uunn bbaacckkuupp ccoommpplleettoo ddeell ssiisstteemmaa eessiisstteennttee..

  Generalmente parlando, i backup tendono a venir scritti su mezzi ad
  accesso sequenziale. Posto questo, non vorrete usare il backup
  completo per reinstallare un numero significativo di file: ne ha
  troppi che non volete. E' meglio creare dei piccoli backup di segmenti
  individuali che sapete che dovrete reistallare del tutto. Far degli
  esempi pi avanti.

  Perch cominciare con un backup completo? Ci sono due ragioni
  principali: per prima cosa, nell'eventualit di una catastrofe
  nell'installazione del nuovo sistema, avrete modo di tornare indietro
  al punto di inizio con un minimo sforzo. Secondo, non importa quanto
  prepariate bene la nuova installazione, c' una probabilit molto alta
  che uno o due file importanti vengano dimenticati; in questo caso la
  scomodit di dover estrarre questi file dal backup completo sar
  preferibile a farne a meno.

  Per risparmiare tempo e spazio, se avete ancora il mezzo di
  distribuzione per la vecchia versione Linux, potete salvare solo i
  file che hanno l'mtime o il ctime pi recente della data
  dell'installazione originale.


  66..  FFaarree iill bbaacckkuupp ddii //eettcc ee ddeellllee ssuuee ssoottttooddiirreeccttoorryy ssuu uunnoo oo ppii
  ffllooppppyy..

  Questo  l'estremo opposto: non reinstallerete questi file (per la
  maggior parte, almeno), ma li paragonerete con quelli nuovi che
  vengono creati durante l'installazione. Perch? Perch i file nuovi
  potrebbero contenere informazioni che i vecchi non hanno, o potrebbero
  esprimere le stesse cose in modo diverso. I cambiamenti nei
  protocolli, l'aggiunta di nuovi strumenti o l'implementazione di nuove
  caratteristiche in strumenti esistenti sono tutte cose che possono
  apportare dei cambiamenti nel formato dei file di configurazione e
  negli script di avvio contenuti nell'albero /etc, e molto
  probabilmente dovrete immettere i vostri vecchi dati nei nuovi file
  per mantenere i formati nuovi e sfruttare i miglioramenti.


  77..  FFaattee bbaacckkuupp sseeppaarraattii ddii ooggnnii ggrruuppppoo ddii ffiillee cchhee vvoolleettee ccoonnsseerrvvaarree..

  Questa  la parte pi variabile del lavoro, e tutto quello che posso
  fare  descrivere quello che ho fatto io nel mio sistema, nella
  speranza che servir come guida. Sostanzialmente, dovete dare
  un'occhiata a tutte le directory che contengono:


    file che non fanno parte della vostra installazione linux standard,
     o

    file pi recenti di quelli che installerete  con la nuova
     installazione

  e separate solo quei file che volete mantenere.

  (Un'altra strategia possibile  di fare il backup di tutti i file con
  mtime o ctime pi recenti del giorno della precedente installazione di
  Linux, come detto sopra, e recuperarli da l. Se fate cos, dovrete
  tener conto che la nuova distribuzione di Linux potrebbe contenere dei
  file ancora pi recenti di quelli che avete salvato.)

  Nel mio caso, ho finito per fare un file .tgz sul mezzo di backup per
  ciascuna di queste directory:


    /usr/lib/rn

    /usr/lib/smail

    /usr/lib/trn (il resto di /usr/lib era da reinstallare)

    /usr/local/src

    /usr/local/bin

    /usr/local/lib

    /usr/local/lpfont

    /usr/local/man

    /usr/local/sbin

    /usr/local/thot (c'erano altri file in /usr/local che non mi
     servivano)

    /usr/openwin

    /usr/src/lilo-17 (perch la mia Slackware nuova aveva ancora la
     versione 16)

    /usr/src/linux-1.2.13 (perch l'avevo configurato)

    /usr/X11R6/lib/X11/app-defaults

    /usr/X11R6/lib/X11/initrc (il resto di Xfree86 era da reinstallare)

    /var/named

    /var/openwin

    /var/texfonts

  La mia macchina era relativamente semplice, dato che non c'erano file
  di spool di cui preoccuparsi. Non ho uno spool di news in quel
  sistema, e dato che ci sono solo due utenti  pi semplice leggere
  tutta la posta prima di fare lo shutdown. Negli altri casi bisogna
  fare il backup delle directory /var/spool all'ultimo momento, come
  naturalmente le directory delle librerie e dei siti delle news!


  88..  PPrreeppaarraattee ii ddiisscchhii ddii rroooott ee bboooott ppeerr llaa nnuuoovvaa iinnssttaallllaazziioonnee..

  I dettagli di come farlo si possono trovare nella guida di
  installazione della distribuzione che usate.

  99..  FFoorrmmaattttaattee ii ddiisscchheettttii ppeerr iill kkeerrnneell tteemmppoorraanneeoo ee ppeerr llaa ccoommppii
  llaazziioonnee ffiinnaallee..

  Ve ne serviranno due, un dischetto per ciascuno.

  Fatto tutto questo, siete pronti per l'Ora X. Il passo successivo
  rende il sistema non disponibile.


  1100..  IInniibbiittee ii llooggiinn ee ffaattee iill bbaacckkuupp ddeellllee ddiirreeccttoorryy //rroooott ee //hhoommee..

  E' l'ultima cosa da fare sui vecchi sistemi prima di distruggerli, in
  modo da poter avere i dati di root e degli utenti il pi aggiornati
  possibile.


  1111..  AAvvvviiaattee iill ssiisstteemmaa ddaaii ddiisscchheettttii ddii bboooott ee rroooott..


  1122..  CCaanncceellllaattee llee ppaarrttiizziioonnii LLiinnuuxx ccoonn ffddiisskk ee rriiccrreeaatteellee..

  La guida di installazione vi spiegher come farlo; cos distruggerete
  il sistema. Da ora in poi dipendete dalla qualit dei backup che avete
  fatto nei passi precedenti! Siete stati avvisati!


  1133..  IInnssttaallllaattee llaa nnuuoovvaa vveerrssiioonnee ddii LLiinnuuxx..

  Ci sono gi diversi buoni documenti che descrivono come portare avanti
  questo passo, quindi non scender nel dettaglio. Continuate da qui
  quando il nuovo sistema pu essere avviato dal'hard disk.

  Nel frattempo, assicuratevi di creare un dischetto da cui possiate
  avviare il sistema, dato che il kernel installato di default da Linux
  deve essere sostituito, e nel farlo possono accadere degli incidenti.
  Assicuratevi di installare i pacchetti di sviluppo e i sorgenti del
  kernel.


  1144..  CCoonn iill nnuuoovvoo ssiisstteemmaa lliinnuuxx aavvvviiaattoo ddaallll''hhaarrdd ddiisskk,, mmooddiiffiiccaattee
  //eettcc//ffssttaabb

  ed aggiungete la partizione di swap. Poi date il comando "swapon -a".
  Non so perch, ma il programma di installazione della Slackware non si
  offre di farlo se la partizione di swap gi esiste. Poi, quando
  avviate il sistema nuovo e lo script rc.S prova ad abilitare lo swap,
  non trova la partizione nel file fstab e lo swap non funziona. Questo
  procedimento risolve il problema.


  1155..  RReeccuuppeerraattee llee ccoonnffiigguurraazziioonnii nneellllaa ddiirreeccttoorryy //eettcc ee nneellllee ssuuee
  ssoottttooddiirreeccttoorryy..

  Coem descritto sopra, non potete semplicemente copiare i vecchi file
  in /etc ed aspettarvi che funzioni tutto; con alcuni file si pu fare,
  ad esempio /etc/XF86Config (sempre che stiate usando la stessa
  versione di Xfre86 -- e lo stesso hardware video -- dell'installazione
  precedente).  Per la maggior parte, per,  meglio usare diff per
  paragonare i file vecchi ai nuovi prima di copiarli. Controllate
  specialmente dei cambiamenti significativi nei file in /etc/rc.d, dove
  potreste dover modificare tutto a mano, invece di copiare i vecchi
  script dal backup. Una volta finito, riavviate il sistema.



  1166..  CCoonnffiigguurraattee ee rriiccoommppiillaattee iill kkeerrnneell ddii LLiinnuuxx..

  Anche se questo passo non  necessario per avere un kernel che
  supporta il vostro hardware, vale la pena farlo per evitare di avere
  nel kernel i driver di tutta quella roba che sulla macchina non c'.
  Per dettagli su questo, leggete il Kernel HOWTO. Installate prima il
  kernel ricompilato su un dischetto: quando vedete che da l l'avvio 
  a posto, installatelo sull'hard disk, avviate lilo se lo state usando,
  e riavviate il computer.


  1177..  RReeccuuppeerraattee qquueelllloo cchhee aavveevvaattee ssaallvvaattoo..

  Potrebbe essere necessario reinstallare alcuni dei binari dai
  sorgenti: io ho dovuto farlo con lilo, ad esempio, dato che la mia
  versione era pi recente di quella nell'installazione Slackware, e non
  avevo fatto il backup del file binario da /sbin. Dovreste controllare
  tutti i programmi che recuperate dai backup, e confermare l'esistenza
  e la correttezza dei file di configurazione, delle librerie e cos
  via. In alcuni casi potreste dover recuperare i programmi in un ordine
  specifico: avete annotato delle cose durante il backup, vero? ;-)


  1188..  CCoonnttrroollllaattee llaa ssiiccuurreezzzzaa..

  Controllate i permessi dei file e delle directory in modo da essere
  sicuri che l'accesso non  n troppo ristretto n troppo facile. Io
  trovo che la Slackware tende ad essere un ambiente un po' aperto per i
  miei gusti, quindi vado in giro a cambiare i 755 in 711 per i binary
  nelle directory ../bin e cose del genere. O addirittura i 700 in
  quelli ../sbin.  Ci vuole un'attenzione particolare se state facendo
  girare un server ftp, ma probabilmente ci avete gi pensato ;-).


  1199..  AAbbiilliittaattee ii llooggiinn..

  E' tutto a posto. Nel prossimo periodo, ci saranno probabilmente dei
  dettagli da chiarire, ma il grosso del lavoro  fatto. Buon
  divertimento!


  2200..  MMii ddiissppiiaaccee,, mmaa aannccoorraa uunnaa vvoollttaa::

  UUSSAATTEE QQUUEESSTTEE IINNFFOORRMMAAZZIIOONNII AA VVOOSSTTRROO RRIISSCCHHIIOO EE PPEERRIICCOOLLOO!!

  (Vedere il disclaimer all'inizio di questo documento.)


  2211..  RRiinnggrraazziiaammeennttii

  Grazie a Zoltn Hidvgi per aver contribuito al contenuto di questo
  mini-HOWTO.



