Comment 6 for bug 628630

Revision history for this message
Colin Watson (cjwatson) wrote :

FWIW, we do need to prompt the user to eject rather than just relying on ubiquity's reboot prompt (as Jerone suggests in the bug description). Some systems automatically withdraw the CD at boot, so automatic-eject + immediate-reboot + automatic-withdraw will just mean the system boots from the CD again. With automatic-eject, I've even heard of the odd finger injury caused by people trying to grab the CD out of the drive in the short period of time available. By contrast, some systems (e.g. Macs) have software-only eject, so the only feasible sequence here is (1) physically eject CD (2) prompt for removal (3) continue and reboot.

It's not clear to me why plymouth isn't appearing here, and I suspect that this is the root of the problem; that's certainly a likely reason for this to happen only on "Install Ubuntu".

Mario, I don't think this is the same thing as bug 600739. aufsd is a kernel thread and shouldn't be user-killable, while mount.ntfs shouldn't be running here. All the filesystem support for a live CD/DVD should be in kernel-space right now.

Jerone, re comment 2, if you've found the problem, please share. :-) The area of code you point to is certainly what's responsible for ejecting the CD, and it's a difficult piece of code. Bearing in mind the constraints outlined in my first paragraph, after we eject the CD, we no longer have a useful system; everything we need must be in the buffer cache. Here's the code:

    for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default $(which stty) /bin/plymouth /sbin/usplash_write; do
        cache_path "$path"
    done

    eject -p -m /cdrom >/dev/null 2>&1

    [ "$prompt" ] || return 0

    # XXX - i18n
    MSG="Please remove installation media and close the tray (if any) then press ENTER: "

    if [ -x /bin/plymouth ] && plymouth --ping; then
        plymouth message --text="$MSG"
        plymouth watch-keystroke > /dev/null
    else
        stty sane < /dev/console

        echo $MSG > /dev/console
        if [ -x /sbin/usplash_write ]; then
            /sbin/usplash_write "TIMEOUT 86400"
            /sbin/usplash_write "TEXT-URGENT Please remove installation media, close the tray"
            /sbin/usplash_write "TEXT-URGENT (if any) and press ENTER to continue"
        fi
        read x < /dev/console
    fi

So, in your case, plymouth isn't running (for some reason). We know that the code is waiting on the read from /dev/console, because as your video shows, pressing Enter is sufficient to have it continue. I think the only available deduction, then, is that there is something else running in parallel which is trying to read from disk, and that is what's spewing all the error messages so that you can't see the prompt printed to the console.

The easiest fix is probably to work out why plymouth isn't running, and fix that ...