linux user group brescia

immagine del castello

Archivio della mailing list

free 'Ghost'

Enrico Colombini erix a erix.it
Mar 12 Nov 2002 14:17:03 UTC
Ovvero: come fare il backup/restore compresso, via rete, di un'intera
partizione Windows (o Linux, o altro, purche' non in uso al momento) usando
solo software libero.

Sembra complicato, ma e' solo questione di farci la mano. La parte di
suddivisione del file e' certamente migliorabile (contributi ben accetti).


=== Materiale necessario ===

- Il PC contenente la partizione interessata, su cui dev'esserci netcat (nc).
- Un altro PC con Linux e abbastanza spazio da contenere il backup 
  compresso, lo chiamo "PC di archivio".
- Un collegamento Ethernet tra i due PC.
- Un CD-ROM con Linux RAM-based, inclusi netcat (nc) e bzip2;
  io uso PLAC 2.9.5 (http://sourceforge.net/projects/plac)


=== Numeri ===

Negli esempi qui sotto uso gli IP vanno *sostituiti* con quelli dei PC
effettivamente usati, come pure il numero della partizione:
- 192.168.127.127 e' il PC di archivio.
- 192.168.127.129 e' il PC con la partizione interessata 
  (nel mio caso, un portatile Compaq della cui D: voglio fare backup).
- /dev/hda5 e' la partizione interessata.


=== Preparazione ===

- Avviare il PC interessato col CD di PLAC (o altro), login come root.
- Installare manualmente la rete, ad esempio con:
    ifconfig eth0 192.168.127.129 netmask 255.255.255.0 up
    route add -net 192.168.127.0/24 dev eth0
- Avviare Linux sul PC di archivio, login come utente.
  

=== Compressione e trasferimento ===

- Sul PC di archivio, avviare un server netcat sulla porta 7777
 (o altra a piacere):
   nc -l -p 7777 >hda5.data.bz2

- Sul PC interessato, comprimere e trasferire la partizione
  con un client netcat:
   cat /dev/hda5 finito | bzip2 | nc 192.168.127.127 7777

  Nota: "finito" e' un file che non deve esistere nella directory 
  corrente, serve per avere una segnalazione di errore che indichi 
  che il trasferimento e' terminato.

  L'operazione e' piuttosto *lunga*: per comprimere e trasferire
  4 GB sulla mia rete 10/100 ci mette una mezz'ora.

- Al termine del trasferimento "cat" si lamentera' che "finito" 
  non esiste. Va tutto bene, non e' un errore.

- Sul PC interessato, premere Ctrl-C per uscire da netcat
  (dall'altra parte uscira' da solo).

- A questo punto sul PC di archivio ci sara' un file hda5.data.bz2
  contenente un'immagine compressa della partizione.


=== Verifica (opzionale) ===

- Nota: se si vuole fare questa verifica, va fatta subito; se il
  PC interessato viene usato, il contenuto della partizione puo' 
  cambiare *anche se non la si usa* (e' successo a me...).

- Sul PC interessato, avviare un server netcat e il confronto:
    nc -l -p 7777 | bzip2 -d | cmp - /dev/hda5

- Sul PC di archivio, avviare un client netcat:
    cat hda5.data.bz2 finito | nc 192.168.127.129 7777

- Al termine del trasferimento "cat" si lamentera' che "finito" 
  non esiste. Va tutto bene, non e' un errore.

- Sul PC di archivio, premere Ctrl-C per uscire da netcat
  (dall'altra parte uscira' da solo).

- Se sul PC interessato non ci sono messaggi del tipo 
  "files differ...", e' andato tutto bene: i dati coincidono.


=== Eventuale archiviazione su CD-ROM ===

- Per archiviare il file su CD-ROM, occorre dividerlo in parti
  abbastanza piccole da stare su un CD-ROM.

- Nota: quanto segue prevede che sul PC di archivio ci sia 
  abbastanza spazio per due copie del file compresso; inoltre
  diventa scomodo se il file e' molto grosso.

- Sul PC di archivio, fare:
    split -b 602m hda5.data.bz2

- Verranno creati i file "xaa", "xab", "xac", ecc.

- Nota: nel mio caso "602m" (602 MB) andava bene, si puo' salire
  fino ad almeno 620m, basta che resti spazio per la chiusura 
  della sessione.

- Registrare ciascun file su un CD-ROM.

- Cancellare (rm) hda5.data.bz2 e tutti i file "x??".


=== Eventuale recupero del file compresso dai CD-ROM ===

- Copiare ciascuno dei file "x??" dal relativo CD-ROM
  al PC di archivio.

- concatenarli nell'ordine giusto con:
    cat xaa xab xac (etc.) > hda5.data.bz2

- Nota: nel mio caso i file sono solo 3 e quindi non c'e' problema
  a farlo a mano, se qualcuno vuole proporre un sistema generico per 
  n file e' benvenuto.

- A questo punto il PC di archivio contiene l'immagine della
  partizione da ripristinare nel file hda5.data.bz2.


=== Restore ===

- Per ripristinare la partizione dal backup, fare per prima cosa 
  quanto descritto sopra alla voce "Preparazione".

- Attenzione: quanto segue *distrugge* il contenuto corrente
  della partizione interessata.

- Sul PC interessato, avviare un server netcat:
    nc -l -p 7777 | bzip2 -d > /dev/hda5

- Sul PC di archivio, avviare un client netcat:
    cat hda5.data.bz2 finito | nc 192.168.127.129 7777

- Al termine del trasferimento "cat" si lamentera' che "finito" 
  non esiste. Va tutto bene, non e' un errore.

- Sul PC di archivio, premere Ctrl-C per uscire da netcat
  (dall'altra parte uscira' da solo).

- Salvo disastri, la partizione sara' stata ripristinata al 
  contenuto precedente il backup.


=== NOTE IMPORTANTI ===

- Salvo errori & omissioni (ogni verifica e' gradita).

- A me funziona bene, ma tutto cio' e' A VOSTRO RISCHIO E PERICOLO.


  .Erix.




Maggiori informazioni sulla lista Lug