.\" Copyright (C) 1994-2005 Jeff Tranter (tranter@pobox.com)
.\" Copyright (C) 2012 Karel Zak <kzak@redhat.com>
.\"
.\" It may be distributed under the GNU Public License, version 2, or
.\" any higher version. See section COPYING of the GNU Public license
.\" for conditions under which this file may be redistributed.
.TH EJECT 1 "April 2012" "Linux" "User Commands"
.SH NAME
eject \- eject removable media
.SH SYNOPSIS
.B eject
[options]
.IR device | mountpoint
.SH DESCRIPTION
.B eject
allows removable media (typically a CD-ROM, floppy disk, tape, JAZ, ZIP or USB
disk) to be ejected under software control.  The command can also control some
multi-disc CD-ROM changers, the auto-eject feature supported by some devices,
and close the disc tray of some CD-ROM drives.
.PP
The device corresponding to \fIdevice\fP or \fImountpoint\fP is ejected.  If no
name is specified, the default name \fB/dev/cdrom\fR is used.  The device may be
addressed by device name (e.g. 'sda'), device path (e.g. '/dev/sda'),
UUID=\fIuuid\fR or LABEL=\fIlabel\fR tags.
.PP
There are four different methods of ejecting, depending on whether the device
is a CD-ROM, SCSI device, removable floppy, or tape.  By default \fBeject\fR tries
all four methods in order until it succeeds.
.PP
If a device partition is specified, the whole-disk device is used.  If the device
or a device partition is currently mounted, it is unmounted before ejecting.
.SH OPTIONS
.TP
.BR \-a , " \-\-auto on" | off
This option controls the auto-eject mode, supported by some devices.  When
enabled, the drive automatically ejects when the device is closed.
.TP
.BR \-c , " \-\-changerslot " \fIslot
With this option a CD slot can be selected from an ATAPI/IDE CD-ROM changer.
The CD-ROM drive cannot be in use (mounted data CD or playing a music CD) for
a change request to work. Please also note that the first slot of the changer
is referred to as 0, not 1.
.TP
.BR \-d , " \-\-default"
List the default device name.
.TP
.BR \-F , " \-\-force"
Force eject, don't check device type.
.TP
.BR \-f , " \-\-floppy"
This option specifies that the drive should be ejected using a removable floppy
disk eject command.
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.TP
.BR \-i , " \-\-manualeject on" | off
This option controls locking of the hardware eject button.  When enabled, the
drive will not be ejected when the button is pressed.  This is useful when you
are carrying a laptop in a bag or case and don't want it to eject if the button
is inadvertently pressed.
.TP
.BR \-M , " \-\-no\-partitions\-unmount"
The option tells eject to not try to unmount other partitions on partitioned
devices.  If another partition is still mounted, the program will not attempt
to eject the media.  It will attempt to unmount only the device or mountpoint
given on the command line.
.TP
.BR \-m , " \-\-no\-unmount"
The option tells eject to not try to unmount at all.
.TP
.BR \-n , " \-\-noop"
With this option the selected device is displayed but no action is performed.
.TP
.BR \-p , " \-\-proc"
This option allows you to use /proc/mounts instead /etc/mtab.  It also passes the
\fB\-n\fR option to \fBumount\fR(8).
.TP
.BR \-q , " \-\-tape"
This option specifies that the drive should be ejected using a tape drive
offline command.
.TP
.BR \-r , " \-\-cdrom"
This option specifies that the drive should be ejected using a CDROM eject
command.
.TP
.BR \-s , " \-\-scsi"
This option specifies that the drive should be ejected using SCSI commands.
.TP
.BR \-T , " \-\-traytoggle"
With this option the drive is given a CD-ROM tray close command if it's opened,
and a CD-ROM tray eject command if it's closed.  Not all devices support this
command, because it uses the above CD-ROM tray close command.
.TP
.BR \-t , " \-\-trayclose"
With this option the drive is given a CD-ROM tray close command.  Not all
devices support this command.
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.TP
.BR \-v , " \-\-verbose"
Run in verbose mode; more information is displayed about what the command is
doing.
.TP
.BR \-X , " \-\-listspeed"
With this option the CD-ROM drive will be probed to detect the available
speeds.  The output is a list of speeds which can be used as an argument of the
\fB\-x\fR option.  This only works with Linux 2.6.13 or higher, on previous versions
solely the maximum speed will be reported.  Also note that some drives may not
correctly report the speed and therefore this option does not work with them.
.TP
.BR \-x , " \-\-cdspeed " \fIspeed
With this option the drive is given a CD-ROM select speed command.  The
.I speed
argument is a number indicating the desired speed (e.g. 8 for 8X speed), or 0
for maximum data rate.  Not all devices support this command and you can only
specify speeds that the drive is capable of.  Every time the media is changed
this option is cleared.  This option can be used alone, or with the
\fB\-t\fR and \fB\-c\fR options.
.SH EXIT STATUS
Returns 0 if operation was successful, 1 if operation failed or command syntax
was not valid.
.SH NOTES
.B eject
only works with devices that support one or more of the four methods of
ejecting.  This includes most CD-ROM drives (IDE, SCSI, and proprietary), some
SCSI tape drives, JAZ drives, ZIP drives (parallel port, SCSI, and IDE
versions), and LS120 removable floppies.  Users have also reported success with
floppy drives on Sun SPARC and Apple Macintosh systems.  If
.B eject
does not work, it is most likely a limitation of the kernel driver for the
device and not the
.B eject
program itself.
.PP
The \fB\-r\fR, \fB\-s\fR, \fB\-f\fR, and \fB\-q\fR options allow controlling
which methods are used to
eject.  More than one method can be specified.  If none of these options are
specified, it tries all four (this works fine in most cases).
.PP
.B eject
may not always be able to determine if the device is mounted (e.g. if it has
several names).  If the device name is a symbolic link,
.B eject
will follow the link and use the device that it points to.
.PP
If
.B eject
determines that the device can have multiple partitions, it will attempt to
unmount all mounted partitions of the device before ejecting (see also
\fB--no-partitions-unmount\fR).  If an unmount fails, the program will not
attempt to eject the media.
.PP
You can eject an audio CD.  Some CD-ROM drives will refuse to open the tray if
the drive is empty.  Some devices do not support the tray close command.
.PP
If the auto-eject feature is enabled, then the drive will always be ejected
after running this command.  Not all Linux kernel CD-ROM drivers support the
auto-eject mode.  There is no way to find out the state of the auto-eject mode.
.PP
You need appropriate privileges to access the device files.  Running as root is
required to eject some devices (e.g. SCSI devices).
.SH AUTHORS
.MT tranter@\:pobox.com
Jeff Tranter
.ME
- original author.
.br
.MT kzak@\:redhat.com
Karel Zak
.ME
and
.MT mluscon@\:redhat.com
Michal Luscon
.ME
- util-linux version.
.SH SEE ALSO
.BR findmnt (8),
.BR lsblk (8),
.BR mount (8),
.BR umount (8)
.SH AVAILABILITY
The eject command is part of the util-linux package and is available from
.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
