Partitioning is a means to divide a single hard drive into many logical drives. A partition is a contiguous set of blocks on a drive that are treated as an independent disk. A partition table is an index that relates sections of the hard drive to partitions.

Definitions

Partition Naming

   /dev/hda1      The 1st primary partition
   /dev/hda2      The 2nd primary partition
   /dev/hda3      The 3rd primary partition
   /dev/hda4      An extended partition
   /dev/hda5      The 1st logical partition
   /dev/hda6      The 2nd logical partition
   etc...

In this example, /dev/hda4 is the extended partition. All the logical partitions reside on an extended partition.

LVM

If you're not sure what size to make your partitions, using a small ext3 /boot partition and lvm2-based partitions for the rest can be a good idea. The advantage of lvm is that it makes resizing more practical. In the DebianInstaller partition manager each logical volume is treated as if it were a disk in which you make partitions.

I assign a single partition per logical volume. Then when I want to increase the size of a partition, I umount the donor and recipient partitions, resize (shrink) the donor partition, resize (shrink) the donor logical volume, resize (grow) the recipient logical volume, resize (grow) the recipient partition, and finally remount. This may sound the same as with e2fsresize on regular partitions, but it's not.

Ext2/3 partition cannot be moved, so you can only gain space by shrinking the preceding partition, deleting the partition to grow, and recreating it larger, or by removing the following partition, increasing the size of the current partition, and recreating the following partition. With lvm2 the space comes from whatever logical volume you choose to shrink. lvm handles the details of where on the disk the partition blocks actually are.

Good Luck! -DD

See Also