Magellan Linux

Annotation of /trunk/magellan-initscripts/etc/rc.d/init.d/mountfs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1257 - (hide annotations) (download)
Fri Mar 11 17:31:31 2011 UTC (13 years, 2 months ago) by niro
File size: 3260 byte(s)
-use rc_print and rc_echo
-fixed a typo while recording squashfs mount points
-added noswap to NO_FS while mounting
-added notmpfs, nodevtmpfs nodevpts to NO_FS while unmounting

1 niro 2 #!/bin/bash
2 niro 931 # $Id$
3 niro 2
4     #%rlevels: 7:s 0:k 6:k
5     #%start: 40
6     #%stop: 60
7    
8     #deps
9     #%needs:
10     #%before:
11     #%after:
12    
13 niro 781 source /etc/conf.d/rc
14     source ${rc_functions}
15 niro 2
16     case "$1" in
17     start)
18 niro 342 # fake mounts rootfs (taken from /.bootdev)
19     if [ -e /.bootdev ]
20     then
21     source /.bootdev
22     mount -f ${BOOTDEV} /mnt/cdrom -t ${FSTYPE} -o ro
23     # we don't delete this for the alx settings import
24     # wanna check if usbstorage or not
25     # rm /.bootdev
26 niro 2
27 niro 342 # fake mounts cloop, loop or sqsh
28     if [ -f /mnt/cdrom/livecdrootfs.loop ]
29     then
30     mount -f /mnt/cdrom/livecdrootfs.loop /mnt/cloop -t ext2 -o ro
31    
32     elif [ -f /mnt/cdrom/livecdrootfs.cloop ]
33     then
34     mount -f /mnt/cdrom/livecdrootfs.cloop /mnt/cloop -t ext2 -o ro
35 niro 691
36 niro 342 elif [ -f /mnt/cdrom/livecdrootfs.sqsh ]
37     then
38 niro 1257 mount -f /mnt/cdrom/livecdrootfs.sqsh /mnt/cloop -t squashfs -o ro
39 niro 342 fi
40     else
41 niro 1257 rc_print "Remounting root file system in read-write mode ..."
42 niro 342 mount -n -o remount,rw /
43     evaluate_retval
44     fi
45    
46 niro 1257 rc_print "Recording existing mounts in /etc/mtab ..."
47 niro 2 > /etc/mtab
48 niro 342
49 niro 2 mount -f / && mount -f /proc
50 niro 71
51 niro 149 # records devfs as mounted
52 niro 691 is_fs_mounted devfs && mount -f -t devfs devfs /dev
53 niro 71
54 niro 149 # records devpts as mounted
55 niro 691 is_fs_mounted devpts && mount -f -t devpts devpts /dev/pts
56 niro 2
57 niro 149 # records sysfs as mounted
58 niro 691 is_fs_mounted sysfs && mount -f -t sysfs sysfs /sys
59 niro 71
60 niro 149 # records udev as mounted
61     if is_fs_mounted udev
62 niro 2 then
63 niro 512 # get the fstype of udev - it may be ramfs or tmpfs
64 niro 520 udev_fstype="$(cat /proc/mounts | grep udev | cut -d ' ' -f3)"
65 niro 518 # get the right mount opts - udev with tmpfs comes nosuid
66 niro 520 udev_mopts="$(cat /proc/mounts | grep udev | cut -d ' ' -f4)"
67 niro 518 mount -f -t ${udev_fstype} -o ${udev_mopts} udev /dev
68 niro 2 fi
69    
70 niro 1257 # records mdev as mounted
71     if is_fs_mounted mdev
72     then
73     # get the fstype of mdev - it may be ramfs or tmpfs
74     mdev_fstype="$(cat /proc/mounts | grep mdev | cut -d ' ' -f3)"
75     # get the right mount opts - mdev with tmpfs comes nosuid
76     mdev_mopts="$(cat /proc/mounts | grep mdev | cut -d ' ' -f4)"
77     mount -f -t ${mdev_fstype} -o ${mdev_mopts} mdev /dev
78     fi
79    
80 niro 513 # records usbfs as mounted
81 niro 691 is_fs_mounted usbfs && mount -f -t usbfs usbfs /proc/bus/usb
82 niro 513
83 niro 2 evaluate_retval
84    
85     # The following mount command will mount all file systems. If you
86     # have other (network based) file system that should not be or
87     # cannot be mounted at this time, add them to the NO_FS variable
88     # below. All file systems that are added to the variable in the
89     # form of no<filesystem> will be skipped.
90 niro 1257 NO_FS="noswap,nonfs,nosmbfs,noproc,nocoda,noncpfs,noshm"
91     rc_print "Mounting remaining file systems ..."
92 niro 2 mount -a -t $NO_FS
93     evaluate_retval
94    
95     update_svcstatus $1
96     splash svc_started "$(basename $0)" 0
97     ;;
98    
99     stop)
100 niro 1257 rc_print "Unmounting all other currently mounted file systems ..."
101 niro 2 if [ -e /dev/.udev ]
102     then
103 niro 1257 NO_FS="noramfs,notmpfs,nodevtmpfs,nodevpts"
104 niro 2 umount -a -r -d -t ${NO_FS}
105     else
106     # -d, umount loop devices as well
107     umount -a -r -d
108     fi
109     evaluate_retval
110    
111 niro 342 if [ -e /.bootdev ] && [ -x /usr/bin/eject ]
112     then
113 niro 1257 rc_print "Trying to eject the live-media ..."
114 niro 342 eject -m /mnt/cdrom &> /dev/null
115     evaluate_retval
116     fi
117    
118 niro 2 update_svcstatus $1
119     splash svc_stopped "$(basename $0)" 0
120     ;;
121    
122     *)
123 niro 1257 rc_echo "Usage: $0 {start|stop}"
124 niro 2 exit 1
125     ;;
126     esac

Properties

Name Value
svn:executable *