source: MondoRescue/branches/2.2.5/mindi/rootfs/sbin/post-init@ 1533

Last change on this file since 1533 was 1315, checked in by Bruno Cornec, 17 years ago

Log files are now consistent: mondoarchive.log for mondoarchive (containing also mindi.log) and mondorestore.log for mondorestore (copied from /tmp (ram) to /var/log (disk) at the end of the restore)
One include has been created for each bianry containing only that declaration ofr the moment, but which will be extended to include all local definitions (ps_* e.g.)
Doc updated accordingly
LOGFILE in restore process is now passed in the environment and not duplicated anymore
LogIt is not redifined either
LOGFILE should be put in environment by mondoarchive for mindi's usage but that's a step left for later.

  • Property svn:keywords set to Id
File size: 4.8 KB
Line 
1#!/bin/sh
2#
3# $Id: post-init 1315 2007-04-16 14:13:59Z bruno $
4#
5#------------------------------------------------------------
6
7
8call_multifunc_cd() {
9 echo "Hooray! I'm a multi-function CD. Oo! Oo!"
10 mount | grep cdrom > /dev/null 2> /dev/null || mount /dev/cdrom /mnt/cdrom >> $LOGFILE 2>> $LOGFILE
11 for i in bin lib usr sbin ; do
12 echo -en "\rNormalizing $i ... "
13 if [ -d "/mnt/cdrom/$i" ] ; then
14 for j in `find /mnt/cdrom/$i` ; do
15 k=`echo "$j" | awk -F '/' '{for(i=4; i<=NF;i++) {printf("/%s",$i);};printf "\n"; }'`
16 mkdir -p $k
17 rmdir $k 2> /dev/null
18 ln -sf $j $k
19 done
20 fi
21 done
22 echo -en "\rNormalized softlinks OK.\n"
23 echo -en "Shall I run a CPU burn-in test in the background (y/n) ?"
24 read line
25 if [ "$line" = "y" ] || [ "$line" = "Y" ] || [ "$line" = "yes" ] || [ "$line" = "YES" ] ; then
26 for i in `find /usr/local/sbin/burn*` ; do basename $i ; done
27 echo -en "...Which one ?"
28 read line
29 $i || echo $? &
30 fi
31 for i in lucifer mprime ; do
32# tiobench ide-smart
33 if which $i > /dev/null > /dev/null ; then
34 echo -en "Shall I run $i (y/n) ?"
35 read line
36 if [ "$line" = "y" ] || [ "$line" = "Y" ] || [ "$line" = "yes" ] || [ "$line" = "YES" ] ; then
37 echo "Running $i ..."
38 $i || echo "Warning - $i returned an error"
39 fi
40 fi
41 done
42
43# echo "Running bash."
44# busybox sh
45 echo "Exiting multi-function CD thingy. Please reboot immediately."
46 exit 0
47}
48
49
50# ---------------------------- main ----------------------------
51
52sleep 1
53
54if [ -e "/MULTIFUNC" ] ; then
55 LogIt "I think this is a multifunc CD but I'm not going there today."
56# call_multifunc_cd
57fi
58
59cat /tmp/mountlist.txt >> $LOGFILE
60
61iso=`grep iso /proc/cmdline`
62nuke=`grep nuke /proc/cmdline`
63if [ "$nuke" = "" ] ; then
64 nuke=`grep -i "RESTORE " /proc/cmdline`
65fi
66expert=`grep expert /proc/cmdline`
67compare=`grep compare /proc/cmdline`
68interactive=`grep interactive /proc/cmdline`
69[ "$interactive" ] && expert=""; # in case 'expert' crops up somewhere
70if which mondorestore > /dev/null 2> /dev/null ; then
71 LogIt "mondorestore found; cool..."
72else
73 if [ "$iso$nuke$compare$interactive" != "" ] ; then
74 LogIt "FYI, this CD was made by Mindi, not Mondo." 1
75 exit 0
76 else
77 LogIt "Mindi-Linux has finished booting."
78 fi
79fi
80
81if [ -h "`which mondorestore`" ] ; then
82 LogIt "Turning mondorestore from a hyperlink into an executable"
83 cat `which mondorestore` > /usr/bin/MR
84# in case there's more than one instance :)
85 rm -f `which mondorestore 2> /dev/null`
86 rm -f `which mondorestore 2> /dev/null`
87 rm -f `which mondorestore 2> /dev/null`
88 rm -f `which mondorestore 2> /dev/null`
89 mv /usr/bin/MR /usr/bin/mondorestore
90 chmod +x /usr/bin/mondorestore
91fi
92
93if which bootstrap > /dev/null 2> /dev/null ; then
94 LogIt "Calling bootstrap script" 1
95 bootstrap
96fi
97
98for i in mount-me unmount-me mondorestore ; do
99 if which $i > /dev/null 2> /dev/null ; then
100 LogIt "$i found"
101 else
102 LogIt "Warning - $i not found on ramdisk."
103 fi
104done
105
106if [ "$compare" ] ; then
107 LogIt "------------------COMPARE MODE-----------------" 1
108 mondorestore --compare
109elif [ "$nuke" ] ; then
110 LogIt "-------------------NUKE MODE-------------------" 1
111 mondorestore --nuke
112elif [ "$expert" ] ; then
113 if [ "`grep tapedev /tmp/mondo-restore.cfg`" ] ; then
114 LogIt "-------------------TAPE MODE-------------------" 1
115 loc=`which mondorestore 2> /dev/null`
116 if [ "$loc" = "" ] ; then
117 LogIt "I presume you backed up with Mindi, not Mondo." 1
118 else
119 LogIt "Tape Mode -- calling mondorestore..."
120 if [ "$nuke" ] ; then
121 mondorestore --nuke
122 else
123 mondorestore; # MR will detect & access the tape
124 fi
125 fi
126 elif [ "`grep using-cdstream /tmp/mondo-restore.cfg`" ] ; then
127 LogIt "------------------CDSTREAM MODE------------------" 1
128 loc=`which mondorestore 2> /dev/null`
129 if [ "$loc" = "" ] ; then
130 LogIt "I presume you backed up with Mindi, not Mondo." 1
131 else
132 LogIt "Cdstream Mode -- calling mondorestore..."
133 if [ "$nuke" ] ; then
134 mondorestore --nuke
135 else
136 mondorestore; # MR will detect & access the cdstream
137 fi
138 fi
139 else
140 LogIt "------------------EXPERT MODE------------------" 1
141 LogIt "You do all the work. :-)" 1
142 if which mondorestore > /dev/null 2> /dev/null ; then
143 LogIt "Type 'mondorestore' to begin the restore/compare process." 1
144 loc=`which ISO 2> /dev/null`
145 fi
146 fi
147else
148 LogIt "------------------INTERACTIVE------------------" 1
149 mondorestore --interactive
150fi
151
152[ -e "/tmp/DO-MBR-PLEASE" ] && LogIt "PLEASE RUN 'mondorestore --mbr' NOW TO INITIALIZE YOUR BOOT SECTOR." 1
153
154exit 0
Note: See TracBrowser for help on using the repository browser.