Disk partitioning is the creation of one or more storage regions (called partitions), so that each region can be managed separately. It is typically the first step of preparing a newly installed disk, before any file system is created. The disk stores the information about the partitions' locations and sizes in an area known as the partition table that the operating system reads before any other part of the disk. Each partition then appears to the operating system as a distinct "logical" disk that uses part of the actual disk.
The following software allows working on disk partitions:
Parted - command-line disk partition manipulator
- Primary partition - A disk can have up to 4 primary partitions. It cannot have more that 4 due to limitations of the disk primary partition table. To get around this limitation, an extended partition may be used.
- Extended partition - A special primary partition that is subdivided into logical partitions. There can be no more than 1 extended partition on a disk.
- Logical partition - A partition residing on an extended partition
/dev/sda1 The 1st primary partition /dev/sda2 The 2nd primary partition /dev/sda3 The 3rd primary partition /dev/sda4 An extended partition /dev/sda5 The 1st logical partition /dev/sda6 The 2nd logical partition etc...
In this example, /dev/sda4 is the extended partition. All the logical partitions reside on an extended partition.
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 is 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.
After partitioning, the partition numbers of the unaltered partitions may change. For example, a partition that used to be identifed as /dev/sda7 may change to /dev/sda6 after the deletion of a partition. In this case, a number of configuration files needs to edited:
The fstab file needs to be altered so that the swap partition and the various static mount points will work properly
If the partition number for the swap partition was altered, the /etc/initramfs-tools/config.d/resume file also needs to be edited. This file indicates the partition used for hibernation; the swap partition is generally used for this purpose. update-initramfs -u needs to be ran afterwards to update the initramfs image.
http://staff.washington.edu/trav/linux/lost_partition.html Recovering a Lost Partition Table