swap mount additions in revamp
[feisty_meow.git] / scripts / system / add_swap_mount.sh
1 #!/bin/bash
2
3 # auto-find the scripts, since we might want to run this as sudo.
4 export WORKDIR="$( \cd "$(\dirname "$0")" && /bin/pwd )"  # obtain the script's working directory.
5 source "$WORKDIR/../core/launch_feisty_meow.sh"
6
7 if [[ $EUID != 0 ]]; then
8   echo "This script must be run as root or sudo."
9   exit 1
10 fi
11
12 # optional parameters: the instance number of the swap file (best as a number),
13 # and the size of the swap file to add.
14 SWAP_INSTANCE="$1"; shift
15 SWAP_SIZE="$1"; shift
16
17 if [ "$SWAP_INSTANCE" == "--help" ]; then
18   echo "\
19 This script will add a swap partition for Linux that uses hard drive space for
20 swap memory.  This increases the amount of available memory on RAM constrained
21 systems.  It accepts two parameters: (1) the instance of the swap file, which
22 should be a small number not already used for a swap partition, and (2) the
23 size of the swap file in megabytes."
24   exit 1
25 fi
26
27 # if the swap instance variable is already set, then we'll use it.
28 # this allows multiple different swap partitions to be added.
29 if [ -z "$SWAP_INSTANCE" ]; then
30   SWAP_INSTANCE=1
31 fi
32
33 # allow the amount of swap space to be determined from outside the script.
34 # this is measured in megabytes.
35 if [ -z "$SWAP_SIZE" ]; then
36   SWAP_SIZE=2048
37 fi
38
39 /bin/dd if=/dev/zero of=/var/swap.${SWAP_INSTANCE} bs=1M count=${SWAP_SIZE}
40 test_or_die "creating swap file"
41
42 /bin/chmod 600 /var/swap.${SWAP_INSTANCE}
43 test_or_die "setting swap file permissions"
44
45 /sbin/mkswap /var/swap.${SWAP_INSTANCE}
46 test_or_die "formatting swap file as swap partition"
47
48 /sbin/swapon /var/swap.${SWAP_INSTANCE}
49 test_or_die "enabling new swap partition"
50
51 free
52