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
RevLine 
[1]1#!/bin/sh
2
3
4TryToFindCDROM() {
5# hda1 is there for testing
[1758]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
[1]26 if [ "$res" -ne "0" ] ; then
[1758]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
[1]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
[1758]39 LogIt "Unable to softlink $device to /dev/cdrom. That's weird."
40 continue
[1]41 fi
[1758]42 LogIt "CD-ROM found at $device"
[1826]43 mount /mnt/cdrom
[1758]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
[1]54 fi
[1758]55 done
56 LogIt "Failed to find CD-ROM"
57 return 1
[1]58}
59
60
61# -------------- main ------------
62
63[ "$1" = "--second-try" ] && SECOND_TRY=yes
64if [ ! "$GROOVY" ] ; then
[1758]65 LogIt "I'm not groovy!"
66 exit 1
[1]67fi
68
69TryToFindCDROM
70if [ "$?" -eq "0" ] ; then
[1758]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
[1]76fi
77#mount /dev/fd0u1722 -t ext2 /mnt/floppy
78[ "$1" = "--second-try" ] && exit 1; # don't try to mount floppy drive
[273]79if [ "`grep "using-cdstream yes" /tmp/mondo-restore.cfg`" ] ; then
[1758]80 LogIt "Because you are using cdstream, I won't try to mount CD."
81 exit 0
[1]82fi
83mount /dev/fd0 -t ext2 -o ro /mnt/floppy 2> /dev/null
84if [ "$?" -eq "0" ] ; then
[1758]85 umount /mnt/floppy 2> /dev/null
86 exit 1
[1]87else
[1758]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
[1]94fi
95
96
97
98
Note: See TracBrowser for help on using the repository browser.