Monday, August 3, 2009

Add more swap space to a running Linux system

Today I was trying to install Oracle XE to a Centos 5 installation using this guide. While installing the packages i noticed that the Oracle XE Database was unable to install. The error message was quite clear:

This system does not meet the minimum requirements for swap space.  Based on
the amount of physical memory available on the system, Oracle Database 10g
Express Edition requires 1024 MB of swap space. This system has 509 MB
of swap space.  Configure more swap space on the system and retry the installation.
error: %pre(oracle-xe-univ-10.2.0.1-1.0.i386) scriptlet failed, exit status 1
error:   install: %pre scriptlet failed (2), skipping oracle-xe-univ-10.2.0.1-1.0
My solution was to adding some temporary swap space to this system, which is really easy to do:

Step 1. Create an empty file called /swapfile from about 600MB

root@bootux:~# dd if=/dev/zero of=/swapfile bs=1024000 count=600
600+0 records in
600+0 records out
614400000 bytes (614 MB) copied, 5.85153 seconds, 105 MB/
Step 2. Format the new file to make it a swap file
root@bootux:~# mkswap /swapfile
Setting up swapspace version 1, size = 614395 kB
Step 3. Enable the new swapfile. Only the swapon command is needed, but with the free command you can clearly see the swap space is made available to the system.
root@bootux:~# free -m | grep Swap
Swap:          509          0        509
root@bootux:~# swapon /swapfile
root@bootux:~# free -m | grep Swap
Swap:         1095          0       1095
Installation can now continue :)