Filesystem labels can be used to specify a partition before its respective device number is known and is accessible through a fixed mountpoint name. This becomes essential when the devices are reordered. You would need to manually adjust /etc/fstab and boot loader configuration files. Even changing an IDE drive from master to slave requires this.

When mounting a device, all partitions (that would appear in /proc/partitions) are probed for the filesystem label. It will postload modules if necessary. This even works when the kernel mounts the root partition. Of course it is best to have the code for the root filesystem in the kernel.

The command to give a filesystem label is fs dependant. Some fs also can only be assigned a label if they are not mounted. Reiser3 and XFS are known to require the unmounted state. Ext2 and Ext3 do not require unmount, but that should not make you preferring them. Here are the different fs commands for a fictive home partition:

reiserfstune -l home /dev/hdc1
xfs_admin -L home /dev/hdc1
e2label /dev/hdc1 home

If your root fs is one of those who can only be tuned in unmounted or read-only state, you will need to boot into another system, i.e. rescue CD, live CD, another Linux on disk, etc.

After the filesystem(s) have been given a label, you could mount them with e.g.:

mount LABEL=home /home

The same applies to fstab where our example home partition entry could now look like this:

LABEL=home /home xfs defaults,usrquota,grpquota 0 0