aboutsummaryrefslogtreecommitdiffstats
path: root/chapter07/mountfs.xml
blob: 99df6c1811ce844d664fb5884de45db9c0f95454 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<sect1 id="ch07-mountfs">
<title>Creating the mountfs script</title>
<?dbhtml filename="mountfs.html" dir="chapter07"?>

<para>Create the <filename>/etc/init.d/mountfs</filename> script by running
the following command:</para>

<para><screen><userinput>cat &gt; /etc/init.d/mountfs &lt;&lt; "EOF"</userinput>
#!/bin/sh
# Begin /etc/init.d/mountfs

#
# Include the functions declared in the /etc/init.d/functions file
#

source /etc/init.d/functions

case "$1" in
    start)

        #
        # Remount the root partition in read-write mode. -n tells mount
        # not to
        # write to the /etc/mtab file (because it can't do this. The
        # root
        # partition is most likely still mounted in read-only mode
        #

        echo -n "Remounting root file system in read-write mode..."
        /bin/mount -n -o remount,rw /
        evaluate_retval

        #
        # First empty the /etc/mtab file. Then remount root partition 
        # in read-write 
        # mode again but pass -f to mount. This way mount does
        # everything 
        # except the mount itself. This is needed for it to write to the
        # mtab 
        # file which contains a list of currently mounted file systems.
        #

        echo &gt; /etc/mtab
        /bin/mount -f -o remount,rw /

        #
        # Remove the possible /fastboot and /forcefsck files. they are
        # only
        # supposed to be used during the next reboot's checkfs which just
        # happened. If you want to fastboot or forcefsck again you'll
        # have to
        # recreate the files
        #

        /bin/rm -f /fastboot /forcefsck

        #
        # Walk through /etc/fstab and mount all file systems that don't 
        # have the noauto option set in the fs_mntops field (the 4th
        # field. 
        # See man fstab for more info)
        #

        echo -n "Mounting other file systems..."
        /bin/mount -a
        evaluate_retval
        ;;

    stop)

        #
        # Deactivate all the swap partitions
        #

        echo -n "Deactivating swap..."
        /sbin/swapoff -a
        evaluate_retval

        #
        # And unmount all the file systems, mounting the root file
        # system
        # read-only (all are unmounted but because root can't be
        # unmounted 
        # at this point mount will automatically mount it read-only
        # which 
        # is what supposed to happen. This way no data can be written 
        # anymore from disk)
        #

        echo -n "Unmounting file systems..."
        /bin/umount -a -r
        evaluate_retval
        ;;

    *)
        echo "Usage: $0 {start|stop}"
        exit 1
    ;;
esac

# End /etc/init.d/mountfs
<userinput>EOF</userinput></screen></para>

</sect1>