Use a volume manager

Ubuntu 9.10 is here. In trying to upgrade my desktop I was informed

Not enough free disk space
The upgrade is now aborted. The upgrade needs a total of 1116M free space on disk '/usr'. Please free at least an additional 797M of disk space on '/usr'. Empty your trash and remove temporary packages of former installations using 'sudo apt-get clean'.

Hmm, ok. All I need to do is resize my partition. Fortunately I configured my system to use LVM and have a separate volume for /usr, with free space in the volume group. With online resizing, there's no unmounting, no single user mode, no hassle...

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg0-root 1008M  753M  205M  79% /
/dev/md0              989M  103M  836M  11% /boot
/dev/mapper/vg0-tmp  1008M   41M  916M   5% /tmp
/dev/mapper/vg0-usr   4.0G  3.5G  305M  93% /usr
/dev/mapper/vg0-var   7.9G  703M  6.8G  10% /var
/dev/mapper/vg0-home  7.9G  4.6G  3.0G  61% /home

Two simple commands:

sudo lvextend -L +1024M vg0/usr
  Extending logical volume usr to 5.00 GB
  Logical volume usr successfully resized

sudo resize2fs /dev/mapper/vg0-usr
  resize2fs 1.41.4 (27-Jan-2009)
  Filesystem at /dev/mapper/vg0-usr is mounted on /usr; on-line resizing required
  old desc_blocks = 1, new_desc_blocks = 1
  Performing an on-line resize of /dev/mapper/vg0-usr to 1310720 (4k) blocks.
  The filesystem on /dev/mapper/vg0-usr is now 1310720 blocks long.

That's better. Let the upgrade continue!

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg0-root 1008M  753M  205M  79% /
/dev/md0              989M  103M  836M  11% /boot
/dev/mapper/vg0-tmp  1008M   41M  916M   5% /tmp
/dev/mapper/vg0-usr   5.0G  3.5G  1.3G  74% /usr
/dev/mapper/vg0-var   7.9G  703M  6.8G  10% /var
/dev/mapper/vg0-home  7.9G  4.6G  3.0G  61% /home