Magellan Linux

Annotation of /trunk/initscripts/busybox/rc/mountfs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 735 - (hide annotations) (download)
Tue Jun 10 23:08:56 2008 UTC (15 years, 11 months ago) by niro
Original Path: trunk/busybox-initscripts/rc/mountfs
File size: 3031 byte(s)
-added noswap to prevent some errors

1 niro 724 #!/bin/sh
2 niro 735 # $Header: /home/cvsd/magellan-cvs/magellan-src/busybox-initscripts/rc/mountfs,v 1.2 2008-06-10 23:08:56 niro Exp $
3 niro 724
4     #%rlevels: 7:s 0:k
5     #%start: 40
6     #%stop: 60
7    
8     #deps
9     #%needs:
10     #%before:
11     #%after:
12    
13     source /etc/conf.d/rc
14     source ${rc_functions}
15    
16     case "$1" in
17     start)
18     # 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    
27     # 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    
36     elif [ -f /mnt/cdrom/livecdrootfs.sqsh ]
37     then
38     mount -f /mnt/cdrom/livecdrootfs.sqsh /mnt/cloop -t ext2 -o ro
39     fi
40     else
41     echo -e ${COLOREDSTAR}"Remounting root file system in read-write mode ..."
42     mount -n -o remount,rw /
43     evaluate_retval
44     fi
45    
46     echo -e ${COLOREDSTAR}"Recording existing mounts in /etc/mtab ..."
47     > /etc/mtab
48    
49     mount -f / && mount -f /proc
50    
51     # records devfs as mounted
52     is_fs_mounted devfs && mount -f -t devfs devfs /dev
53    
54     # records devpts as mounted
55     is_fs_mounted devpts && mount -f -t devpts devpts /dev/pts
56    
57     # records sysfs as mounted
58     is_fs_mounted sysfs && mount -f -t sysfs sysfs /sys
59    
60     # records udev as mounted
61     if is_fs_mounted udev
62     then
63     # get the fstype of udev - it may be ramfs or tmpfs
64     udev_fstype="$(cat /proc/mounts | grep udev | cut -d ' ' -f3)"
65     # get the right mount opts - udev with tmpfs comes nosuid
66     udev_mopts="$(cat /proc/mounts | grep udev | cut -d ' ' -f4)"
67     mount -f -t ${udev_fstype} -o ${udev_mopts} udev /dev
68     fi
69    
70     # records usbfs as mounted
71     is_fs_mounted usbfs && mount -f -t usbfs usbfs /proc/bus/usb
72    
73     evaluate_retval
74    
75     # The following mount command will mount all file systems. If you
76     # have other (network based) file system that should not be or
77     # cannot be mounted at this time, add them to the NO_FS variable
78     # below. All file systems that are added to the variable in the
79     # form of no<filesystem> will be skipped.
80 niro 735 NO_FS="noswap,nonfs,nosmbfs,noproc,nocoda,noncpfs,noshm"
81 niro 724 echo -e ${COLOREDSTAR}"Mounting remaining file systems ..."
82     mount -a -t $NO_FS
83     evaluate_retval
84    
85     update_svcstatus $1
86     splash svc_started "$(basename $0)" 0
87     ;;
88    
89     stop)
90     echo -e ${COLOREDSTAR}"Unmounting all other currently mounted file systems ..."
91     if [ -e /dev/.udev ]
92     then
93     NO_FS="noramfs,notmpfs"
94     umount -a -r -d -t ${NO_FS}
95     else
96     # -d, umount loop devices as well
97     umount -a -r -d
98     fi
99     evaluate_retval
100    
101     if [ -e /.bootdev ] && [ -x /usr/bin/eject ]
102     then
103     echo -e ${COLOREDSTAR}"Trying to eject the live-media ..."
104     eject -m /mnt/cdrom &> /dev/null
105     evaluate_retval
106     fi
107    
108     update_svcstatus $1
109     splash svc_stopped "$(basename $0)" 0
110     ;;
111    
112     *)
113     echo "Usage: $0 {start|stop}"
114     exit 1
115     ;;
116     esac