Writing system images

From Halon, SMTP software for hosting providers
Jump to: navigation, search

The Halon SMTP software is shipped as software images; that is, a complete clone of a system disk. Installing it is as simple as downloading the raw image and writing it to a disk (preferably RAID) or flash memory (USB stick or CF). After the installation, please see the getting started page.

Some platform, such as VMware (OVF), Hyper-V and Amazon EC2, have prepared system images which makes the installation very simple.

For servers and cloud platforms for which there's no prepared image, there are two ways of writing the system image onto their disks: using a live CD, or another computer.

Using a live CD on the actual server

If it for some reason is impossible or inconvenient to write the disk image directly (might be the case with some cloud computing providers), you can boot another (Linux/BSD) operating system installer or Live CD and write the disk from there. Run the corresponding command (depending on live CD) where you substitute the disk name (wd0 in the OpenBSD case) with whatever your disk is called (sd0 for the first SCSI disk in the OpenBSD case) and the URL with the appropriate version and flavour (serial/video, architecture, etc).


wget -O - http://dl.halon.se/vsp/halon-VERSION.img.gz | zcat | dd of=/dev/sdb bs=16k


ftp -V -o - http://dl.halon.se/vsp/halon-VERSION.img.gz | gzcat | dd of=/dev/ada1 bs=16k


ftp -V -o - -m http://dl.halon.se/vsp/halon-VERSION.img.gz | gzcat | dd of=/dev/rwd0c bs=16k

Using another computer

Sometimes the most convenient way of getting the software onto a server is to connect the server's disk into another computer (perhaps using a SAS/SATA-to-USB adapter), by following the guides below depending on the other computer's operating system.


  1. Connect the disk
  2. Run as root zcat halon-VERSION.img.gz | dd bs=16k of=/dev/sdb

Note that the path to the file can be relative, and that sdb should be your inserted disk

Mac OS X

  1. Connect the disk (USB stick, CompactFlash, etc)
  2. Start "Disk Utility"
    • Select the disk
    • Press "Unmount" (if possible)
    • Press "Info" to find the "Disk Identifier" something like disk1
  3. Start "Terminal"
    • Possibly "cd" to the location of the system image file, or put the file in our user's home folder
    • Run gzcat halon-VERSION.img.gz | sudo dd bs=16k of=/dev/disk1

Terminal only

  1. Start the "Terminal"
  2. Possibly "cd" to the location of the system image file, or put the file in our user's home folder
  3. Run diskutil list
  4. Connect the disk (USB stick, CompactFlash, etc)
  5. Run diskutil list again, and notice the new device that appears (e.g. /dev/disk1)
  6. Run diskutil unmountDisk /dev/disk1 (if it fails, use the "Disk Utility" above)
  7. Run gzcat halon-VERSION.img.gz | sudo dd bs=16k of=/dev/disk1

Note that "sudo" is needed on 10.8 (Mountain Lion) or later, which will make the system ask for your user's (or administrator) password.

Microsoft Windows

Microsoft Windows does not ship tools for uncompressing .gz files, however free tools are available such as 7-Zip. The uncompressed file should be written to a block device (such as a USB stick or CF disk) using Image Writer for Windows, which provides a graphical way of doing so.

Choosing disks

For most bare-metal installations, we recommend installing the software image onto a hard drive/SSD, and use the same drive as storage partition medium. Unless you're planning to use the system in a queue-less in-line delivery or proxy mode, please use RAID. Preferably "real", battery-powered RAID, if you care about performance. We do however support LSI MegaRAID and GEOM RAID compatible hybrid/software RAID adapters, which is found in many Dell servers.

Important notes about USB sticks and CF cards

If you want to separate the system and storage partition by installing the system partition on a smaller, flash memory, this is possible too. Keep in mind however, that although the system partition is read-only during normal operation, the quality of the flash memory is very important:

  • Choose a system partition disk medium with long read endurance. Writes are infrequent (swap and scratch files are usually stored on a separate storage disk), but many cheap memories (especially USB sticks) suffers from "read disturb" where many read operations eventually destroys the medium[1][2]. High-quality SLC or MLC flash[3] with ECC is recommended. It's also possible to install the system on a normal/flash hard disk.
  • If running the system partition on a flash memory, you need to add a separate storage disk which supports heavy write operations without breaking (unlike most CF cards and USB sticks) to hold scratch files, mail data, logs, graphs, the swap, etc.
  • Make sure that the disk you're planning to use for storage does not have any pre-existing partitions as you otherwise might be unable to format/use the storage disk from inside the appliance.