NAME
sg_start - send SCSI START STOP UNIT command to start, stop, load or
eject medium
SYNOPSIS
sg_start [0] [1] [--eject] [--help] [--fl=FL] [--immed] [--load]
[--loej] [--mod=PC_MOD] [--noflush] [--pc=PC] [--readonly] [--start]
[--stop] [--verbose] [--version] DEVICE
sg_start [--eject] [--fl=FL] [-i] [--imm=0|1] [--load] [--loej]
[--mod=PC_MOD] [--noflush] [--pc=PC] [-r] [--start] [--stop] [-v] [-V]
[0|1] DEVICE
DESCRIPTION
sg_start sends a SCSI START STOP UNIT command to the DEVICE with the
selected options. The most used options are --stop to spin down a disk
and --start to spin up a disk. Using --start on a disk that is already
spinning is harmless. There is also finer grain control with "power
condition": active, idle or standby. This is set with the --pc=PC
option. In some contexts the "stop" state can be considered an
additional power condition.
Devices that contain removable media such as cd/dvds can use the --loej
option to load the medium when used in conjunction with --start (i.e.
load medium then spin up). Alternatively --loej may be used to eject
the medium when used in conjunction with --stop (i.e. spin down then
eject medium). More simply, the loading or ejecting of a removable
medium can be requested with the --load or --eject’ option.
If no option or argument is given then a --start is assumed; as the
utility’s name suggests.
This utility supports two command line syntaxes, the preferred one is
shown first in the synopsis and explained in this section. A later
section on the old command line syntax outlines the second group of
options.
OPTIONS
Arguments to long options are mandatory for short options as well.
0 same action as --stop.
1 same action as --start.
-e, --eject
stop the medium and eject it from the drive. Only appropriate
for a device with removable medium. Might be ignored
(prevented), see below.
-h, --help
print out the usage message then exit.
-f, --fl=FL
sets the format layer number for the disc to "jump" to (defined
in MMC-5). Values of FL can be 0 to 3. When this option is
chosen, the FL, LoEj and Start bits are set in the cdb as
required by MMC-5; thus the user does not need to set the
--start and/or --load options.
-i, --immed
sets the IMM bit on the START STOP UNIT command so this utility
will return immediately and not wait for the media to complete
the requested action. The default is to wait until the media to
complete the requested action before returning.
-l, --load
load the medium in the drive and start it. Only appropriate for
a removable medium.
-L, --loej
sets the LOEJ bit on the START STOP UNIT command. This loads the
media when the unit is started or eject it when the unit is
stopped (i.e. works in conjunction with START bit in cdb). This
option is ignored if ’pc > 0’. Default is off (i.e. don’t
attempt to load or eject media). If a start/start indication is
not given (i.e. neither --start nor --stop) and this option is
given then a load and start action is assumed.
-m, --mod=PC_MOD
where PC_MOD is the ’power condition modifier’ value. 0 to 15
(inclusive) are valid and 0 is the default. This ’power
condition modifier’ field in the cdb was added after sbc3r13.
-n, --noflush
do not perform a flush to media (e.g. like SYNCHRONIZE CACHE
does) before a variant of this utility that limits access to the
media. Using the --stop option is an example of something that
limits access to the media. This ’noflush’ field in the cdb was
added after sbc3r13.
-O, --old
switch to older style options.
-p, --pc=PC
where PC is the ’power conditions’ value. 0 to 15 (inclusive)
are valid. Default value is 0. When ’--pc=0’ then --eject,
--load, --loej, --start and --stop are active. Some common
values are 1 for the "active" power condition (SBC); 2 for the
idle power condition; 3 for the standby power condition; 5 for
sleep power condition (MMC); 7 for LU_CONTROL (SBC), 0xa
(decimal 10) for FORCE_IDLE_0 (SBC) and 0xb (decimal 11) for
FORCE_STANDBY_0 (SBC). See recent SBC-3, MMC-5 and SAS drafts at
www.t10.org for more information.
-r, --readonly
open the DEVICE in read-only mode. Maybe required in Linux to
stop a nuisance spin-up if the DEVICE is an ATA disk. The
nuisance spin-up may occur at the end of this command negating
the effect of the --stop option.
-s, --start
start (spin-up) the DEVICE. This sets the START bit in the cdb.
Using this option on an already started device is harmless. In
the absence of other options, this option defaults (i.e. set the
START cdb bit).
-S, --stop
stop (spin-down) the DEVICE. This clears the START bit in the
cdb.
-v, --verbose
increase the level of verbosity. Can be used multiple times.
-V, --version
print out version string then exit.
NOTES
To avoid confusion, only one of 0, 1 --eject, --load, --start and
--stop should be given.
There is an associated "power condition" mode page (0x1a) in which
timer values can be set for transitioning to either idle or standby
state after a period of inactivity. The sdparm utility can be used to
view the power condition mode page and if required change it. If a
DEVICE is in either idle or standby power condition state then a
REQUEST SENSE command (see the sg_requests utility) should yield a
sense key of "no sense" and an additional sense code of "Low power
condition on" on recent SCSI devices.
Ejection of removable media (e.g. ’sg_start --eject /dev/hdd’ where the
DEVICE is an ATAPI cd/dvd drive) may be prevented by a prior SCSI
PREVENT ALLOW MEDIUM REMOVAL command (see sg_prevent). In this case
this utility should fail with an error generated by the device: illegal
request / medium removal prevented. This can be overridden using
sg_prevent or, for example, ’sdparm --command=unlock /dev/hdd’.
The SCSI TEST UNIT READY command can be used to find out whether a
DEVICE is ready to transfer data. If rotating media is stopped or still
coming up to speed, then the TEST UNIT READY command will yield a "not
ready" sense key and an more informative additional sense code. See the
sg_turs utility.
In the 2.4 series of Linux kernels the DEVICE must be a SCSI generic
(sg) device. In the 2.6 series block devices (e.g. SCSI disks and DVD
drives) can also be specified. For example "sg_start 0 /dev/sda" will
work in the 2.6 series kernels.
EXIT STATUS
The exit status of sg_start is 0 when it is successful. Otherwise see
the sg3_utils(8) man page.
OLDER COMMAND LINE OPTIONS
The options in this section were the only ones available prior to
sg3_utils version 1.23 . In sg3_utils version 1.23 and later these
older options can be selected by either setting the SG3_UTILS_OLD_OPTS
environment variable or using ’--old’ (or ’-O) as the first option.
Note that the action of --loej is slightly different in the older
interface: when neither --start nor --stop (nor proxies for them) are
given, --loej performs an eject operation. In the same situation the
newer interface will perform a load operation.
Earlier versions of sg_start had a ’-s’ option to perform a SYNCHRONIZE
CACHE command before the START STOP UNIT command was issued. According
to recent SBC-2 drafts this is done implicitly if required. Hence the
’-s’ option has been dropped.
All options, other than ’-v’ and ’-V’, can be given with a single "-".
For example: "sg_start -stop /dev/sda" and "sg_start --stop /dev/sda"
are equivalent. The single "-" form is for backward compatibility.
0 stop (spin-down) DEVICE.
1 start (spin-up) DEVICE.
--eject
stop the medium and eject it from the drive.
--fl=FL
sets the format layer number for the disc to "jump" to (defined
in MMC-5).
-i sets the IMM bit on the START STOP UNIT command so this utility
will return immediately and not wait for the media to spin down.
Same effect as ’--imm=1’. The default action (without this
option or a ’--imm=1’ option) is to wait until the media spins
down before returning.
--imm=0|1
when the immediate bit is 1 then this utility returns
immediately after the DEVICE has received the command. When this
option is 0 (the default) then the utility returns once the
command has completed its action (i.e. it waits until the device
is started or stopped).
--load load the medium in the drive and start it.
--loej sets the LOEJ bit in the START STOP UNIT cdb. When a "start"
operation is indicated, then a load and start is performed. When
a "stop" operation is indicated, then a stop and eject is
performed. When neither a "start" or "stop" operation is
indicated does a stop and eject. [Note that the last action
differs from the new interface in which the option of this name
defaults to load and start.]
-N switch to the newer style options.
--mod=PC_MOD
where PC_MOD is the ’power condition modifier’ value. 0 to 15
(inclusive) are valid and 0 is the default. This field was added
after sbc3r13.
--noflush
do not perform a flush to media (e.g. like SYNCHRONIZE CACHE
does) before a variant of this utility that limits access to the
media. Using the --stop option is an example of something that
limits access to the media. This field was added after sbc3r13.
--pc=PC
where PC is the ’power condition’ value (in hex). 0 to f
(inclusive) are valid. Default value is 0.
-r see the --readonly option above. May be useful for ATA disks.
--start
start (spin-up) DEVICE.
--stop stop (spin-down) DEVICE. Same meaning as "0" argument.
-v verbose: outputs SCSI command in hex to console before with
executing it. ’-vv’ and ’-vvv’ are also accepted yielding
greater verbosity.
-V print out version string then exit.
AUTHOR
Written by K. Garloff and D. Gilbert
REPORTING BUGS
Report bugs to <dgilbert at interlog dot com>.
COPYRIGHT
Copyright © 2002-2010 Kurt Garloff, Douglas Gilbert
This software is distributed under the GPL version 2. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
SEE ALSO
sg_prevent(sg3_utils), sg_requests(sg3_utils), sg_turs(sg3_utils)
sdparm(sdparm)