Purtroppo vmware non ha ancora rilasciato un convertitore p2v (da macchina fisica a macchina virtuale) degno di quello per la piattaforma windows.

Linux però ci da già di predefinito tutti gli strumenti per fare una copia perfetta di un disco in rete.

Per fare questo ci servono solo 2 applicazioni semplicissime: dd e netcat.

Guida

Per semplicità chiameremo Master (ip: 10.0.0.1) la macchina fisica e Slave quella virtuale (ip: 10.0.0.2).

Slave:

Creare una nuova vm con un hard disk di dimensioni maggiori o uguali al disco Master

Avviare una distribuzione live (knoppix o il “Prova ubuntu senza installare” vanno benissimo)

Impostare come ip l’indirizzo 10.0.0.2

aprire il terminale e digitare:
nc -l -p 9000 | dd of=/dev/sda oppure
nc -l 9000 | dd of=/dev/sda
(dipende da quale vi funziona in base alla versione di netcat)

NB1: è importantissimo partire dallo slave

NB2: sostituire /dev/sda con il disco adatto. Un fdisk -l può risolvere i vostri dubbi

Master:

Qui ci sono 3 alternative valide per preparare la copia:

  1. Spegnere il pc e avviare una distro live. (copia perfetta e non crea mai errori)
  2. Smontare un disco del raid e usarlo per la copia. Successivamente si potrà fare un rsync degli ultimi dati copiati (potete fare un p2v continuando ad erogare i servizi associati al vostro server)
  3. Fermare tutti i servizi e programmi che accedono al disco (solo in caso in cui non si abbia una distro live pronta)

Attenzione!! Fare un p2v con un mysql o un samba server attivo (con molti i/o) rende il disco di destinazione inutilizzabile perché il filesystem sarà corrotto.

Ok adesso aprite il terminale e digitate un:
dd if=/dev/sda | nc 10.0.0.2 9000
Adesso armatevi di tanta pazienza perchè il processo impiegherà molto tempo:

Attenzione! Le prestazioni del disco Master influiscono molto sulle performance

Il p2v può fallire se:

  1. Qualcosa è cambiato nel disco durante la copia in rete
  2. Il kernel del linux installato è troppo vecchio e non supporta vmware

5 risposte

  1. Articolo molto illuminante e utile: solo una precisazione e un paio di domande.
    Precisazione: sulla macchina master il comando da dare dovrebbe essere dd if=/dev/sda | nc 10.0.0.2 9000 dato che questo e’ l’IP stabilito per la macchina slave.
    Domanda 1: il manuale in linea di ‘nc’ dice che e’ un errore usare l’opzione -l insieme all’opzione -p. Che ne pensi?
    Domanda 2: perche’ il SO sul master deve supportare VMware dato che stiamo facendo una copia da Linux a Linux?

  2. @Peppino
    Grazie ho corretto l’ip
    1 – la nuova versione di netcat ha cambiato i comandi. adesso nello slave bisogna fare nc -l 9000

    2 – Per copiare il disco non c’è problema, per farlo bootare si!

        1. Ti ho scritto perchè ho provato. i filesystem lvm non viene letto correttamente e quindi la macchina non parte

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.