space
left
Hyperion Research Labs
right
Home arrow News arrow Howto arrow come ingrandire una partizione ext3 qcow2 (qemu)
giovedì 28 agosto 2008
 
 
come ingrandire una partizione ext3 qcow2 (qemu) PDF Stampa E-mail
mercoledì 09 gennaio 2008

A volte si rende necessario ridimensionare, in particolare ingrandire, una partizione qcow2, cioè il tipo di partizione usato da qemu. Purtroppo non esiste un comando diretto per ingrandire la partizione, e quindi la procedura è piuttosto complessa ma fattibile. Consiglio caldamente di fare un backup del file in questione nel caso qualcosa vada storto. In questa guida mostro come ingrandire una partizione qcow2 contenente una installazione di Ubuntu Hardy. Il file qcow2 è di circa 2,5Gb ed è stato suddiviso dall'installer di Hardy in 3 partizioni:

 

elenco_partizioni.png

 

La procedura generale, che va adattata caso per caso, è questa:

  • trasformare il file qcow2 in raw;
  • ingrandire il file raw; 
  • spostare e ingrandire le partizioni come necessario;
  • ritrasformare il file raw in qcow2;
  • bootare nel guest OS (quello virtualizzato all'interno di qemu) e ingrandire i filesystem fino a riempire le singole partizioni.

 

 

 

 

 

Nel dettaglio, questa è la procedura usata per la mia partizione ext3, ma funziona anche con reiserfs. Aumenteremo lo spazio da 2,5Gb totali a circa 5Gb totali. Lasceremo inalterato lo spazio di swap, cioè la terza partizione. 

La nostra partizione qcow2 originale si chiama ubuntu_hardy_heron.qcow. Innanzitutto bisogna trasformarla in formato raw:

$ qemu-img convert ubuntu_hardy_heron.qcow -O raw ubuntu_hardy_heron.raw
$ ls -l ubuntu_hardy_heron.*
-rw-r--r-- 1 fritz users 2526195712 2008-01-09 14:36 ubuntu_hardy_heron.qcow
-rw-r--r-- 1 fritz users 2621440000 2008-01-09 14:40 ubuntu_hardy_heron.raw


Ora si procede a ingrandire il file raw. Esistono diversi modi, io ho usato questo (sostituire 5G con la dimensione voluta del file raw):

$ dd if=/dev/zero of=ubuntu_hardy_heron.raw bs=1 count=1 seek=5G
1+0 registrazioni dentro
1+0 registrazioni fuori
1 byte (1 B) copiato, 5,054e-05 secondi, 19,8 kB/s

$ ls -l ubuntu_hardy_heron.*
-rw-r--r-- 1 fritz users 2526195712 2008-01-09 14:36 ubuntu_hardy_heron.qcow
-rw-r--r-- 1 fritz users 5368709121 2008-01-09 14:48 ubuntu_hardy_heron.raw

Ora si può passare alla "fase creativa", cioè lo spostamento e ingrandimento delle partizioni. Si può provare come descritto qui a spostare la partizione, ma in realtà questa procedura non funziona. La cosa più semplice è cancellare la partizione di swap (qui col nome di raw5) e il suo contenitore (raw2). Il procedimento qui mostrato sembra copiare i dati ma la partizione non è usabile una volta bootato il guest OS. Il fatto è che lo spazio libero è così distribuito e quindi per ingrandire la prima partizione bisogna spostare o eliminare la seconda e la terza.

disco_allargato.png

Eseguo gparted con:

$ sudo gparted ubuntu_hardy_heron.raw

Ripeto, questa procedura non funziona. La cosa più semplice da farsi è cancellare la partizione raw2 e raw5. Si può però prendere spunto per qualche soluzione creativa (magari con fdisk potrebbe funzionare), dato che l'idea è spostare lo swap alla fine del disco, prima di tutto ingrandendo raw2, poi spostando raw5 alla fine del disco (questo è il passo che genera l'errore) e poi riducendo raw2. Le immagini chiariscono il procedimento.

allargo_seconda.png

sposto_terza.png

Lo spostamento della terza partizione (quella interna, qui chiamata .raw5) segnala errore, ovviamente (non esiste un file col nome raw5).

rimpicciolisco_seconda.png

Torniamo alla procedura funzionante. Ora bisogna ingrandire la prima partizione. Probabilmente si può fare anche da gparted, ma preferisco un metodo già collaudato con un altro tool, e quindi uso il fido fdisk. Creo prima un device di loop:

$ sudo losetup /dev/loop0 ubuntu_hardy_heron.raw 

$ sudo fdisk /dev/loop0

Comando (m per richiamare la guida): p

Disco /dev/loop0: 5368 MB, 5368709120 byte
255 heads, 63 sectors/track, 652 cylinders
Units = cilindri of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0007b0b4

 Dispositivo Boot      Start         End      Blocks   Id  System
/dev/loop0p1   *           1         297     2385621   83  Linux
/dev/loop0p2             631         652      176715    5  Esteso
/dev/loop0p5             632         652      168651   82  Linux swap / Solaris

Con sprezzo del pericolo, bisogna cancellare e ricreare la partizione 1:

 Comando (m per richiamare la guida): d
Numero della partizione (1-5): 1

Comando (m per richiamare la guida): n
Azione comando
   l   logica (5 od oltre)
   p   partizione primaria (1-4)
p
Numero della partizione (1-4): 1
Primo cilindro (1-652, predefinito 1):
Utilizzo del valore predefinito 1
Ultimo cilindro o +size o +sizeM o +sizeK (1-630, predefinito 630):
Utilizzo del valore predefinito 630

Comando (m per richiamare la guida): p

Disco /dev/loop0: 5368 MB, 5368709120 byte
255 heads, 63 sectors/track, 652 cylinders
Units = cilindri of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0007b0b4

 Dispositivo Boot      Start         End      Blocks   Id  System
/dev/loop0p1               1         630     5060443+  83  Linux
/dev/loop0p2             631         652      176715    5  Esteso
/dev/loop0p5             632         652      168651   82  Linux swap / Solaris

Come si vede, ora il blocco finale della prima partizione è 630 (invece dell'originario 297). La partizione è stata ingrandita.

Salviamo e usciamo da fdisk (tasto w).

Siamo quasi alla fine, bisogna solo ricreare il file qcow e ingrandire il filesystem. Purtroppo non ho trovato un metodo per ingrandire il filesystem senza bootare nel guest OS, quindi inizio a riconvertire da raw a qcow in un nuovo file:

 $ qemu-img convert ubuntu_hardy_heron.raw -O qcow2 ubuntu_hardy_heron2.qcow

 Finita la conversione, avvio il guest OS tramite qemu-launcher (avendo attenzione di usare il nuovo file ubuntu_hardy_heron2.qcow come disco). Una volta entrato in Ubuntu, nel guest OS da terminale basta lanciare:

$ sudo resize2fs /dev/sda1

nel caso di ext3, oppure nel caso di reiserfs:

$ sudo  resize_reiserfs /dev/sda1

ext3_allargata.png

per ingrandire online il filesystem. Come si vede, la nostra partizione di root ha guadagnato qualche gb di spazio libero. Resta solo da ricreare (con gparted, ad esempio) e formattare (con mkswap) la partizione di swap e aggiornare il file /etc/fstab col nuovo uuid della swap.


Tags:  Guide e howto qemu qcow2 partizione
Commenti
NuovoCercaRSS
Commenta
Nome:
Email:
 
Website:
Titolo:
 
 
Security Image
Please input the anti-spam code that you can read in the image.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.

 
< Prec.   Pros. >
Google Ads

Tag Clouds
ubuntu utilizzo usare dell linux fdisk stato inoltre blocchi senza purtroppo spazio test possono ugrave qcow funziona manca ancora guest radius abbastanza raw5 cose ecco opzione volta bene installare heron

Joomla Modul

Ultimi Commenti
 
Top! Top!