Partitions setup

How to setup the partitions are a key point in Linux installation process.

There are many school regarding that:

  • More partitions will bring more control and avoid memory leaks to spread out
  • Less partitions are easier to manage


In all cases

In all cases, you need at least 2 partitions:

  • 1 data partition called root (/)
  • 1 temporary partition called "swap". This is the temporary data of the system.


The swap size depends on your RAM:

  • Up to 4 Go RAM: double your RAM value
  • 8 to 16 Go RAM: put the same amount as your RAM
  • more than 16 Go RAM: that's hard to evaluate. 16 Go of swap is already a lot! That should be enough in all cases.


Desktop installation

For a desktop installation you can use the default partitionning table. This is generally good enough.

Some developers - like me - are used to put "/opt" in a dedicated space.


This is my partition table:

File System Mount point Size Type Flags
fat32 /boot 150 Mo primary boot
ext4 / 50 Go primary
swap 8 Go primary
ext4 /home 400 Go logical


Server installation

Unlike a workstation, it's quite important to setup some partitions on a server. This will avoid to have to many logs or temp files - for instance. Then you'll have to monitor regulary the matching mount points to check the available space.


This is how I setup my servers:

File System Mount point Size Type
ext4 / 50 Go primary
swap 8 Go primary
ext4 /home 424 Go primary
ext4 /var/log 2 Go logical
ext4 /tmp 4 Go logical


Advanced

How to know the current hardware and partitions?

You can always have a list of available hardware and partitions by checking-out /dev.

ls /dev/

You'll see some output.

>> Hardware = letter

>> Partition = number


  • /dev/sda
    • /dev/sda1
    • /dev/sda2
    • /dev/sda3
  • /dev/sdb
    • /dev/sdb1
  • /dev/sdc
    • /dev/sdc1
    • /dev/sdc2


As an alternative, you can run the fdisk command:

sudo fdisk -l


Then you'll see more details like:

Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ea115

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   233390079   116694016   83  Linux
/dev/sda2       233392126   250068991     8338433    5  Extended
/dev/sda5       233392128   250068991     8338432   82  Linux swap / Solaris

Disk /dev/sdb: 4043 MB, 4043309056 bytes
255 heads, 63 sectors/track, 491 cylinders, total 7897088 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00845e69

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048     7897087     3947520    c  W95 FAT32 (LBA)


How to know the current mount points

On *Ubuntu Desktop all the devices are automatically mounted. This is not the case on the servers!


To check the list of current mount points:

sudo mount