Package: sysvinit Version: 2.86.ds1-14.1 Severity: wishlist Tags: patch The attached patch arranges that at boot time, if /tmp (or whatever is mounted there) has less than a certain amount of free space, a tmpfs will be mounted over the top. This makes some parts of the system more robust in the face of disk full situations; in Ubuntu we are deploying this pursuant to our plan https://wiki.ubuntu.com/BootLoginWithFullFilesystem).
In the patch below: * The trigger size is 1Mby by default but configurable in /etc/default/mountoverflowtmp by setting MINTMPKB. Setting this value to 0 disables the setup. * The tmpfs is always 1Mby. Alternatively one might take the view that this size should be configurable or perhaps it should be the same as the minimum space. Note that you might want to consider different defaults for Debian than for Ubuntu. Ian. #! /bin/sh /usr/share/dpatch/dpatch-run ## 92_mountoverflowtmp.dpatch by Ian Jackson ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Mount a 1Mby tmpfs on /tmp if /tmp is otherwise less than 1Mby @DPATCH@ --- ./debian/initscripts/postinst 2007-06-27 11:26:19.000000000 +0100 +++ edit/sysvinit-2.86.ds1/debian/initscripts/postinst 2007-06-27 11:38:05.000000000 +0100 @@ -102,6 +102,7 @@ updatercd checkfs.sh start 30 S . updatercd mountall.sh start 35 S . updatercd mountall-bootclean.sh start 36 S . +updatercd mountoverflowtmp start 37 S . stop 59 0 6 . updatercd waitnfs.sh start 45 S . updatercd mountnfs-bootclean.sh start 46 S . updatercd bootmisc.sh start 80 S . --- ./debian/initscripts/conffiles 2007-06-27 11:26:19.000000000 +0100 +++ edit/sysvinit-2.86.ds1/debian/initscripts/conffiles 2007-06-27 11:31:27.000000000 +0100 @@ -11,6 +11,7 @@ /etc/init.d/mountall.sh /etc/init.d/mountall-bootclean.sh /etc/init.d/mountnfs-bootclean.sh +/etc/init.d/mountoverflowtmp /etc/init.d/mountdevsubfs.sh /etc/init.d/mountkernfs.sh /etc/init.d/mtab.sh --- ./debian/initscripts/etc/init.d/mountoverflowtmp 1970-01-01 01:00:00.000000000 +0100 +++ edit/sysvinit-2.86.ds1/debian/initscripts/etc/init.d/mountoverflowtmp 2007-06-27 11:29:46.000000000 +0100 @@ -0,0 +1,53 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: mountoverflowtmp +# Required-Start: mountall-bootclean +# Required-Stop: +# Default-Start: S +# Default-Stop: +# Short-Description: mount emergency /tmp. +# Description: Mount a tmpfs on /tmp if there would +# otherwise be too little space to log in. +### END INIT INFO + +. /lib/lsb/init-functions + +set -e + +defs=/etc/default/mountoverflowtmp +test ! -f "$defs" || . "$defs" + +: ${MINTMPKB:=1024} +if test "$MINTMPKB" = "0"; then exit 0; fi + +case "$1" in + start|"") + log_action_begin_msg "Checking minimum space in /tmp" + df="`df -kP /tmp`" + avail="`printf "%s" "$df" | awk 'NR==2 { print $4 }'`" + log_action_end_msg 0 + if test $avail -lt "$MINTMPKB"; then + log_action_begin_msg "Mounting emergency tmpfs on /tmp" + mount -t tmpfs -o size=1048576,mode=1777 overflow /tmp + log_action_end_msg 0 + fi + ;; + restart|reload|force-reload) + echo "Error: argument '$1' not supported" >&2 + exit 3 + ;; + stop) + log_action_begin_msg "Unmounting any overflow tmpfs from /tmp" + if LANG=C LC_ALL=C mount | \ + grep '^overflow on /tmp type tmpfs' >/dev/null; then + umount overflow + fi + log_action_end_msg 0 + ;; + *) + echo "Usage: mountoverflowtmp [start|stop]" >&2 + exit 3 + ;; +esac + +: -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]