source: MondoRescue/branches/2.2.5/mindi/rootfs/sbin/find-and-mount-cdrom@ 1826

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

Wait more around the USB CD emulated by iLO as it takes up to 5 seconds to come up

  • Property svn:keywords set to Id
File size: 2.8 KB
Line 
1#!/bin/sh
2
3
4TryToFindCDROM() {
5# hda1 is there for testing
6 LogIt "find-and-mount-cdrom --- starting"
7 for device in /dev/hd? /dev/scd? /dev/rcd? /dev/sr? /dev/cd? /dev/ide/*/*/*/*/cd /dev/scsi/*/*/*/*/cd; do
8 [ ! "$SECOND_TRY" ] && LogIt "Trying $device"
9 if [ "`grep "using-cdstream yes" /tmp/mondo-restore.cfg`" ]; then
10 pwd=`pwd`
11 cd $GROOVY
12 tar -zxf $device 2> /tmp/mount.log
13 res=$?
14 cd $pwd
15 if [ "$res" -eq "0" ] ; then
16 clear
17 LogIt "Using cdstream as extended datadisk ($device). Good." 3
18 echo "Using cdstrea as extd dsk." > /tmp/TAPEDEV-HAS-DATA-DISKS
19 ln -sf $device /dev/cdrom
20 exit 0
21 fi
22 else
23 mount $device -t iso9660 -o ro /mnt/cdrom 2> /tmp/mount.log
24 res=$?
25 fi
26 if [ "$res" -ne "0" ] ; then
27 res=`cat /tmp/mount.log`
28 if [ "$res" = "mount: No medium found" ] ; then
29 [ ! "$SECOND_TRY" ] && LogIt "There is a CD-ROM drive at $device but no CD in it."
30 else
31 [ ! "$SECOND_TRY" ] && LogIt "It's not in $device; I'll keep looking"
32 fi
33 continue
34 fi
35 LogIt "$device has a CD-ROM in it"
36 umount /mnt/cdrom
37 ln -sf $device /dev/cdrom
38 if [ "$?" -ne "0" ]; then
39 LogIt "Unable to softlink $device to /dev/cdrom. That's weird."
40 continue
41 fi
42 LogIt "CD-ROM found at $device"
43 mount /mnt/cdrom
44 if [ "$?" -ne "0" ] ; then
45 LogIt "Cannot mount /dev/cdrom (type $format) (dev=$device)"
46 continue
47 elif [ ! -d "/mnt/cdrom/archives" ] ; then
48 LogIt "There is a CD in $device but it's not a Mondo CD"
49 continue
50 else
51 LogIt "$device is where the Mondo CD lives."
52 which hdparm > /dev/null 2> /dev/null && hdparm -u1 -c3 -d1 $device
53 return 0
54 fi
55 done
56 LogIt "Failed to find CD-ROM"
57 return 1
58}
59
60
61# -------------- main ------------
62
63[ "$1" = "--second-try" ] && SECOND_TRY=yes
64if [ ! "$GROOVY" ] ; then
65 LogIt "I'm not groovy!"
66 exit 1
67fi
68
69TryToFindCDROM
70if [ "$?" -eq "0" ] ; then
71 [ "$SECOND_TRY" ] && add="At 2nd attempt, " || add=""
72 LogIt $add"CD-ROM found and mounted at $device" 3
73 echo "$device" > /tmp/CDROM-LIVES-HERE
74 LogIt "find-and-mount-cdrom --- leaving (0)"
75 exit 0
76fi
77#mount /dev/fd0u1722 -t ext2 /mnt/floppy
78[ "$1" = "--second-try" ] && exit 1; # don't try to mount floppy drive
79if [ "`grep "using-cdstream yes" /tmp/mondo-restore.cfg`" ] ; then
80 LogIt "Because you are using cdstream, I won't try to mount CD."
81 exit 0
82fi
83mount /dev/fd0 -t ext2 -o ro /mnt/floppy 2> /dev/null
84if [ "$?" -eq "0" ] ; then
85 umount /mnt/floppy 2> /dev/null
86 exit 1
87else
88 LogIt "Please go to another PC, mount this CD and copy the data disk images" 1
89 LogIt "from the CD's /images directory to blank 1.44MB floppy disks. You should" 1
90 LogIt "use something like 'dd if=/mnt/cdrom/images/mindi-data-1.img of=/dev/fd0'" 1
91 LogIt "for the first data disk, mindi-data-2.img for the second, and so on." 1
92 LogIt "(If you are already booting from a floppy, please ignore this message.)" 1
93 exit 2
94fi
95
96
97
98
Note: See TracBrowser for help on using the repository browser.