Here is a patch to flexible fsck in a conservative manner in the sense of doing fsck at boot time as ever.

- You will see free mounts until automatic fsck.
- You can force fsck at boot time in which case Mountcount is reseted.

Edit the root entries of resulting /boot/grub/menu.lst to your needs:

--- a/boot/grub/menu.lst        2009-05-20 18:33:48.000000000 +0200
+++ a/boot/grub/menu.lst        2009-05-20 19:01:53.000000000 +0200
@@ -135,3 +135,8 @@

 ### END DEBIAN AUTOMAGIC KERNELS LIST

+
+title          forcefsck and forceshutdown Debian - mounts until fsck 26
+root           (hd0,5)
+kernel /boot/vmlinuz root=LABEL=debian ro nosplash forcefsck forceshutdown 2
+initrd         /boot/initrd.img
--- a/etc/rc.local      2009-01-14 18:48:25.000000000 +0100
+++ a/etc/rc.local      2009-05-20 18:25:37.000000000 +0200
@@ -1,14 +1,25 @@
 #!/bin/sh -e
 #
 # rc.local
 #
 # This script is executed at the end of each multiuser runlevel.
 # Make sure that the script will "exit 0" on success or any other
 # value on error.
 #
 # In order to enable or disable this script just change the execution
 # bits.
 #
 # By default this script does nothing.
+RDEV=$(mount | grep ' / ' |  sed -e 's/ on.*//')
+MAXM=$( /sbin/tune2fs -l $RDEV | grep 'Maximum mount count'|sed -e 's/Maximum mount count:[ ]*//' ) +ACTU=$( /sbin/tune2fs -l $RDEV | grep 'Mount count'|sed -e 's/Mount count:[ ]*//' )
+DIFF=$(( $MAXM - $ACTU ))
+MENU=/boot/grub/menu.lst
+sed -i -e "sXmounts until fsck.*Xmounts until fsck ${DIFF}X" $MENU
+if grep -wiq "forceshutdown" /proc/cmdline ; then
+    if grep -wiq "forcefsck" /proc/cmdline ; then
+       shutdown -h now
+    fi
+fi

 exit 0
--- a/etc/init.d/checkfs.sh     2008-08-12 14:50:47.000000000 +0200
+++ a/etc/init.d/checkfs.sh     2009-05-19 20:11:59.000000000 +0200
@@ -41,6 +41,9 @@
                if [ -f /forcefsck ]
                then
                        force="-f"
+               elif grep -wiq "forcefsck" /proc/cmdline
+               then
+                       force="-f"
                else
                        force=""
                fi
--- a/etc/init.d/checkroot.sh   2008-07-27 16:03:16.000000000 +0200
+++ a/etc/init.d/checkroot.sh   2009-05-19 20:09:54.000000000 +0200
@@ -245,6 +245,9 @@
                if [ -f /forcefsck ]
                then
                        force="-f"
+               elif grep -wiq "forcefsck" /proc/cmdline
+               then
+                       force="-f"
                else
                        force=""
                fi
---





--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to