Resizing KVM disk image can be a bit tricky.
One example is a disk image that contains two partition the root and swap which is on the second partition.
Now to be able to extend the root partition, the swap should be moved somewhere at the end of the disk image.  After that, the root partition can now be resize to a much bigger size. 
root# qemu-img convert -O raw precise.qcow2 precise2G.raw
root# losetup /dev/loop0 precise2G.raw
root# fdisk -lu /dev/loop0
Disk /dev/loop0: 2684 MB, 2684354560 bytes
4 heads, 32 sectors/track, 40960 cylinders, total 5242880 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d7c37
      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1              63     3998046     1998992   83  Linux
/dev/loop0p2         3999744     4997119      498688   82  Linux swap / Solaris
An example of the disk image is something like that above. We convert it to raw format first and mount it
on /dev/loop0. As you can see even if you increase the size using the  following:
root# qemu-img convert -O raw precise.qcow2 precise.raw root# sudo qemu-img convert -O raw precise.qcow2 precise.raw root# qemu-img create -f raw additional.raw 2G root# cat additional.raw >> precise.raw
The root partition will have the same size even if we increase the size of the image.
The solution is to move the swap partition to to the end part.
Most of the posts only make use of rescue disk or resizing disk image using graphical method.
Using the tool called parted we can do this without needing to boot CD for GUI.  
root# losetup /dev/loop0 precise.raw root# sudo parted /dev/loop0 GNU Parted 2.3 Using /dev/loop0 Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Model: Loopback device (loop) Disk /dev/loop0: 4832MB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 2047MB 2047MB primary ext4 2 2048MB 2559MB 511MB primary linux-swap(v1) (parted) move 2 4321 4832 WARNING: you are attempting to use parted to operate on (move) a file system. parted's file system manipulation code is not as robust as what you'll find in dedicated, file-system-specific packages like e2fsprogs. We recommend you use parted only to manipulate partition tables, whenever possible. Support for performing most operations on most types of file systems will be removed in an upcoming release. (parted) print Model: Loopback device (loop) Disk /dev/loop0: 4832MB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 2047MB 2047MB primary ext4 2 4321MB 4832MB 511MB primary linux-swap(v1)
Above we move the swap partion to the end. Subtract 511MB to 4832MB that results to 4321MB as our start.
(parted) unit kB (parted) print Model: Loopback device (loop) Disk /dev/loop0: 4831838kB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 2047000kB 2046968kB primary ext4 2 4321000kB 4831838kB 510838kB primary linux-swap(v1) (parted) rm 1 (parted) mkpart primary 32.3 4321000 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? Ignore (parted) print Model: Loopback device (loop) Disk /dev/loop0: 4831838kB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 4321000kB 4320968kB primary ext4 2 4321000kB 4831838kB 510838kB primary linux-swap(v1) (parted) q Information: You may need to update /etc/fstab.
Here we change the start and end of our root partition and finally we need to resize the filesystem to the newly set extended size.
root# fdisk -lu /dev/loop0
Disk /dev/loop0: 4831 MB, 4831838208 bytes
255 heads, 63 sectors/track, 587 cylinders, total 9437184 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d7c37
      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1              63     8439452     4219695   83  Linux
/dev/loop0p2         8439453     9437182      498865   82  Linux swap / Solaris
root# resize2fs /dev/loop0p1
resize2fs 1.42 (29-Nov-2011)
Please run 'e2fsck -f /dev/loop0p1' first.
root# e2fsck -f /dev/loop0p1
e2fsck 1.42 (29-Nov-2011)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop0p1: 15769/125184 files (0.1% non-contiguous), 130200/499748 blocks
root# resize2fs 1.42 (29-Nov-2011)
Resizing the filesystem on /dev/loop0p1 to 1054923 (4k) blocks.
The filesystem on /dev/loop0p1 is now 1054923 blocks long.
root# fdisk -lu /dev/loop0
Disk /dev/loop0: 4831 MB, 4831838208 bytes
255 heads, 63 sectors/track, 587 cylinders, total 9437184 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d7c37
      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1              63     8439452     4219695   83  Linux
/dev/loop0p2         8439453     9437182      498865   82  Linux swap / Solaris
And detach and convert back to qcow format.
root# losetup -d /dev/loop0 root# qemu-img convert -O qcow2 precise.raw precise4G.qcow2