1 |
#!/bin/bash |
#!/bin/bash |
2 |
|
# $Header: /home/cvsd/magellan-cvs/magellan-src/magellan-initscripts/etc/rc.d/init.d/mountfs,v 1.12 2008-12-22 22:01:15 niro Exp $ |
3 |
|
|
4 |
#%rlevels: 7:s 0:k 6:k |
#%rlevels: 7:s 0:k 6:k |
5 |
#%start: 40 |
#%start: 40 |
10 |
#%before: |
#%before: |
11 |
#%after: |
#%after: |
12 |
|
|
13 |
source /etc/sysconfig/rc |
source /etc/conf.d/rc |
14 |
source $rc_functions |
source ${rc_functions} |
|
|
|
|
#$1= filesys |
|
|
get_mounted(){ |
|
|
local filesys |
|
|
filesys=$1 |
|
|
|
|
|
cat /proc/mounts | grep ${filesys} | cut -d ' ' -f3 |
|
|
} |
|
15 |
|
|
16 |
case "$1" in |
case "$1" in |
17 |
start) |
start) |
18 |
echo -e ${COLOREDSTAR}"Remounting root file system in read-write mode ..." |
# fake mounts rootfs (taken from /.bootdev) |
19 |
mount -n -o remount,rw / |
if [ -e /.bootdev ] |
20 |
evaluate_retval |
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 ..." |
echo -e ${COLOREDSTAR}"Recording existing mounts in /etc/mtab ..." |
47 |
> /etc/mtab |
> /etc/mtab |
48 |
|
|
49 |
mount -f / && mount -f /proc |
mount -f / && mount -f /proc |
|
|
|
|
#records devfs if mounted |
|
|
if [ "$(get_mounted devfs)" == devfs ] |
|
|
then |
|
|
mount -f -t devfs none /dev |
|
|
fi |
|
|
|
|
|
#records devpts if mounted |
|
|
if [ "$(get_mounted devpts)" == devpts ] |
|
|
then |
|
|
mount -f -t devpts none /dev/pts |
|
|
fi |
|
50 |
|
|
51 |
#records sysfs if mounted |
# records devfs as mounted |
52 |
if [ "$(get_mounted sysfs)" == sysfs ] |
is_fs_mounted devfs && mount -f -t devfs devfs /dev |
53 |
then |
|
54 |
mount -f -t sysfs none /sys |
# records devpts as mounted |
55 |
fi |
is_fs_mounted devpts && mount -f -t devpts devpts /dev/pts |
56 |
|
|
57 |
#records udev's ramfs if mounted |
# records sysfs as mounted |
58 |
if [ "$(get_mounted ramfs)" == ramfs ] |
is_fs_mounted sysfs && mount -f -t sysfs sysfs /sys |
59 |
|
|
60 |
|
# records udev as mounted |
61 |
|
if is_fs_mounted udev |
62 |
then |
then |
63 |
mount -f -t ramfs none /dev |
# 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 |
fi |
69 |
|
|
70 |
|
# records usbfs as mounted |
71 |
|
is_fs_mounted usbfs && mount -f -t usbfs usbfs /proc/bus/usb |
72 |
|
|
73 |
evaluate_retval |
evaluate_retval |
74 |
|
|
75 |
# The following mount command will mount all file systems. If you |
# The following mount command will mount all file systems. If you |
77 |
# cannot be mounted at this time, add them to the NO_FS variable |
# 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 |
# below. All file systems that are added to the variable in the |
79 |
# form of no<filesystem> will be skipped. |
# form of no<filesystem> will be skipped. |
|
|
|
80 |
NO_FS="nonfs,nosmbfs,noproc,nocoda,noncpfs,noshm" |
NO_FS="nonfs,nosmbfs,noproc,nocoda,noncpfs,noshm" |
81 |
echo -e ${COLOREDSTAR}"Mounting remaining file systems ..." |
echo -e ${COLOREDSTAR}"Mounting remaining file systems ..." |
82 |
mount -a -t $NO_FS |
mount -a -t $NO_FS |
98 |
fi |
fi |
99 |
evaluate_retval |
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 |
update_svcstatus $1 |
109 |
splash svc_stopped "$(basename $0)" 0 |
splash svc_stopped "$(basename $0)" 0 |
110 |
;; |
;; |