DONT DO THIS ON DATA YOU CARE ABOUT
YOU WILL MAKE A MISTAKE AND LOOSE ALL OF YOUR DATA
YOU HAVE BEEN WARNED.
Do back up / snapshot / test on a non-production filesystem.
Do not try this, these are my notes...
If you are foolhardy enough to give it a try:
Make a copy of your vm image (lvm snapshot and snag a copy).
Edit your new vm in virsh (nuke the mac address line so you don't bump heads with the live one).
Edit your ip address in your vm (mount it) see other page on this blog.
- hint blog/01256151999 check for the mount bit.
Ok, now on to the fun:
before all this - add 10GB to the disk image
(turn off the vm first):
on the host find the vm disk image and resize it:
qemu-img resize vmdiskfile +10G
boot up the vm and extend the partition table:
root@vmguest:~# fdisk /dev/vda
---> trust, but verify:
Command (m for help): p
Disk /dev/vda: 53.7 GB, 53687091200 bytes
16 heads, 63 sectors/track, 104025 cylinders, total 104857600 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: 0x000702ec
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 499711 248832 83 Linux
/dev/vda2 501758 83884031 41691137 5 Extended
/dev/vda5 501760 83884031 41691136 8e Linux LVM
---> The disk /dev/vda was 42.9 GB before the qemu-resize (above)
---> delete the lvm partition (re-create later as larger)
Command (m for help): d
Partition number (1-5): 5
---> delete the extended partition (re-create later as larger)
Command (m for help): d
Partition number (1-5): 2
---> trust, but verify:
Command (m for help): p
Disk /dev/vda: 53.7 GB, 53687091200 bytes
16 heads, 63 sectors/track, 104025 cylinders, total 104857600 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: 0x000702ec
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 499711 248832 83 Linux
---> re-create the extended partition (now will be larger)
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
Partition number (1-4, default 2):
Using default value 2
First sector (499712-104857599, default 499712):
Using default value 499712
Last sector, +sectors or +size{K,M,G} (499712-104857599, default 104857599):
Using default value 104857599
---> trust, but verify:
Command (m for help): p
Disk /dev/vda: 53.7 GB, 53687091200 bytes
16 heads, 63 sectors/track, 104025 cylinders, total 104857600 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: 0x000702ec
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 499711 248832 83 Linux
/dev/vda2 499712 104857599 52178944 5 Extended
---> re-create the logical partition (now will be larger)
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (501760-104857599, default 501760):
Using default value 501760
Last sector, +sectors or +size{K,M,G} (501760-104857599, default 104857599):
Using default value 104857599
---> trust, but verify:
Command (m for help): p
Disk /dev/vda: 53.7 GB, 53687091200 bytes
16 heads, 63 sectors/track, 104025 cylinders, total 104857600 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: 0x000702ec
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 499711 248832 83 Linux
/dev/vda2 499712 104857599 52178944 5 Extended
/dev/vda5 501760 104857599 52177920 83 Linux
---> re-create the partition types to match what was:
Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 8e
Changed system type of partition 5 to 8e (Linux LVM)
---> trust, but verify:
Command (m for help): p
Disk /dev/vda: 53.7 GB, 53687091200 bytes
16 heads, 63 sectors/track, 104025 cylinders, total 104857600 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: 0x000702ec
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 499711 248832 83 Linux
/dev/vda2 499712 104857599 52178944 5 Extended
/dev/vda5 501760 104857599 52177920 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
---> Say a little prayer:
root@vmguest:~# reboot
Broadcast message from root@vmguest
(/dev/pts/0) at 15:31 ...
The system is going down for reboot NOW!
root@vmguest:~# Connection to vmguest closed by remote host.
Connection to vmguest closed.
---> ssh to the vmguest (hope it booted):
root@vmguest's password:
Welcome to blah
---> important part to note (we are almost full captain!):
................
=> / is using 91.9% of 33.10GB
................
---> lets check out what the volume groups look like:
root@vmguest:~# vgdisplay
--- Volume group ---
VG Name vmguest
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 39.76 GiB
PE Size 4.00 MiB
Total PE 10178
Alloc PE / Size 10178 / 39.76 GiB
Free PE / Size 0 / 0
VG UUID VJjvr3-Xan6-0Erq-Lo9y-QvT2-gQ4l-KR4y0w
---> lets check out what the logical volumes look like:
root@vmguest:~# lvdisplay
--- Logical volume ---
LV Name /dev/vmguest/root
VG Name vmguest
LV UUID syduCb-TDzz-Bow8-FonV-ePg7-Zfz8-2VDdvy
LV Write Access read/write
LV Status available
# open 1
LV Size 33.76 GiB
Current LE 8642
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Name /dev/vmguest/swap_1
VG Name vmguest
LV UUID a6ibbL-70hx-6tFN-2ygT-yOjg-8hxk-saioHr
LV Write Access read/write
LV Status available
# open 2
LV Size 6.00 GiB
Current LE 1536
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
---> lets check out what the partitions look like:
root@vmguest:~# mount
/dev/mapper/vmguest-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/vda1 on /boot type ext2 (rw)
---> Roll for sanity (i.e. check your partions before getting them wrong):
root@vmguest:~# fdisk /dev/vda
Command (m for help): p
Disk /dev/vda: 53.7 GB, 53687091200 bytes
16 heads, 63 sectors/track, 104025 cylinders, total 104857600 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: 0x000702ec
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 499711 248832 83 Linux
/dev/vda2 499712 104857599 52178944 5 Extended
/dev/vda5 501760 104857599 52177920 8e Linux LVM
Command (m for help): q
---> If you feel lucky, extend the physical volume on the partion that has the lvm
root@vmguest:~# pvresize /dev/vda5
Physical volume "/dev/vda5" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
root@vmguest:~# pvdisplay
--- Physical volume ---
PV Name /dev/vda5
VG Name vmguest
PV Size 49.76 GiB / not usable 2.81 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 12738
Free PE 2560
Allocated PE 10178
PV UUID wZlP0L-UIcw-qfHM-QMga-HL0G-sYkU-f3zfz8
---> If you still feel lucky, extend the logical volume on the partion that has the lvm
root@vmguest:~# lvextend /dev/vmguest/root /dev/vda5
Extending logical volume root to 43.76 GiB
Logical volume root successfully resized
root@vmguest:~#
root@vmguest:~# lvdisplay
--- Logical volume ---
LV Name /dev/vmguest/root
VG Name vmguest
LV UUID syduCb-TDzz-Bow8-FonV-ePg7-Zfz8-2VDdvy
LV Write Access read/write
LV Status available
# open 1
LV Size 43.76 GiB
Current LE 11202
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Name /dev/vmguest/swap_1
VG Name vmguest
LV UUID a6ibbL-70hx-6tFN-2ygT-yOjg-8hxk-saioHr
LV Write Access read/write
LV Status available
# open 2
LV Size 6.00 GiB
Current LE 1536
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
root@vmguest:~#
---> If that worked, why not try to resize /?
root@vmguest:~# resize2fs /dev/vmguest/root
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/vmguest/root is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 3
The filesystem on /dev/vmguest/root is now 11470848 blocks long.
--- ok now only 75% full, not 97%!------------
root@vmguest:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vmguest-root 43G 31G 11G 75% /
udev 3.0G 4.0K 3.0G 1% /dev
tmpfs 598M 260K 597M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.0G 0 3.0G 0% /run/shm
/dev/vda1 228M 158M 59M 73% /boot
Nice, pat yourself on the back.