X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fsystem%2Fadd_swap_mount.sh;h=dc14f84e31ac97bc4ed80c65677cf68e86003392;hb=87e48192f16d2d8f36c9a44d436b29f76dfa7bc3;hp=2577f44ae4f653164dbd109d4e3449d6b75c417f;hpb=b1436548fd05e1f83162f50c57285e7e0b53992c;p=feisty_meow.git diff --git a/scripts/system/add_swap_mount.sh b/scripts/system/add_swap_mount.sh index 2577f44a..dc14f84e 100644 --- a/scripts/system/add_swap_mount.sh +++ b/scripts/system/add_swap_mount.sh @@ -1,24 +1,54 @@ #!/bin/bash # auto-find the scripts, since we might want to run this as sudo. -export WORKDIR="$( \cd "$(\dirname "$0")" && /bin/pwd )" # obtain the script's working directory. -source "$WORKDIR/../core/launch_feisty_meow.sh" - -#hmmm: should be able to add a new swap drive if desired. - -#hmmm: why all the hard-coded paths below? - -/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=2048 -test_or_die "creating swap file" - -/bin/chmod 600 /var/swap.1 -test_or_die "setting swap file permissions" - -/sbin/mkswap /var/swap.1 -test_or_die "formatting swap file as swap partition" - -/sbin/swapon /var/swap.1 -test_or_die "enabling new swap partition" +export THISDIR="$( \cd "$(\dirname "$0")" && /bin/pwd )" # obtain the script's working directory. +export FEISTY_MEOW_APEX="$( \cd "$THISDIR/../.." && \pwd )" +source "$FEISTY_MEOW_APEX/scripts/core/launch_feisty_meow.sh" + +if [[ $EUID != 0 ]]; then + echo "This script must be run as root or sudo." + exit 1 +fi + +# optional parameters: the instance number of the swap file (best as a number), +# and the size of the swap file to add. +SWAP_INSTANCE="$1"; shift +SWAP_SIZE="$1"; shift + +if [ "$SWAP_INSTANCE" == "--help" ]; then + echo "\ +$(basename $0): +This script will add a swap partition for Linux that uses hard drive space for +swap memory. This increases the amount of available memory on RAM constrained +systems. It accepts two parameters: (1) the instance of the swap file, which +should be a small number not already used for a swap partition, and (2) the +size of the swap file in megabytes." + exit 0 +fi + +# if the swap instance variable is already set, then we'll use it. +# this allows multiple different swap partitions to be added. +if [ -z "$SWAP_INSTANCE" ]; then + SWAP_INSTANCE=1 +fi + +# allow the amount of swap space to be determined from outside the script. +# this is measured in megabytes. +if [ -z "$SWAP_SIZE" ]; then + SWAP_SIZE=2048 +fi + +/bin/dd if=/dev/zero of=/var/swap.${SWAP_INSTANCE} bs=1M count=${SWAP_SIZE} +exit_on_error "creating swap file" + +/bin/chmod 600 /var/swap.${SWAP_INSTANCE} +exit_on_error "setting swap file permissions" + +/sbin/mkswap /var/swap.${SWAP_INSTANCE} +exit_on_error "formatting swap file as swap partition" + +/sbin/swapon /var/swap.${SWAP_INSTANCE} +exit_on_error "enabling new swap partition" free