Lavorando con le Virtual Machine capita di dover ridurre un disco, oppure voler creare un’immagine da cui poi generare altre vm con caratteristiche disco differenti.
Premessa: E’ scontato che non posso copiare una partizione da 10G in un disco da 5G. Quindi la partizione del disco da 10G deve essere come max 4.9G, per eseguire questa operazione.
Tutto va fatto a vm spente!
Passi:
1. Creo il disco destinazione: qemu-img DiscoDest.raw 5G
2. Aggancio i due file raw ad un loop device:
losetup /dev/loop0 DiscoOrig.raw
losetup /dev/loop1 DiscoDest.raw
3. Copio il contenuto con cat: cat /dev/loop0 > /dev/loop1
4. Al termine cat finirà con un errore di spazio,
di questo comunque non mi devo preoccupare, in quanto la partizione contenuta nel disco origine è leggermente più piccola del disco di destinazione e quindi mi rimarrà un po’ di spazio non utilizzato in coda da recuperare volendo con gparted reingrandendo la partizione al termine dell’operazione.
Il tutto funziona anche se devo fare la copia di un disco più piccolo in uno più grande.
Ovviamente al termine uso gparted per poter ingrandire la partizione piccola all’interno dell’intero disco fisico o file immagine che sia.