Install Debian Jessie on your server

If you rented a virtual server at your favorite hosting company then you already have a ready installation of Debian Jessie. Feel free to skip this page →

Basic installation and partitioning

Installing Debian Jessie is easy. Get a boot medium from the Debian website. The smaller network installer is sufficient – it will download all required packages directly from the internet. Make sure you choose ‘English’ as the installation language. If you have trouble with the server you will more likely find help when google’ing for english error messages.

The only part that takes some patience is when it comes to partitioning your disk. When the installation asks how to partition choose “Manual”. Throughout this tutorial you will store your users’ emails in the /var/vmail partition where the actual emails are stored. The MySQL database will live in /var/lib/mysql and is usually pretty small even for a large number of email accounts. Log files live in /var/log.

So my recommendation is:

  • / (10 GB, ext4)
  • /tmp (1 GB, ext4, optional but recommended)
  • swap (1 GB)
  • /var/vmail (the remaining space – the more the better, ext4, mounted with the noatime option)

(If you have worked with LVM – the logical volume manager – I would recommend you use it. You will gain extra flexibility later if you want to move or enlarge your mail partition.)

Step-by-step installation guide

If you feel uneasy installing Debian then just follow these steps and your installation will be done in a few minutes. After booting from the installation medium you will be greeted by…

ispmail-jessie-install-_01

Always choose ‘English’ as your installation language. As I said it will be easier to get help on the internet if you get stuck.

 

ispmail-jessie-install-_02

Choose your geographical location. This is mostly important for the time zone setting.

ispmail-jessie-install-_03

Choose the keymap that matches the layout of your keyboard.

ispmail-jessie-install-_04

The installer prepares further packages that are needed for the installation process:

ispmail-jessie-install-_05

Some system administrators consider this the most complicated step. Choosing a host name. 🙂

ispmail-jessie-install-_06

The domain of the server is independent from your mail domains. Just choose any of your domains. You should create a DNS record for that name later.

ispmail-jessie-install-_07

Think of a good password for the “root” user. You do not have to fear that someone from the internet will be able to access that account. SSH is by default configured to only allow root access from the console or using public key authentication.

ispmail-jessie-install-_08

Debian has adopted Ubuntu’s habit to avoid direct SSH logins as “root”. So you are asked for the realname, username and password of an aditional user. I will call this user “johndoe” in this guide but of course you can call it anything you like.

ispmail-jessie-install-_09

Depending on the country you chose you may get asked which time zone you are in.

ispmail-jessie-install-_10

Now it is time to partition your disk. Choose “Manual”.

ispmail-jessie-install-_11

Select the disk you want to use. In my example I just have one disk called “sda”:

ispmail-jessie-install-_12

On a fresh system there are no partitions. So the installer will ask you to create a new partition table:

ispmail-jessie-install-_13

Select the line reading “FREE SPACE” and press Enter:

ispmail-jessie-install-_14

Create a new partition:

ispmail-jessie-install-_15

The first partition is used for the actual operating system. Make it 10 GB:

ispmail-jessie-install-_16

The type is “Primary”. (Historically you can have four primary partitions. If you need more then the first three are primary and further partitions are logical. We just need four partitions so you can create all of type “primary”.)

ispmail-jessie-install-_17

The new partition will be created at the beginning of the free space:

ispmail-jessie-install-_18

Make sure that the root (“/”) partition is set to bootable.

ispmail-jessie-install-_19

Your first partition is created. Now choose “FREE SPACE” again:

ispmail-jessie-install-_20

Create another new partition…

ispmail-jessie-install-_21

This is the “/tmp” partition. Make it 1 GB large:

ispmail-jessie-install-_22

It is of type “Primary” as usual:

ispmail-jessie-install-_23

…at the beginning of the free space…

ispmail-jessie-install-_24

There are no special settings required. Just choose “/tmp” as themount point and you are done…

ispmail-jessie-install-_25

Again choose “FREE SPACE”…

ispmail-jessie-install-_26

Create another partition for swap space…

ispmail-jessie-install-_27

1 GB is more than enough…

ispmail-jessie-install-_28

The type is “Primary” as usual…

ispmail-jessie-install-_29

…at the beginning of the remaining space…

ispmail-jessie-install-_30

As type choose “swap area”:

ispmail-jessie-install-_31

Now for the final partition in /var/vmail that will later contain the actual emails. We will grant it all the remaining space. So choose “FREE SPACE” one last time…

ispmail-jessie-install-_32

Create a new partition…

ispmail-jessie-install-_33

The installer suggests to use all the remaining space. So press Enter to confirm that…

ispmail-jessie-install-_34

“Primary”…

ispmail-jessie-install-_35

Set the mount point to “/var/vmail” and add the mount option “noatime”. noatime means “no access time”. Without this option a file system will record any access to a file. This is not necessary to operate a mail server and will spare one file system access per email which slightly speeds up the disk access…

ispmail-jessie-install-_36

That’s it. All partitions are now created. Finish the partitioning…

ispmail-jessie-install-_37

The installer shows an overview again. If it looks similar on your screen then choose “Yes”…

ispmail-jessie-install-_38

After the installer created the partitions it will install basic packages and install the base system.

ispmail-jessie-install-_39

Depending on your geographical location you will get asked which download server you would like to use. Usually you can just confirm the suggested default…

ispmail-jessie-install-_40

Unless you need a proxy to access the download servers on the internet you can leave this blank…

ispmail-jessie-install-_41

The installer will get information from the Debian download server and download further packages…

ispmail-jessie-install-_42

Participating in the package survey (also known as popcon) is purely voluntary. It records which packages you install to help Debian developers assess which packages are commonly used and deserver special attention…

ispmail-jessie-install-_43

Now you are getting asked which groups of packages to install. All you need is an “SSH server” (to be able to log in to the system later) and the “standard utilities”…

ispmail-jessie-install-_44

Your selected packages are getting downloaded and installed…

ispmail-jessie-install-_45

To make your system bootable the installer will write a boot loader into the beginning of your first disk…

ispmail-jessie-install-_46

The choice depends on your system. Usually it is the first disk that you use to install the boot loader…

ispmail-jessie-install-_47

Nearly done…

ispmail-jessie-install-_48

That is it. The installation is done and by selecting “Continue” your system will reboot.

ispmail-jessie-install-_49

7 thoughts on “Install Debian Jessie on your server”

  1. Hi Cristoph. Congrats for this new ISPMail tutorial! Can you tell me why there is no need for a /boot partition in Debian Jessie? Thanks.

    1. Christoph Haas

      Thanks. The /boot partition was required ages ago when boot loaders were not capable of dealing with newer file systems (e.g. ext4) or with complicated setups like encrypted root partitions or LVM (logical volume manager). Nowadays the initrd (initial RAMdisk) contains everything that is required to mount the root partition and boot from it.

      In my experience the /boot partition was often too small. And when automatic updates installed new kernels it sometimes happened that the old kernels were not removed from /boot and caused the partition to run full.

  2. Not sure how you got
    That’s it. All partitions are now created. Finish the partitioning…
    I don’t see the option /var/vmail Do we need to creat this manually ?

    1. @Babu: you probably found out by now.
      It says ‘Set the mount point to “/var/vmail” ..’. The most used mount points are in the drop down list, but you can also give a manual entry (it could be the option at the bottom of the drop down list).

  3. I was reading this article (https://serverfault.com/questions/190625/what-file-system-is-better-for-a-linux-mail-server) on Server Fault and immediately thought about this tutorial and what you would recommend. I must say I’m a bit disappointed with you chosing ext4 for all partitions without explaining why these would be better than Reiser4 (old) or XFS. But then again, perhaps that’s also not the goal of this tutorial.

    It would be nice though to elaborate on which filesystem would be best or whether or not to use external storage and redundancy (i.e. several mail servers requiring access to the same storage).

    1. Christoph Haas

      @Tom: I wouldn’t say that I have chosen the best components in every case. But in fact ext4 would be my favorite choice. The future of ReiserFS is a bit uncertain in my opinion. And people started using it because former ext file systems did not have usable journaling. I was indeed using XFS for a while and users did not really notice a big difference. But when it came to purging large directories (IMAP folders) it took significantly longer. That was when I learned that XFS is horribly slow at deleting files. Besides there were some details you had to consider like explicitly defining UUIDs when taking snapshots – but I honestly don’t remember all the details. In the end it turned out that ext4 was a solid choice.

      The most important piece of software to consider here is Dovecot because it has to deal with millions of small and large files. So you might also want to read what the Dovecot developers say: https://wiki.dovecot.org/FileSystems

      External storage is fine but be aware that the large number of files require a lot of IOPS. For many reasons NFS is a bad choice here (locking, latency, authentication). iSCSI may be okay. FibreChannel is really good. If you want to scale horizontally I would suggest using different servers and just use their local disks. So users would have to access a certain mail server – or the load balancer knows where to forward them. If you are worried about redundancy I would probably prefer DRBD and mirror the data to another disk. Or maybe VMware (even the free ESXi hypervisor) may be good so that you have a fast local (or FibreChannel) disk storage and can use snapshots for backups or mount a virtual disk to another mail server if one crashes.

      If you are looking for such large-style ISP scenarios then I can also recommend the #postfix IRC channel where a couple of sysadmins are living. One of them manages a very large environment at an indian ISP.

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top