Results 1 to 10 of 10

Thread: LiveUSB ejects cd-drive on shutdown

  1. #1
    Join Date
    Sep 2010
    Beans
    7

    LiveUSB ejects cd-drive on shutdown

    Hello, I have created a liveUSB according to:

    http://www.panticz.de/MultiBootUSB

    I have my reasons for using this method - I change iso's every day, so I will not perform an installation on the usb stick.

    I am also using the "TORAM=yes" boot parameter in grub (grub is on the LiveUSB stick).

    Anyway, after creating the LiveUSB of Ubuntu 10.04.1 64bit, whenever I shutdown the computer the CD-drive ejects. How can I stop this?

    I have tried adding the noeject noprompt --- parameters, but to no change.

    -------
    Edit:

    My grub.cfg looks like this:
    menuentry "Ubuntu 10.04.1 x64" {
    loopback loop /boot/iso/ubuntu-10.04.1-desktop-amd64.iso
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-10.04.1-desktop-amd64.iso noeject noprompt TORAM=yes --
    initrd (loop)/casper/initrd.lz
    }

    My exact boot procedure is like this:
    1) Computer is shutdown (it is a laptop).
    2) I insert USB stick into USB port.
    3) I start computer.
    4) Computer is set to boot from USB.
    5) I am presented with grub2 menu.
    6) I choose the only option (shown above).
    7) It boots the system.
    8) I open terminal.
    9) sudo umount -l /dev/sdx1
    10) I do the above command to be able to remove the USB stick, since it is no longer necessary due to the TORAM=yes parameter.
    11) I remove the usb stick.
    12) I shutdown computer.
    13) While computer is shutting down, the cd-drive ejects.
    Last edited by M8R-yap4c51; September 1st, 2010 at 12:52 PM.

  2. #2
    Join Date
    Jun 2007
    Location
    Hikkaduwa, Sri Lanka
    Beans
    2,916
    Distro
    Ubuntu 16.04 Xenial Xerus

    Re: LiveUSB ejects cd-drive on shutdown

    Have you tried changing the order of:
    noeject noprompt TORAM=yes
    to say:
    TORAM=yes noeject noprompt

  3. #3
    Join Date
    Sep 2010
    Beans
    7

    Re: LiveUSB ejects cd-drive on shutdown

    Alternatively, how would I go about disabling the CD-drive? If I disable the CD-drive before shutting down the system, then it might not eject.

    Alternatively alternatively, if there are no expert users on these forums, can you point me in the correct direction? Since ubuntu is based on Debian, would I be better of asking in Debian forums? Or are there any expert forums around?

  4. #4
    Join Date
    Sep 2010
    Beans
    7

    Re: LiveUSB ejects cd-drive on shutdown

    Quote Originally Posted by C.S.Cameron View Post
    Have you tried changing the order of:
    noeject noprompt TORAM=yes
    to say:
    TORAM=yes noeject noprompt
    Hmm, I did not think it would matter (I did not read anywhere that it would). I will give it a try right now.

    ---------
    Edit:
    I tested all permutations of those boot options and no change occured.
    Last edited by M8R-yap4c51; September 1st, 2010 at 05:33 PM.

  5. #5
    Join Date
    Feb 2005
    Location
    Melbourne, Australia
    Beans
    13,510
    Distro
    Ubuntu 14.04 Trusty Tahr

    Re: LiveUSB ejects cd-drive on shutdown

    Ok, looking at a Live USB I find that this /etc/init.d script does the actual CD eject:

    Code:
    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides:          casper
    # Required-Start:    $syslog
    # Required-Stop:
    # Should-Start:      $local_fs
    # Should-Stop:       halt reboot
    # X-Stop-After:      umountroot
    # Default-Start:
    # Default-Stop:      0 6
    # Short-Description: Casper init script
    # Description:       Resyncs snapshots, evantually caches files in order
    #                    to let remove the media.
    ### END INIT INFO
    
    # Author: Tollef Fog Heen <tfheen@canonical.com>
    #         Marco Amadori <marco.amadori@gmail.com>
    #
    PATH=/usr/sbin:/usr/bin:/sbin:/bin
    NAME=casper
    SCRIPTNAME=/etc/init.d/${NAME}
    DO_SNAPSHOT=/sbin/${NAME}-snapshot
    
    # Exit if system was not booted by casper
    grep -qs boot=casper /proc/cmdline || exit 0
    
    # Exit if the system was booted from an ISO image rather than a physical CD
    grep -qs find_iso= /proc/cmdline && exit 0
    
    # Read configuration variable file if it is present
    [ -r /etc/$NAME.conf ] && . /etc/$NAME.conf
    
    # Load the VERBOSE setting and other rcS variables
    [ -f /etc/default/rcS ] && . /etc/default/rcS
    
    # Define LSB log_* functions.
    # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
    . /lib/lsb/init-functions
    
    # Try to cache everything we're likely to need after ejecting.  This
    # is fragile and simple-minded, but our options are limited.
    cache_path() {
        path="$1"
    
        if [ -d "$path" ]; then
            find "$path" -type f | xargs cat > /dev/null 2>&1
        elif [ -f "$path" ]; then
            if [ -x "$path" ]; then
                if file "$path" | grep -q 'dynamically linked'; then
                    for lib in $(ldd "$path" | awk '{ print $3 }'); do
                        cache_path "$lib"
                    done
                fi
            fi
            cat "$path" >/dev/null 2>&1
        fi
    }
    
    do_stop ()
    {
        if [ ! -z "${ROOTSNAP}" ]; then
            $DO_SNAPSHOT --resync-string="${ROOTSNAP}"
        fi
    
        if [ ! -z "${HOMESNAP}" ]; then
            $DO_SNAPSHOT --resync-string="${HOMESNAP}"
        fi
    
        # check for netboot
        if [ ! -z "${NETBOOT}" ] || grep -qs netboot /proc/cmdline || grep -qsi root=/dev/nfs /proc/cmdline  || grep -qsi root=/dev/cifs /proc/cmdline ; then
            return 0
        fi
    
        # Don't prompt to eject the SD card on Babbage board, where we reuse it
        # as a quasi-boot-floppy. Technically this uses a bit of ubiquity
        # (archdetect), but since this is mostly only relevant for
        # installations, who cares ...
        if type archdetect >/dev/null 2>&1; then
    	subarch="$(archdetect)"
    	case $subarch in
    	    arm*/imx51)
    		return 0
    		;;
    	esac
        fi
    
        prompt=1
        if grep -qs noprompt /proc/cmdline; then
    	prompt=
        fi
    
        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 the disc 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 the disc, close the tray (if any)"
                /sbin/usplash_write "TEXT-URGENT and press ENTER to continue"
            fi
            read x < /dev/console
        fi
    }
    
    case "$1" in
        restart|reload|force-reload|status)
            [ "$VERBOSE" != no ] && log_end_msg 0
            ;;
        # We normally run on start; stop is just for backwards compatibility.
        start|stop)
            log_begin_msg "${NAME} is resyncing snapshots and caching reboot files..."
            do_stop
            case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
            esac
            ;;
        *)
            log_success_msg "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
            exit 3
            ;;
    esac
    You can see the tests done for either command line strings or for architecture types, you may have to somehow munge something to avoid the eject code.

    I would try adding the string "netboott" (deliberately misspelt) to the command line in the hope that it triggers the exit before the eject command without actually trying to do a netboot.
    Last edited by dcstar; September 2nd, 2010 at 12:07 PM.
    Regards, David.
    Please use the Forum search and Wiki search for immediate help
    Please mark your thread as Solved when appropriate
    New to technical forums?: How To Ask Questions The Smart Way

  6. #6
    Join Date
    Sep 2010
    Beans
    7

    Re: LiveUSB ejects cd-drive on shutdown

    Thank you very much, I will try it and report back.

  7. #7
    Join Date
    Sep 2010
    Beans
    7

    Re: LiveUSB ejects cd-drive on shutdown

    Ok, I have not been able to successfully get it to work.

    In that case, how can I uninstall the cdrom from the system, so that the system does not try to eject it?

  8. #8
    Join Date
    Sep 2010
    Beans
    7

    Re: LiveUSB ejects cd-drive on shutdown

    anyone?

  9. #9
    Join Date
    Sep 2010
    Beans
    7

    Re: LiveUSB ejects cd-drive on shutdown

    bump

  10. #10
    Join Date
    Sep 2009
    Beans
    2

    Re: LiveUSB ejects cd-drive on shutdown

    I've been attempting to do the same thing for a 10.04 LiveCD generated by Remastersys. I've had success with the following on a VM, laptop and desktop. Not exactly extensive testing but so far so good. If this works for you be sure to make a backup file as an update may wipe out your changes.

    Edit /etc/rc0.d/S89casper and comment out, add or modify the following lines as noted:
    # eject -p -m /cdrom >/dev/null 2>&1

    # [ "$prompt" ] || return 0
    ## Add the following line:
    return 0

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

    Modify the following line
    from
    /sbin/usplash_write "TIMEOUT 86400"
    to
    /sbin/usplash_write "TIMEOUT 0"

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •