source: MondoRescue/branches/2.2.5/mindi/rootfs/sbin/init@ 1761

Last change on this file since 1761 was 1761, checked in by Bruno Cornec, 16 years ago

Adds preliminary Hardware support to mindi (Proliant SSSTK)
Not tested yet, just coded, and saved in SVN as a backup :-)

  • Property svn:keywords set to Id
File size: 18.2 KB
Line 
1#!/bin/sh
2#
3# $Id: init 1761 2007-11-01 19:27:45Z bruno $
4#
5# init script launched during the restore process
6#------------------------------------------------------------
7
8
9CaughtSoftReset() {
10 trap SIGTERM
11 reboot
12}
13
14
15ConfigureLoggingDaemons() {
16 echo -en "Running klogd..."
17 klogd -c 2 > /dev/null 2> /dev/null
18 echo -en "Done.\nRunning syslogd..."
19 syslogd > /dev/null 2> /dev/null
20 echo "Done."
21 LogIt "klogd and syslogd have been started."
22}
23
24
25
26CopyBootDevEntry() {
27 local outfile devfile
28 devfile=/dev/boot_device
29 outfile=`cat /BOOTLOADER.DEVICE 2> /dev/null`
30 [ ! "$outfile" ] && return 0
31 echo -en "Copying boot device to $outfile..."
32 if [ -e "$outfile" ] ; then
33 echo "OK."
34 return 0
35 fi
36 mkdir -p $outfile
37 rmdir $outfile
38 cp -pRdf $devfile $outfile
39 if [ "$?" -ne "0" ] ; then
40 echo "Failed."
41 return 1
42 else
43 echo "OK."
44 return 0
45 fi
46}
47
48
49
50Die() {
51 LogIt "Fatal error! $1" 1
52 exit 1
53}
54
55
56
57ExtractDevTarballs() {
58 cd /
59 for fname in ataraid.tgz ida.tgz i2o.tgz rd.tgz raw.tgz cciss.tgz nst.tgz dm.tgz vc.tgz ; do
60 if [ ! -e "/$fname" ] ; then
61 LogIt "/$fname not found; cannot extract to /." 1
62 else
63 echo -en "\rExtracting /$fname... "
64 tar -zxf /$fname || LogIt "Error occurred while extracting /$fname"
65 fi
66 done
67 echo -en "\r"
68 LogIt "Extracted additional /dev entries OK. " 1
69}
70
71
72
73LaunchTerminals() {
74 openvt 2 /bin/sh
75 openvt 3 /bin/sh
76 openvt 4 /bin/sh
77 openvt 5 /bin/sh
78 openvt 6 /bin/sh
79 openvt 7 /bin/sh /sbin/wait-for-petris
80}
81
82
83LoadKeymap() {
84 local fname
85 fname=`cat /tmp/KEYMAP-LIVES-HERE 2> /dev/null`
86 [ "$fname" = "" ] && return
87 if which loadkeys > /dev/null 2> /dev/null ; then
88 loadkeys $fname
89# loadkmap != loadkeys
90# elif which loadkmap > /dev/null 2> /dev/null ; then
91# loadkmap < $fname
92 else
93 LogIt "Using default keyboard map." 1
94 fi
95}
96
97
98UntarTapeStuff() {
99 local old_pwd res
100 old_pwd=`pwd`
101 cd $GROOVY
102 [ "$1" != "" ] && tapedev=$1
103 [ ! "$tapedev" ] && tapedev=`grep media-dev /tmp/mondo-restore.cfg | tr -s ' ' ' ' | cut -d' ' -f2`
104# tar -zxf $tapedev
105 dd if=$tapedev bs=32k count=1024 | tar -zx
106 res=$?
107 if [ "$res" -eq "0" ] ; then
108 grep -v media-dev /tmp/mondo-restore.cfg > /tmp/mr.cfg
109 echo "media-dev $tapedev" >> /tmp/mr.cfg
110 cp -f /tmp/mr.cfg /tmp/mondo-restore.cfg
111 fi
112 cd $old_pwd
113 return $res
114}
115
116HandleTape() {
117 local res tapedev
118 tapedev="" ; # will be set by UntarTapeStuff()
119 cd $GROOVY
120 UntarTapeStuff $tapedev || UntarTapeStuff /dev/st0 || UntarTapeStuff /dev/osst0 || UntarTapeStuff /dev/ht0
121 res=$?
122 while [ "$res" -ne "0" ] ; do
123 LogIt "$tapedev failed to act as extended data disk for booting." 1
124 LogIt "Please specify an alternate tape device," 1
125 LogIt "or hit <Enter> to boot from CD/floppies." 1
126 echo -en "---> "
127 read tapedev
128 if [ "$tapedev" ] ; then
129 LogIt "User specified $tapedev instead"
130 UntarTapeStuff $tapedev
131 res=$?
132 else
133 LogIt "User opted not to specify an alternate tapedev"
134 res=1
135 break
136 fi
137 done
138
139 if [ "$res" -ne "0" ] ; then
140 cd /
141 LogIt "Failed to use tape as extended datadisk. Reverting to floppies." 1
142 HandleCDROMorFloppies
143 res=$?
144 else
145# clear
146 LogIt "Using tape as extended datadisk. Good." 3
147 echo "Using tape as extd ddisk." > /tmp/TAPEDEV-HAS-DATA-DISKS
148 res=0
149 CD_MOUNTED_OK=yes
150 fi
151 return $res
152}
153
154
155
156HandleCDROMorFloppies() {
157 find-and-mount-cdrom
158 res=$?
159 if [ "$res" -ne "0" ] ; then
160 LogIt "First call to find-and-mount-cdrom failed." 1
161 LogIt "Sleeping for 3 seconds and trying again." 1
162 sleep 3
163 find-and-mount-cdrom
164 res=$?
165 fi
166 if [ "$res" -eq "0" ] ; then
167 LogIt "OK, I am running on a CD-ROM. Good." 3
168 CD_MOUNTED_OK=yes
169 elif [ "$res" -eq "1" ] ; then
170 LogIt "OK, I am running on floppies. Good." 3
171 CD_MOUNTED_OK=""
172 else
173 LogIt "OK, I am falling back to floppy mode." 3
174 LogIt "That means you'll have to copy the data disk images from" 3
175 LogIt "the CD/hard disk/whatever to physical 1.44MB disks and" 3
176 LogIt "insert them, one after the other. Please see the manual." 3
177 LogIt "The images are in /images on the CD, or /root/images/mindi" 3
178 LogIt "on your hard disk. Your archives are probably fine but" 3
179 LogIt "your tape streamer and/or CD-ROM drive are eccentric. :-)" 3
180 CD_MOUNTED_OK=""
181 fi
182 return 0
183}
184
185
186HowMuchFreeSpaceOnRamdisk() {
187 df -m -P | grep /dev/ram | head -n1 | tr -s '\t' ' ' | cut -d' ' -f4
188}
189
190
191
192InsertEssentialModules() {
193# Load the VIA IDE module first thing if it exists (requires ide-core).
194# This is to ensure that DMA is working for VIA chipsets with 2.6 kernels.
195 for module in /ide-core.ko /via82cxxx.ko; do
196 [ -f "$module" ] && MyInsmod $module > /dev/null 2> /dev/null
197 done
198# Then load the remaining modules in normal (i.e. arbitrary) order.
199 for j in 1 2 3 4 5 ; do
200 for i in `ls /*.*o* 2> /dev/null` ; do
201 [ -f "$i" ] && MyInsmod $i > /dev/null 2> /dev/null
202 done
203 done
204}
205
206
207
208PauseForRaids() {
209 if [ "`dmesg | grep -i "RAID Controller"`" != "" ] || [ "`dmesg | grep -i "Vendor: 3ware"`" != "" ] ; then
210 LogIt "RAID controller(s) detected. Pausing 10 seconds to let them warm up." 1
211 echo -en "Pausing..."
212 for i in 1 2 3 4 5 6 7 8 9 10 ; do
213 sleep 1
214 echo -en "$(($i*10))%..."
215 done
216 echo "Done."
217 fi
218}
219
220
221# 06/13/2002 --- DuckX's & Hugo's new routine
222# 10/11/2003 --- added a simple devfsd.conf file
223# 01/24/2005 --- cater for arbitrary locations of devfsd.conf by using the
224# config file path compiled into devfsd
225RunDevfsd() {
226 loc=`which devfsd 2> /dev/null`
227 if [ "$loc" != "" ] ; then
228 LogIt "Devfs found. Testing kernel support..."
229 if [ ! -e "/dev/.devfsd" ] ; then
230 mount -t devfs devfs /dev 2>> $LOGFILE
231 if [ "$?" -ne "0" ] ; then
232 LogIt "Error while trying to mount devfs"
233 else
234 LogIt "Devfs mounted OK"
235 fi
236 fi
237 #check if the kernel supports devfs
238 if [ -e "/dev/.devfsd" ] ; then
239 [ -d "/proc/1" ] || mount -n /proc
240 LogIt "Kernel support found. Creating config file and starting devfsd"
241 conffile=`strings $loc | grep -E "devfsd.conf$"`
242 [ "$conffile" ] || conffile="/etc/devfsd.conf"
243 confpath=`echo $conffile | sed "s/\/devfsd\.conf$//"`
244 [ -d "$confpath" ] || mkdir -p $confpath
245 echo -en "REGISTER .* MKOLDCOMPAT\nUNREGISTER .* RMOLDCOMPAT\n" > $conffile
246 devfsd /dev &
247 sleep 5
248 else
249 LogIt "No devfs kernel support."
250 fi
251 fi
252}
253
254# Taken from udev management in Mandriva 2008.0. Kudos guys
255make_extra_nodes () {
256 # there are a few things that sysfs does not export for us.
257 # these things are listed in /etc/udev/links.conf
258 grep '^[^#]' /etc/udev-links.conf | \
259 while read type name arg1; do
260 [ "$type" -a "$name" -a ! -e "/dev/$name" -a ! -L "/dev/$name" ] ||continue
261 case "$type" in
262 L) ln -s $arg1 /dev/$name ;;
263 D) mkdir -p /dev/$name ;;
264 M) mknod /dev/$name $arg1 && chmod 600 /dev/$name;;
265 *) echo "udev-links.conf: unparseable line (%s %s %s)\n" "$type" "$name" "$arg1" ;;
266 esac
267 done
268}
269
270
271RunUdevd() {
272 # Inspiration from Mandriva 2008.0 startup script
273 echo "Preparing udev environment..."
274 mv /dev /dev.static
275 mkdir /dev
276 mount -n -o size=5M,mode=0755 -t tmpfs none /dev
277 make_extra_nodes
278 mount -n -t devpts -o mode=620 none /dev/pts
279 mount -n -t tmpfs none /dev/shm
280 PKLVL=`cut -f1 /proc/sys/kernel/printk`
281 echo 0 > /proc/sys/kernel/printk
282 if [ -x /sbin/startudev ]; then
283 /sbin/startudev
284 fi
285 # Depending on udevd version it gives back the hand or not :-(
286 /sbin/udevd --daemon &
287 sleep 2
288 echo $PKLVL > /proc/sys/kernel/printk
289 # May avoid shell error messages
290 chmod 644 /dev/tty*
291}
292
293RstHW() {
294
295 # Restore the HW configuration if available (NOT by default)
296 answer="NO"
297
298 if [ -x ./mindi-rsthw ]; then
299 grep -q RESTORE /proc/cmdline
300 if [ "$?" -ne 0 ]; then
301 clear
302 echo "*********************************************************************"
303 echo "Do you want to restore the HW configuration of the original machine ?"
304 echo "(This may dammage your hardware so be sure to check twice before saying yes)"
305 echo "*********************************************************************"
306 echo "Please confirm by typing YES exactly as written here (NO by default)"
307 echo -n "--> "
308 read answer
309 else
310 answer="YES"
311 fi
312 if [ "$answer" -eq "YES" ] ; then
313 ./mindi-rsthw
314 fi
315 fi
316}
317
318
319#RunDevfsd() {
320# loc=`which devfsd 2> /dev/null`
321# if [ "$loc" != "" ] ; then
322# LogIt "Starting devfsd"
323# devfsd /dev &
324# sleep 5
325# fi
326#}
327
328
329
330SpaceTests() {
331 [ -e "/tmp/filelist.full" ] && cp /tmp/filelist.full /tmp/FLF
332 if [ "`HowMuchFreeSpaceOnRamdisk`" -le "3" ] ; then
333 LogIt "Ramdisk is a bit smaller than I would like." 1
334 LogIt "Please re-run Mondo/Mindi but edit /usr/local/mindi first" 1
335 LogIt "and set EXTRA_SPACE to something high, e.g. 8000" 1
336 Die "Aborting. Please reboot."
337 fi
338 rm -f /tmp/FLF
339}
340
341
342
343StartLvms() {
344 if [ -e "/tmp/i-want-my-lvm" ] ; then
345 LogIt "Scanning LVM's..." 1
346 if which lvm ; then
347 MyInsmod dm-mod
348 MyInsmod dm_mod
349 lvm vgscan --mknodes
350 else
351 vgscan
352 fi
353 grep -E "^#.*vgchange" /tmp/i-want-my-lvm | sed "s/^#[ ]*//" > /tmp/start-lvm
354 chmod +x /tmp/start-lvm
355 echo -en "Starting LVM's..."
356 /tmp/start-lvm &
357 for i in 1 2 3 4 5 ; do
358 echo -en "."
359 sleep 1
360 done
361 echo "Done."
362 fi
363# If necessary, cannibalize 'analyze-my-lvm'; copy some of its code here,
364# pipe vgscan's output, strip it, run 'vgchange' on its output, etc.etc.
365 LogIt "LVM's have been started."
366}
367
368
369StartRaids() {
370 local raid_devices i
371
372 raid_devices=`grep /dev/md /tmp/mountlist.txt | cut -d' ' -f1`
373 if which raidstart > /dev/null 2> /dev/null ; then
374 for i in $raid_devices ; do
375 if grep `basename $i` /proc/mdstat > /dev/null 2> /dev/null ; then
376 LogIt "$i is started already; no need to run 'raidstart $i'" 1
377 else
378 LogIt "Running 'raidstart $i'" 1
379 raidstart $i
380 fi
381 done
382 elif which mdrun > /dev/null 2> /dev/null ; then
383 LogIt "Running 'mdrun'" 1
384 mdrun
385 elif which mdadm > /dev/null 2> /dev/null ; then
386 LogIt "Running 'mdadm'" 1
387 for i in $raid_devices ; do
388 if grep `basename $i` /proc/mdstat > /dev/null 2> /dev/null ; then
389 LogIt "$i is started already; no need to run 'mdadm $i'" 1
390 else
391 if [ -f /etc/mdadm.conf ] ; then
392 LogIt "Running 'mdadm $i' with user supplied /etc/mdadm.conf" 1
393 mdadm -A $i -c /etc/mdadm.conf
394 elif [ -f /etc/mdadm/mdadm.conf ] ; then
395 LogIt "Running 'mdadm $i' with user supplied /etc/mdadm/mdadm.conf" 1
396 mdadm -A $i -c /etc/mdadm/mdadm.conf
397 else
398 LogIt "Running 'mdadm $i'" 1
399 mdadm -Ac partitions -m dev $i
400 fi
401 fi
402 done
403 else
404 LogIt "Warning: Neither 'raidstart' nor 'mdrun''found. RAID devices may not have started." 1
405 fi
406
407}
408
409
410TryAgainToFindCD() {
411 local res
412 mount | grep /mnt/cdrom && return 0
413 [ "`grep "backup_media_type" /tmp/mondo-restore.cfg | grep "cdstream"`" ] && return
414 LogIt "Trying to mount CD-ROM a 2nd time..."
415 find-and-mount-cdrom --second-try
416 res=$?
417 if [ "$res" -eq "0" ] ; then
418 CD_MOUNTED_OK=yes
419 LogIt "CD-ROM drive mounted successfully." 1
420 else
421 LogIt "I still cannot find or mount the CD-ROM drive, by the way."
422 fi
423}
424
425
426
427UseTmpfs()
428{
429 local mount_cmd
430 echo -en "Mounting /tmp/tmpfs..."
431 mkdir -p /tmp/tmpfs
432# For technical reasons, some sets are as large as 16MB.
433# I am allowing 32MB because selective restore occupies a lot of space.
434 for size in 64m 48m 40m 32m ; do
435 mount_cmd="mount /dev/shm -t tmpfs -o size=$size" ; # was 34m until 04/2003
436 LogIt "Trying '$mount_cmd'"
437 $mount_cmd /tmp/tmpfs 2>> $LOGFILE
438 res=$?
439 [ "$res" -eq "0" ] && break
440 done
441 if [ "$res" -ne "0" ] ; then
442 LogIt "Failed. I could not run '$mount_cmd /tmp/tmpfs'. Your kernel is BROKEN or you do not have enough RAM." 1
443 umount /tmp/tmpfs > /dev/null 2> /dev/null
444 rmdir /tmp/tmpfs
445 ln -sf /mnt/RESTORING/tmp /tmp/tmpfs; # used by mondo-restore
446 LogIt "Failed to mount /tmp/tmpfs; using ugly softlink instead"
447 else
448 LogIt "Great. Pivot succeeded w/ size=$size" 1
449 echo -en "Pivoting /tmp..."
450 umount /tmp/tmpfs
451 mkdir -p /tmp.old
452 mv /tmp/* /tmp.old/
453 # Try to Deal with a busybox bug on inexistant links
454 cp /tmp/* /tmp.old/
455 rm -f /tmp/*
456 $mount_cmd /tmp
457 mv /tmp.old/* /tmp/
458 # Try to Deal with a busybox bug on inexistant links
459 cp /tmp.old/* /tmp/
460 rm -rf /tmp.old
461 mkdir -p /tmp/tmpfs
462 mkdir -p $GROOVY
463 echo "Done."
464 LogIt "Successfully mounted dynamic /tmp ramdisk"
465# mkdir -p /tmp/tmpfs/var
466# mv -f /var/log /tmp/tmpfs/var/log
467# ln -sf /tmp/tmpfs/var/log /var/log
468 fi
469}
470
471
472WelcomeMessage()
473{
474 echo "********************************************************************"
475 echo "MINDI-LINUX by Mondo Dev Team - web site: http://www.mondorescue.org"
476 echo "Boot disk based on AlfaLinux & Trinux. BusyBox by Erik Andersen."
477which petris > /dev/null 2> /dev/null && echo "Petris was written by Peter Seidler <p.seidler@mail1.stofanet.dk>."
478 echo "Executables and source code are covered by the GNU GPL. No warranty."
479 echo "running on $ARCH"
480 echo "********************************************************************"
481}
482
483
484EnableCcissIfAppropriate() {
485 local i fname
486 for i in 0 1 2 3 ; do
487 fname="/proc/driver/cciss/cciss$i"
488 if [ -e "$fname" ] ; then
489 LogIt "Engaging $fname"
490 echo "engage scsi" > $fname
491 LogIt "...result=$?"
492 fi
493 done
494}
495
496
497ExtractDataDisksAndLoadModules() {
498 echo "Installing additional tools ..."
499 install-additional-tools
500 echo "Inserting modules ..."
501 # Keep the kernel silent again
502 PKLVL=`cut -f1 /proc/sys/kernel/printk`
503 echo 0 > /proc/sys/kernel/printk
504 insert-all-my-modules >> $LOGFILE 2>> $LOGFILE
505 echo $PKLVL > /proc/sys/kernel/printk
506}
507
508# ------------------------ main -----------------------
509
510MINDI_VER=PBVER
511MINDI_REV=PBREV
512trap CaughtSoftReset SIGTERM
513LOGFILE=/var/log/mondorestore.log
514PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/mondo:/usr/games
515GROOVY=/tmp/groovy-stuff
516USER=root
517export PATH GROOVY USER LOGFILE
518
519echo "Welcome to init (from mindi ${MINDI_VER}-r${MINDI_REV})"
520
521mount -o remount rw /
522[ ! "$GROOVY" ] && Die "I'm not groovy!"
523for i in $GROOVY /mnt/floppy /mnt/cdrom /mnt/isodir /var/local/petris /tmp/isodir; do
524 mkdir -p $i
525done
526#/bin/update
527mount /proc/ /proc -v -t proc
528mkdir /sys 2> /dev/null
529mount /sys/ /sys -v -t sysfs 2>> $LOGFILE
530rm -f /foozero
531
532if [ -f /proc/sys/kernel/exec-shield ]; then
533 echo 0 > /proc/sys/kernel/exec-shield 2>> /dev/null
534fi
535
536if [ -f /proc/modules ]; then
537 echo "/sbin/modprobe" > /proc/sys/kernel/modprobe
538fi
539
540if [ -e "/tmp/USE-UDEV" ] ; then
541 RunUdevd
542else
543 ExtractDevTarballs
544fi
545LaunchTerminals
546
547# Keeping kernel silent for module insertion
548PKLVL=`cut -f1 /proc/sys/kernel/printk`
549echo 0 > /proc/sys/kernel/printk
550InsertEssentialModules
551echo $PKLVL > /proc/sys/kernel/printk
552
553EnableCcissIfAppropriate
554RstHW
555#-------------------------------
556#WHOLIVESINAPINEAPPLEUNDERTHESEA#;# --- don't touch this :)
557#-------------------------------
558UseTmpfs
559if [ ! -e "/tmp/mondo-restore.cfg" ] ; then
560 LogIt "Warning - /tmp/mondo-restore.cfg not found"
561fi
562
563if [ "`grep -i 'tape ' /tmp/mondo-restore.cfg`" ] || [ "`grep -i udev /tmp/mondo-restore.cfg`" ]; then
564 HandleTape
565 ExtractDataDisksAndLoadModules
566elif [ "`grep -i pxe /proc/cmdline`" ]; then
567 # We need to get here exported variables from start-nfs
568 . /sbin/start-nfs
569
570 # Simulate a local CD
571 echo "/mnt/cdrom" > /tmp/CDROM-LIVES-HERE
572 CD_MOUNTED_OK=yes
573 ExtractDataDisksAndLoadModules
574elif [ "`grep -i usb= /proc/cmdline`" ] || [ "`grep -i usb /tmp/mondo-restore.cfg | grep media-type`" ]; then
575 # We need to get here exported variables from start-nfs
576 . /sbin/start-usb
577
578 # Simulate a local CD
579 echo "/mnt/cdrom" > /tmp/CDROM-LIVES-HERE
580 CD_MOUNTED_OK=yes
581 ExtractDataDisksAndLoadModules
582else
583 HandleCDROMorFloppies
584 ExtractDataDisksAndLoadModules
585 # We need to get here exported variables from start-nfs
586 . /sbin/start-nfs
587fi
588res=$?
589ConfigureLoggingDaemons
590if [ -e "/tmp/USE-DEVFS" ] ; then
591 umount /mnt/cdrom 2> /dev/null
592 mv /dev/cdrom /cdrom.lnk 2> /dev/null
593 CD_MOUNTED_OK=""
594 RunDevfsd
595fi
596echo "Starting potential Raid/LVMs ..."
597PauseForRaids
598StartRaids
599StartLvms
600CopyBootDevEntry
601LoadKeymap
602mkdir -p /tmp/tmpfs
603sleep 2
604#clear
605if [ -e "/dev/md0" ] && [ ! -e "/dev/md/0" ] && [ "`grep /dev/md/ /tmp/mountlist.txt`" != "" ] ; then
606 LogIt "Creating /dev/md/* softlinks just in case." 1
607 mkdir -p /dev/md
608 cp -af /dev/md0 /dev/md/0 2> /dev/null
609 cp -af /dev/md1 /dev/md/1 2> /dev/null
610 cp -af /dev/md2 /dev/md/2 2> /dev/null
611fi
612export ARCH=`uname -m`
613WelcomeMessage
614# SpaceTests; # Mandrake Linux 8.1 doesn't like this
615[ -e "/tmp/mountlist.txt" ] && cp -f /tmp/mountlist.txt /tmp/mountlist.original
616
617if ! [ "`grep -i "pxe" /proc/cmdline`" ] ; then
618 res="`cat /mnt/cdrom/archives/THIS-CD-NUMBER 2> /dev/null`"
619 [ "$res" != "1" ] && [ "$res" != "" ] && Die "This is CD #$res in the series. Please insert CD #1."
620 [ -e "/cdrom.lnk" ] && mv -f /cdrom.lnk /dev/cdrom && mount /dev/cdrom /mnt/cdrom && CD_MOUNTED_OK=yes
621 [ "$CD_MOUNTED_OK" != "yes" ] && TryAgainToFindCD
622 #mount | grep cdrom > /dev/null 2> /dev/null || mount /dev/cdrom /mnt/cdrom >> $LOGFILE 2>> $LOGFILE
623fi
624hack-cfg-if-necessary || LogIt "Cannot find hack-cfg-if-necessary"
625openvt 8 /usr/bin/tail -f $LOGFILE
626
627# Log some useful info
628LogIt "init (from mindi v$MINDI_VER-r${MINDI_REV}"
629LogIt "/proc/cmdline is:"
630cat /proc/cmdline >> $LOGFILE
631LogIt "df result:"
632LogIt "----------"
633df >> $LOGFILE
634LogIt "-------------"
635LogIt "mount result:"
636LogIt "-------------"
637mount >> $LOGFILE
638LogIt "-------------"
639LogIt "lsmod result:"
640LogIt "-------------"
641lsmod >> $LOGFILE
642LogIt "-------------"
643LogIt "dmesg result:"
644LogIt "-------------"
645dmesg >> $LOGFILE
646
647#-------------------------------
648#ABSORBENTANDYELLOWANDPOROUSISHE#;# --- don't touch this either :)
649#-------------------------------
650
651#ctrlaltdel soft
652for path in /usr.bin /usr/bin ; do
653 fname=$path/nano
654 [ -e "$fname" ] && ln -sf $fname /usr/bin/pico
655done
656res=`which nano 2> /dev/null`
657[ "$res" ] && ln -sf /usr/bin/
658for i in null stdout stdin stderr ; do
659 cp -af /dev/$i /tmp
660done
661if grep "backup-media-type" /tmp/mondo-restore.cfg > /dev/null 2> /dev/null ; then
662 LogIt "backup-media-type is specified in config file - great."
663 LogIt "Calling post-init $mountlist"
664 post-init
665else
666 LogIt "backup-media-type is not specified in config file."
667 LogIt "I think this CD/floppy has no archives on it."
668fi
669if grep "RESTORE" /proc/cmdline > /dev/null 2> /dev/null ; then
670 echo "Rebooting in 10 seconds automatically as per reboot order"
671 echo -en "Press ^C to interrupt if you have to ..."
672 for i in 1 2 3 4 5 6 7 8 9 10 ; do
673 sleep 1
674 echo -en "."
675 done
676 echo "Boom."
677 sleep 1
678else
679 echo -en "Type 'exit' to reboot the PC\n"
680 umount /mnt/cdrom 2> /dev/null
681 mount / -o rw,remount > /dev/null 2> /dev/null
682 LogIt "Launching Shell"
683 sh
684fi
685CaughtSoftReset
686# reboot
Note: See TracBrowser for help on using the repository browser.