source: 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, 11 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.