Skip to content

Instantly share code, notes, and snippets.

@mjf
Last active December 28, 2015 17:49
Show Gist options
  • Save mjf/7538490 to your computer and use it in GitHub Desktop.
Save mjf/7538490 to your computer and use it in GitHub Desktop.
partcomp - Partition Computing for Kickstart
#! /bin/sh
# partcomp - Partition Computing for Kickstart
# Copyright (C) 2013 Matous J. Fialka, <http://mjf.cz/>
# Released under the terms of The MIT License
RAM=${1:-4096}
HDD=${2:-512000}
SWAPFS_MAX=32768
SWAPFS_MIN=256
SWAPFS_MUL_BOUNDARY=2048
SWAPFS_MUL_BOUNDARY_LE_MUL=2
SWAPFS_MUL_BOUNDARY_GT_ADD=2048
FSPCT_MAX=20
FS_MAX=5120
HOMEFSPCT_MAX=5
HOMEFS_MAX=1024
VARLOGFSPCT_MAX=10
VARLOGFS_MAX=2048
TMPFSPCT_MAX=10
TMPFS_MAX=10240
bootfs=384
if [ ${RAM} -le ${SWAPFS_MAX} ]
then
if [ ${RAM} -le ${SWAPFS_MUL_BOUNDARY} ]
then
if [ ${RAM} -le $((${SWAPFS_MIN}/2)) ]
then
swapfs=${SWAPFS_MIN}
else
swapfs=$((SWAPFS_MUL_BOUNDARY_LE_MUL*RAM))
fi
else
swapfs=$((RAM+SWAPFS_MUL_BOUNDARY_GT_ADD))
fi
else
swapfs=${SWAPFS_MAX}
fi
fs=$((HDD/100*FSPCT_MAX))
if [ ${fs} -gt ${FS_MAX} ]
then
fs=${FS_MAX}
fi
homefs=$((HDD/100*HOMEFSPCT_MAX))
if [ ${homefs} -gt ${HOMEFS_MAX} ]
then
homefs=${HOMEFS_MAX}
fi
varlogfs=$((HDD/100*VARLOGFSPCT_MAX))
if [ ${varlogfs} -gt ${VARLOGFS_MAX} ]
then
varlogfs=${VARLOGFS_MAX}
fi
varlogauditfs=128
tmpfs=$((HDD/100*TMPFSPCT_MAX))
if [ ${tmpfs} -gt ${TMPFS_MAX} ]
then
tmpfs=${TMPFS_MAX}
fi
varfs=$((HDD-tmpfs-varlogauditfs-varlogfs-homefs-fs-swapfs-bootfs))
cat <<- EOT
RAM : ${RAM}
HDD : ${HDD}
/boot : ${bootfs}
swap : ${swapfs}
/ : ${fs}
/home : ${homefs}
/var : ${varfs} (~$((100*varfs/HDD))%)
/var/log : ${varlogfs}
/var/log/audit : ${varlogauditfs}
/tmp : ${tmpfs}
EOT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment