If you experience any difficulty in accessing content on our website, please contact us at 1-866-333-8917 or email us at support@hudsonvalleyhost.com and we will make every effort to assist you.
Coming from the Windows world of C: and D:, I was initially flummoxed by the various partitions in the Linux world. I remember abandoning my first Linux Mint desktop installation when it asked me to allocate space for various partitions such as swap and boot. I think there may be others who faced a similar situation. I think this article will give you a brief idea of the various partitions on Linux.
Partitioning is a way to divide a single hard drive into many logical drives. A partition is treated as an independent drive and refers to a contiguous set of blocks on the said drive. Paritions host a certain kind of file system which is a numeric code associated with the partition type. For e.g., a Linux swap partition has the code 0x82. A partition table is an index that identifies how the hard drive is split into the different partitions.
Primary partitions are the initial partitions installed as part of the boot sector (typically 512 bytes). Logical partitions are sub partitions of the primary partitions which must be contiguous. The primary partition that contains logical partitions is called an extended partition.
There are two types of partition tables – Master Boot Record (MBR) and GUID Partition Table (GPT). The former is something you may have heard from the times of MS-DOS, GPT was introduced in the late 90s to overcome the limitations inherent in MBR.
Partitioning using MBR limited partitions to only 4 and each partition could not exceed 2TB in size. The number 4 may seem sufficient, but causes problems when multiple OS needs to be installed with each Operating system requiring a primary partition of its own. Further, MBR has data integrity issues as it is a single data structure could be damaged by hardware failure or carelessness. Following the primary partitions, additional logical partitions are defined in a linked-list structure. If one partition is damaged, the remaining logical partitions cannot be accessed. There are no inbuilt error-detection capabilities, so a faulty MBR is hard to detect.
GPT was defined as part of Intel’s Extensible Firmware Interface (EFI) which later evolved into the Unified EFI (UEFI) standard. GPT uses 64-bits for logical block addresses, twice of what MBR uses, exponentially increasing supported partition sizes to 8 ZB (8,600,000,000 TB). GPT is more reliable as it uses two locations for storing its data structures – at the beginning and at the end of the disk. This improves the chances of reliability in case something fails. You can now define 128 partitions though this can be changed if the software used to create the partitions allows it. Finally, GPT allows you to define partitions in a way that is human readable. As an administrator, you can define different file systems to be on different partitions that can be easily identified such as /home, /tmp and /boot
Having multiple partitions on your disk can greatly improve the efficiency of the disk. Based on the contents and average size of your files, you can choose an optimum block size for the partition. For e.g., if you have a large number of small files lesser than a kilobyte in size, having a partition with 4096 bytes as the block size means that storing each file wastes about 3KB.
To list the partitions on your system, use the command
# fdisk -l
OS manuals generally recommend creating the following partitions
The recommended swap size is more of a function of system memory workload than of the actual RAM available to the system.
System RAM |
Recommended SWAP space |
<= 2GB |
2 times the amount of RAM |
Between 2 and 8 GB |
Equal to the RAM size |
Greater than 8GB |
At least 4GB of RAM |
Since swap is used to store virtual memory, it is recommended to allocate the swap partition on the fastest device. If you had a HDD and a SSD connected to the system, chose the SSD device to setup the swap partition
You can also create separate partitions for other folders such as /tmp, /usr and /var. A separate partition for these folders is useful to prevent bad scripts from eating up disk space or placing your entire file system under a denial of service attack.