#!/bin/sh # see also http://www.altlinux.org/Autoinstall mem="$(sed -n '/^MemTotal/s/[^0-9]//gp' /proc/meminfo)" # in kB max_disk="$(sort -rn /sys/block/[hs]d*/size | head -1)" # in 512-byte sectors # feel free to suggest better defaults if [ "$mem" -le 262144 ]; then swap="$[ 2*$mem ]" elif [ "$mem" -le 524288 ]; then swap="$mem" else swap=1048576 fi # don't do RAID in a VM, reduce swap to a minimum if grep -qE '(101300b8)|(80eebeef)|(14ad0405)' /proc/bus/pci/devices; then methods='plain' swap=131072 else methods='raid plain' fi # less than 10G, choose 1G partitions if [ "$max_disk" -le 20971520 ]; then base=2097152 elif [ "$max_disk" -le 52428800 ]; then base=4194304 else base=20971520 fi # EVMS deals with sectors swap="$[ 2*$swap ]" base="$[ 2*$base ]" # The Plan: # - provide a few more or less equivalent server partitioning profiles # cat > /var/cache/alterator/vm-profile.scm << _EOF_ ((var (title . "Server (/var holds most space)") (action . trivial) (actiondata ("swap" (size . "$swap") (fsim . "SWAPFS") (methods $methods)) ("/" (size "$base" . "$base") (fsim . "Ext2/3") (methods $methods)) ("/var" (size "$base" . #t) (fsim . "Ext2/3") (methods $methods)))) (srv (title . "Server (/srv holds most space)") (action . trivial) (actiondata ("swap" (size . "$swap") (fsim . "SWAPFS") (methods $methods)) ("/" (size "$base" . "$base") (fsim . "Ext2/3") (methods $methods)) ("/var" (size "$base" . "$base") (fsim . "Ext2/3") (methods $methods)) ("/srv" (size "$base" . #t) (fsim . "Ext2/3") (methods $methods)))) (home (title . "Server (/home holds most space)") (action . trivial) (actiondata ("swap" (size . "$swap") (fsim . "SWAPFS") (methods $methods)) ("/" (size "$base" . "$base") (fsim . "Ext2/3") (methods $methods)) ("/var" (size "$base" . "$base") (fsim . "Ext2/3") (methods $methods)) ("/home" (size "$base" . #t) (fsim . "Ext2/3") (methods $methods)))) (build (title . "Build server (larger swap for tmpfs)") (action . trivial) (actiondata ("swap" (size . "$[10*$swap]") (fsim . "SWAPFS") (methods $methods)) ("/" (size "$base" . "$base") (fsim . "Ext2/3") (methods $methods)) ("/var" (size "$base" . "$base") (fsim . "Ext2/3") (methods $methods)) ("/home" (size "$base" . #t) (fsim . "Ext2/3") (methods $methods))))) _EOF_