Newsgroup: it.comp.os.linux.iniziare
Titolo: [Qemu] ingrandire immagine

Avrei bisogno di ingrandire l'immagine su cui ho installato un SO
attravero Qemu.Il faile ha un formato vhd.img e rappresenta l'HD
virtuale su cui sta il sistema.
Purtroppo non ho più spazio su quel HD virtuale così vorrei ingrandirlo,
ingrnadire la partizione di root / lasciando possibilmente ilsistema
così com'è, ovvero senza dover reinstallare tutto.
Si può fare?
____________________________________
Mail: johnnynews at vfemail dot net

 Si può fare?
Se puede....
Dopo aver cercato un po' nel wiki di qemu e nel forum ho trovato questo:
dd if=/dev/zero of=vhd.img seek=1000 obs=1MB count=0
con cui ho allargato l'immagine del disco "vhd.img" in formato raw fino
a farla arrivare ad 1 GB...prima era di 200 MB.
Fin qui tutto ok. Il device risulta giustamente partizionato con le 3
partizioni swap/estesa+logica+ 800 MB circa di spazio non allocato.
Il problema viene dopo in quanto ho bisogno di allargare la partizione
di root formattata in ext2, senza perdere dati ovviamente....(ho già
fatto un backup copiando l'immagine da un'altra parte).
Ho cercato di utilizzare parted, ma quando tento di effettuare un resize
sulla root si lamenta:
"file system has an incompatible feature enabled"
Da quanto ho capito fin'ora il problema sta proprio nel filesystem
ext2...ma mi pare strano che non ci sia una soluzione.
Ne sapete nulla?
Una eventualie funambolica soluzione potrebbe essere riformattare il
filesystem in ext3, che a quanto pare non soffre di quei problemi e poi
riprovare parted....ma riformattare mantenendo intonso il contenuto
dell'immagine mi pare impossibile giusto?


 
Si può fare: crei una copia del disco che partizioni e formatti in ext3
come ti serve e poi fai un bel rsync del contenuto dal disco ext2 a
quello ext3
# rsync -auxv /part1 /part2
rimane solo da decidere come e da dove far partire il comando rsync.
Una soluzione veloce è avviare con una live la macchina virtuale
dandogli i due dischi.
Dopo aver ultimato la copia puoi avviare qemu con la nuova immagine al
posto della vecchia (che comunque conviene aver salvato sempre prima da
qualche parte, non si sa mai).
Se mantieni la stessa tabella delle partizioni, il sistema emulato non
dovrebbe accorgersi di nulla.
Ti consiglio di partire da una copia del vecchio disco virtuale poiché
in questo modo non devi toccare il settore di boot, altrimenti dopo aver
copiato i dati devi anche installare manualmente grub sul nuovo disco o
non avvierà mai.
Il tempo maggiore è quello richiesto dalla copia dei file, il resto è
più complicato da dire che da fare.
PSK

 
[...]
Ancora meglio (backup fortemente consigliato prima di qualsiasi
operazione), basta cercare in google "convert ext2 to ext3" e compaiono
diverse informazioni su come convertire un filesystem da ext2 a ext3
senza riformattare.
Mai provato i metodi.
Luca


Ho provato questa seconda strada....sperando che fosse meno problematica
e più rapida...in sostanza ho copiato l'immagine del disco:
cp vdh.img vhd2.img
poi ho avviato quemu con le opzioni apposite:
qemu -hda vdh.img -hdb vdh2.img
A quel punto le partizioni di hdb risultano smontate e si può procedere
con tune2fs.....in pratica si sta utilizzando il sistema installato su
hda....è ovvio, va bè.
tune2fs -j /dev/hdb6
dove 6 è il numero della partizione di root / del sistema installato in
hdb.
Sembra andare tutto liscio.
lanciato parted /dev/hdb , e premuto "p" per stampare la tabella delle
partizioni in gioco risulta:
Number  start    end      size     type      file system 
 1      32.3kB   1000MB   1000MB   extended
 5      64.5kB   32.9MB   32.8MB   logical   linux-swap
 6      32.9MB    313MB    280MB   logical   ext3
Mi sembra tutto ok e allora procedo al resize della 6.
(parted) resize 6
start? [32.9MB]?
end? [313MB]? 1000
error: file system has an incompatible feature enabled
---
Insomma l'errore persiste nonostante il cambio di filesystem.
Chissà poi perchè...sarebbe statopiuttosto semplice ed indolore
allargare la partizione di root del sistema emulato... va bè proverò
rsync.
In ogni caso grazie per le dritte Luca.
____________________________________


 dandogli i due dischi.
In pratica ho fatto 2 copie dell'immagine....in totale ve ne sono 3 in
gioco.
Una delle tre ha però dimensioni più grandi perchè l'avevo trattata con
fdisk in modo da riempire lo spazio non allocato. L'operazione con
rsync ha funzionato ma ottengo un errore, che ricevevo anche prima...
In pratica dalla 1 ho montato le atre due partizioni di root e ho
sincronizzato la 2 (quella + grande) col contenuto della 3.
A quanto pare ha funzionato. Il sistema 2 si avvia senza batter ciglio.
Però fdisk mi da un "errore"...un avertimento insomma..non so se è
importante ma non mi piace:
/dev/hda1    1    215        extended
Partition 1 has different physical/logical beginnings (non linux?):
    phys=(0,1,1) logical=(0,1,2)
Partition 1 has different physical/logical ending:
    phys=(12, 146, 62) logical=(214, 44, 1)
/dev/hda5    1    8          linux-swap
/dev/hda6    8    255        linux
-----
cosa significa? è grave? Come si può correggere?
Grazie in anticipo. E grazie in ogni caso...non sapevo che la root
partition potesse essere copiata così impunemente da una partizione
all'altra.  ;-)
Saluti!
____________________________________


 più complicato da dire che da fare.
In effetti, pur avendo a che fare con partizioni di 1 GB scarso...è un
po' lunga.
Certo se avesse funzionato parted sarebbe stato sicuramente più facile.
Ancora non mi spiego quell'errore.....che parted si basi su fstab? in
tal caso quando avevo provato fstab del disco "c" era basata su
/dev/hda, mentre io lavoravo con parted vedendo partizioni /dev/hdc*.
Booo.
Se avete idee fatevi avanti  :-)
Spero che tutto il riepilogo sia comunque utile a chi legge....me
compreso per promemoria futuro. ;-)
Saluti
____________________________________
