1 | #!/bin/sh |
---|
2 | |
---|
3 | # This is a copy of 90-make-fstab, with a bug fixed. |
---|
4 | # It should be removed once the bug is fixed upstream. |
---|
5 | |
---|
6 | # |
---|
7 | # This script is responsible for setting up /etc/fstab upon the |
---|
8 | # new instance. |
---|
9 | # |
---|
10 | # This should be a simple job, but it is complicated by some of the |
---|
11 | # differences between filesystems - some root filesystems will require |
---|
12 | # the installation of new packages, and we have to handle that here. |
---|
13 | # |
---|
14 | # Steve |
---|
15 | # -- |
---|
16 | # http://www.steve.org.uk/ |
---|
17 | |
---|
18 | |
---|
19 | prefix=$1 |
---|
20 | |
---|
21 | # |
---|
22 | # Source our common functions |
---|
23 | # |
---|
24 | if [ -e /usr/lib/xen-tools/common.sh ]; then |
---|
25 | . /usr/lib/xen-tools/common.sh |
---|
26 | else |
---|
27 | . ./hooks/common.sh |
---|
28 | fi |
---|
29 | |
---|
30 | |
---|
31 | # |
---|
32 | # Log our start |
---|
33 | # |
---|
34 | logMessage Script $0 starting |
---|
35 | |
---|
36 | |
---|
37 | # |
---|
38 | # Make sure we use ide style device names if required |
---|
39 | # |
---|
40 | device=sda |
---|
41 | if [ "${ide}" ]; then |
---|
42 | device=hda |
---|
43 | fi |
---|
44 | |
---|
45 | # |
---|
46 | # Now we have the options we can create the fstab. |
---|
47 | # |
---|
48 | has_xfs=0 |
---|
49 | has_reiserfs=0 |
---|
50 | cat <<E_O_FSTAB > ${prefix}/etc/fstab |
---|
51 | # /etc/fstab: static file system information. |
---|
52 | # |
---|
53 | # <file system> <mount point> <type> <options> <dump> <pass> |
---|
54 | proc /proc proc defaults 0 0 |
---|
55 | E_O_FSTAB |
---|
56 | for part in `seq 1 ${NUMPARTITIONS}`; do |
---|
57 | eval "PARTITION=\"\${PARTITION${part}}\"" |
---|
58 | OLDIFS="${IFS}" |
---|
59 | IFS=: |
---|
60 | x=0 |
---|
61 | for partdata in ${PARTITION}; do |
---|
62 | eval "partdata${x}=\"${partdata}\"" |
---|
63 | x=$(( $x+1 )) |
---|
64 | done |
---|
65 | IFS="${OLDIFS}" |
---|
66 | |
---|
67 | case "${partdata2}" in |
---|
68 | xfs) |
---|
69 | has_xfs=1 |
---|
70 | ;; |
---|
71 | reiserfs) |
---|
72 | has_reiserfs=1 |
---|
73 | ;; |
---|
74 | esac |
---|
75 | |
---|
76 | if [ "${partdata2}" = "swap" ]; then |
---|
77 | echo "${partdata7} none swap sw 0 0" >> ${prefix}/etc/fstab |
---|
78 | else |
---|
79 | echo "${partdata7} ${partdata3} ${partdata2} ${partdata4} 0 1" >> ${prefix}/etc/fstab |
---|
80 | fi |
---|
81 | done |
---|
82 | |
---|
83 | |
---|
84 | # |
---|
85 | # Finally we can install any required packages for the given root |
---|
86 | # filesystem |
---|
87 | # |
---|
88 | if [ $has_xfs -eq 1 ]; then |
---|
89 | installDebianPackage ${prefix} xfsprogs |
---|
90 | fi |
---|
91 | if [ $has_reiserfs -eq 1 ]; then |
---|
92 | installDebianPackage ${prefix} reiserfsprogs |
---|
93 | fi |
---|
94 | |
---|
95 | |
---|
96 | # |
---|
97 | # Log our finish |
---|
98 | # |
---|
99 | logMessage Script $0 finished |
---|