=== modified file 'debian/cdrom-detect.postinst' --- debian/cdrom-detect.postinst 2008-09-27 10:19:23 +0000 +++ debian/cdrom-detect.postinst 2008-10-18 07:01:54 +0000 @@ -32,17 +32,6 @@ do mounted=0 - devices="$(list-devices cd; list-devices maybe-usb-floppy)" - for device in $devices; do - if mount -t iso9660 -o ro,exec $device /cdrom; then - log "CD-ROM mount succeeded: device=$device" - mounted=1 - db_set cdrom-detect/cdrom_device $device - break - else - log "CD-ROM mount failed: device=$device" - fi - done if db_get cdrom-detect/try-usb && [ "$RET" = "true" ]; then devices="$(list-devices usb-partition)" for device in $devices; do @@ -58,9 +47,40 @@ fi done fi - - if [ "$mounted" = "1" ]; then - break + + if [ "$mounted" = "1" ]; then + break + fi + + wrong=0 + devices="$(list-devices cd; list-devices maybe-usb-floppy)" + for device in $devices; do + if mount -t iso9660 -o ro,exec $device /cdrom; then + log "CD-ROM mount succeeded: device=$device" + if [ -e /cdrom/.disk/info ]; then + CDNAME=`cat /cdrom/.disk/info` + log "Detected CD '$CDNAME'" + mounted=1 + db_set cdrom-detect/cdrom_device $device + break + else + log "The CD on $device is not an Ubuntu CD!" + wrong=1 + umount /cdrom 2>/dev/null || true + fi + else + log "CD-ROM mount failed: device=$device" + fi + done + + if [ "$mounted" = "1" ]; then + break + fi + + if [ "$wrong" = "1" ]; then + db_input critical cdrom-detect/wrong-cd || [ $? -eq 30 ] + db_go + fail fi # If a device was detected but the mount failed, ask for the CD. @@ -129,16 +149,6 @@ fi done -if [ -e /cdrom/.disk/info ]; then - CDNAME=`cat /cdrom/.disk/info` - log "Detected CD '$CDNAME'" -else - log "The available CD is not an Ubuntu CD!" - db_input critical cdrom-detect/wrong-cd || [ $? -eq 30 ] - db_go - fail -fi - db_get cdrom-detect/cdrom_device device="$RET"