| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | 
							- <sect1 id="ch07-checkfs">
 
- <title>Creating the checkfs script</title>
 
- <para>
 
- Create a new file <filename>/etc/init.d/checkfs</filename> containing
 
- the following:
 
- </para>
 
- <literallayout>
 
- <userinput>cat > checkfs << "EOF"</userinput>
 
- #!/bin/sh
 
- # Begin /etc/init.d/checkfs
 
- #
 
- # Include the functions declared in the /etc/init.d/functions file
 
- #
 
- source /etc/init.d/functions
 
- #
 
- # Activate all the swap partitions declared in the /etc/fstab file
 
- #
 
- echo -n "Activating swap..."
 
- /sbin/swapon -a
 
- evaluate_retval
 
- #
 
- # If the /fastboot file exists we don't want to run the partition checks
 
- #
 
- if [ -f /fastboot ]
 
- then
 
-         echo "Fast boot, no file system check"
 
- else
 
- #
 
- # Mount the root partition read-only (just in case the kernel mounts it
 
- # read-write and we don't want to run fsck on a read-write mounted 
 
- # partition).
 
- #
 
-         /bin/mount -n -o remount,ro /
 
-         if [ $? = 0 ]
 
-         then
 
- #
 
- # If the /forcefsck file exists we want to force a partition check even 
 
- # if the partition was unmounted cleanly the last time
 
- #
 
-                 if [ -f /forcefsck ]
 
-                 then
 
-                         echo -n "/forcefsck exists, forcing "
 
-                         echo "file system check"
 
-                         force="-f"
 
-                 else
 
-                         force=""
 
-                 fi
 
- #
 
- # Check all the file systems mentioned in /etc/fstab that have the
 
- # fs_passno value set to 1 or 2 (the 6th field. See man fstab for more
 
- # info)
 
- #
 
-                 echo "Checking file systems..."
 
-                 /sbin/fsck $force -a -A -C -T
 
- #
 
- # If something went wrong during the checks of one of the partitions,
 
- # fsck will exit with a return value greater than 1. If this is
 
- # the case we start sulogin so you can repair the damage manually
 
- #
 
-                 if [ $? -gt 1 ]
 
-                 then
 
-                         $FAILURE
 
-                         echo
 
-                         echo -n "fsck failed. Please repair your file "
 
-                         echo "systems manually by running /sbin/fsck"
 
-                         echo "without the -a option"
 
-                         echo
 
-                         echo -n "Please note that the root file system " 
 
-                         echo "is currently mounted in read-only mode."
 
-                         echo
 
-                         echo -n "I will start sulogin now. When you  "
 
-                         echo "logout I will reboot your system."
 
-                         echo
 
-                         $NORMAL
 
-                         /sbin/sulogin
 
-                         /sbin/reboot -f
 
-                 else
 
-                         print_status success
 
-                 fi
 
-         else
 
- #
 
- # If the remount to read-only mode didn't work abort the fsck and print
 
- # an error
 
- #
 
-                 echo -n "Cannot check root file system because it "
 
-                 echo "could not be mounted in read-only mode."
 
-         fi
 
- fi
 
- # End /etc/init.d/checkfs
 
- <userinput>EOF</userinput>
 
- </literallayout>
 
- </sect1>
 
 
  |