'\" t
.\"     Title: udisks
.\"    Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: August 2018
.\"    Manual: System Administration
.\"    Source: udisks 2.9.0
.\"  Language: English
.\"
.TH "UDISKS" "8" "August 2018" "udisks 2\&.9\&.0" "System Administration"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
udisks \- Disk Manager
.SH "DESCRIPTION"
.PP
udisks provides interfaces to enumerate and perform operations on disks and storage devices\&. Any application (including unprivileged ones) can access the
\fBudisksd\fR(8)
daemon via the name
\fIorg\&.freedesktop\&.UDisks2\fR
on the
\m[blue]\fBsystem message bus\fR\m[]\&\s-2\u[1]\d\s+2\&. In addition to the D\-Bus API, a library,
libudisks2
is also provided\&. This library can be used from C/C++ and any high\-level language with
\m[blue]\fBGObjectIntrospection\fR\m[]\&\s-2\u[2]\d\s+2
support such as Javascript and Python\&. udisks is only indirectly involved in what devices and objects are shown in the user interface\&.
.SH "ACCESS CONTROL"
.PP
By default, logged\-in users in active log\-in sessions are permitted to perform operations (for example, mounting, unlocking or modifying) on devices attached to the seat their session is on\&. Access\-control is fine\-grained and based on
\fBpolkit\fR(8), see the
\(lqAuthorization Checks\(rq
chapter in the udisks documentation for more information\&. Note that the
x\-udisks\-auth
option can be used in the
/etc/fstab
and
/etc/crypttab
files to specify that additional authorization is required to mount resp\&. unlock the device (typically requiring the user to authenticate as an administrator)\&.
.SH "DRIVE CONFIGURATION"
.PP
At start\-up and when a drive is connected,
\fBudisksd\fR(8)
will apply configuration stored in the file
/etc/udisks2/IDENTIFIER\&.conf
where
\fIIDENTIFIER\fR
is the value of the
Drive:Id
property for the drive\&. If the file changes on disk its new contents will also be applied to the drive\&. Typically, users or administrators will never need to edit drive configuration files as they are effectively managed through graphical applications such as
\fBgnome-disks\fR(1)\&. Manually editing configuration files is however supported \(em the file format is a simple
\fI\&.ini\-like format\fR
(see the
\m[blue]\fBDesktop Entry Specification\fR\m[]\&\s-2\u[3]\d\s+2
for the exact syntax)\&. New groups and keys may be added in the future\&.
.SS "ATA group"
.PP
The
ATA
group is for settings that apply to drives using the ATA command\-set\&. The following keys are supported:
.PP
\fBStandbyTimeout\fR
.RS 4
The standby timeout\&. A value of zero means "timeouts are disabled": the device will not automatically enter standby mode\&. Values from 1 to 240 specify multiples of 5 seconds, yielding timeouts from 5 seconds to 20 minutes\&. Values from 241 to 251 specify from 1 to 11 units of 30 minutes, yielding timeouts from 30 minutes to 5\&.5 hours\&. A value of 252 signifies a timeout of 21 minutes\&. A value of 253 sets a vendor\-defined timeout period between 8 and 12 hours, and the value 254 is reserved\&. 255 is interpreted as 21 minutes plus 15 seconds\&. Note that some older drives may have very different interpretations of these values\&. This is similar to the
\fB\-S\fR
option in
\fBhdparm\fR(8)\&.
.RE
.PP
\fBAPMLevel\fR
.RS 4
The Advanced Power Management level\&. A low value means aggressive power management and a high value means better performance\&. Possible settings range from values 1 through 127 (which permit spin\-down), and values 128 through 254 (which do not permit spin\-down)\&. The highest degree of power management is attained with a setting of 1, and the highest I/O performance with a setting of 254\&. A value of 255 can be used to disable Advanced Power Management altogether on the drive (not all drives support disabling it, but most do)\&. This is similar to the
\fB\-B\fR
option in
\fBhdparm\fR(8)\&.
.RE
.PP
\fBAAMLevel\fR
.RS 4
The Automatic Acoustic Management level\&. Most modern harddisk drives have the ability to speed down the head movements to reduce their noise output\&. The possible values are between 0 and 254\&. 128 is the most quiet (and therefore slowest) setting and 254 the fastest (and loudest)\&. Some drives have only two levels (quiet / fast), while others may have different levels between 128 and 254\&. At the moment, most drives only support 3 options, off, quiet, and fast\&. These have been assigned the values 0, 128, and 254 at present, respectively, but integer space has been incorporated for future expansion, should this change\&. This is similar to the
\fB\-M\fR
option in
\fBhdparm\fR(8)\&.
.RE
.PP
\fBWriteCacheEnabled\fR
.RS 4
A boolean specifying whether to enable or disable the Write Cache\&. Valid values for this key are
\(lqtrue\(rq
and
\(lqfalse\(rq\&. This is similar to the
\fB\-W\fR
option in
\fBhdparm\fR(8)\&. This key was added in 2\&.1\&.
.RE
.PP
\fBReadLookaheadEnabled\fR
.RS 4
A boolean specifying whether to enable or disable the Read Look\-ahead\&. Valid values for this key are
\(lqtrue\(rq
and
\(lqfalse\(rq\&. This is similar to the
\fB\-A\fR
option in
\fBhdparm\fR(8)\&. This key was added in 2\&.6\&.0\&.
.RE
.SH "DEVICE INFORMATION"
.PP
udisks relies on recent versions of
\fBudev\fR(7)
and the Linux kernel\&. Influential device properties in the udev database include:
.PP
\fBUDISKS_SYSTEM\fR
.RS 4
If set, this overrides the value of the
HintSystem
property\&.
.RE
.PP
\fBUDISKS_IGNORE\fR
.RS 4
If set, this overrides the value of the
HintIgnore
property\&.
.RE
.PP
\fBUDISKS_AUTO\fR
.RS 4
If set, this overrides the value of the
HintAuto
property\&.
.RE
.PP
\fBUDISKS_CAN_POWER_OFF\fR
.RS 4
If set, this overrides the value of the
CanPowerOff
property\&.
.RE
.PP
\fBUDISKS_NAME\fR
.RS 4
The name to use for the device when presenting it in an user interface\&. This corresponds to the
HintName
property\&.
.RE
.PP
\fBUDISKS_ICON_NAME\fR
.RS 4
The icon to use for the device when presenting it in an user interface\&. If set, the name must adhere to the
\m[blue]\fBfreedesktop\&.org icon theme specification\fR\m[]\&\s-2\u[4]\d\s+2\&. This corresponds to the
HintIconName
property\&.
.RE
.PP
\fBUDISKS_SYMBOLIC_ICON_NAME\fR
.RS 4
The icon to use for the device when presenting it in an user interface using a symbolic icon\&. If set, the name must adhere to the
\m[blue]\fBfreedesktop\&.org icon theme specification\fR\m[]\&\s-2\u[4]\d\s+2\&. This corresponds to the
HintSymbolicIconName
property\&.
.RE
.PP
\fBUDISKS_FILESYSTEM_SHARED\fR
.RS 4
If set to 1, the filesystem on the device will be mounted in a shared directory (e\&.g\&.
/media/VolumeName) instead of a private directory (e\&.g\&.
/run/media/$USER/VolumeName) when the
Filesystem\&.Mount()
method is handled\&.
.RE
.PP
\fBID_SEAT\fR
.RS 4
The physical seat the device is attached to\&. If unset or set to the empty string,
\(lqseat0\(rq
(the first seat) is assumed\&.
.RE
.SH "API STABILITY"
.PP
udisks guarantees a stable D\-Bus API within the same major version and this guarantee also extends to the client\-side library
libudisks2\&. Additionally, several major versions of udisks can be installed and operate at the same time although interoperability may be limited \- for example, a device mounted using the udisks N\&.x API may require additional authorization if attempting to unmount it through the the (N\-1)\&.x API\&.
.PP
The udisks developers do not anticipate breaking API but does reserve the right to do so and if it happens, promises to bump the major version and ensure the new major version of udisks is parallel\-installable with any older major version\&. However, note that programs, man pages and other artifacts may change name (for example, adopt a
\(lq2\(rq
suffix) to make room for the next major version\&. Therefore, applications can not rely on tools like e\&.g\&.
\fBudisksctl\fR(1)
to be available\&. Additionally, there is no guarantee that the options, command\-line switches etc\&. of command\-line tools or similar will remain stable\&.
.PP
Instead, applications should only use the D\-Bus API, the
libudisks2
library or tools such as
\fBdbus-send\fR(1)
or
\fBgdbus\fR(1)
to interact with
\fBudisksd\fR(8)\&.
.SH "AUDIENCE"
.PP
The intended audience of udisks include operating system developers working on the higher\-level parts of the operating system, for example the desktop shell (such as
\m[blue]\fBGNOME\fR\m[]\&\s-2\u[5]\d\s+2) and disk management applications (e\&.g\&. GNOME\*(Aqs
\m[blue]\fBDisks\fR\m[]\&\s-2\u[6]\d\s+2
application)\&. Software on this level typically depend on a specific (major) version of udisks and may even have support for previous versions of udisks or alternative interfaces performing the same role as udisks\&.
.PP
While udisks indeed provides a stable API and a clear upgrade path, it may not be an appropriate dependency for third party applications\&. For example, if the operating system switches to udisks version N\&.x and an application is still using the udisks (N\-1)\&.x API, the application will not work unless udisks (N\-1)\&.x is installed\&. While this situation is still workable (since both udisks N\&.x and udisks (N\-1)\&.x can be installed) it may not be desirable to ask the user to install the old version \- in fact, the operating system vendor may not even provide a packaged version of the old version\&. Hence, if an application does not want to tie itself to a specific version of the operating system, it should not use udisks\&.
.PP
Viable alternatives to udisks are APIs that are guaranteed to be around for longer time\-frames, including:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Low\-level APIs and commands such as e\&.g\&.
\m[blue]\fBsysfs\fR\m[]\&\s-2\u[7]\d\s+2,
\m[blue]\fBlibudev\fR\m[]\&\s-2\u[8]\d\s+2,
\m[blue]\fB/proc/self/mountinfo\fR\m[]\&\s-2\u[9]\d\s+2
and
\m[blue]\fButil\-linux\fR\m[]\&\s-2\u[10]\d\s+2\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
High\-level APIs such as
\m[blue]\fBGVolumeMonitor\fR\m[]\&\s-2\u[11]\d\s+2\&.
.RE
.sp
In particular, for desktop applications it is a much better idea to use something like GVolumeMonitor since it will make the application show the same devices as the desktop shell (e\&.g\&. file manager, file chooser and so on) is showing\&.
.SH "AUTHOR"
.PP
This man page was originally written for UDisks2 by David Zeuthen
<zeuthen@gmail\&.com>
with a lot of help from many others\&.
.SH "BUGS"
.PP
Please send bug reports to either the distribution bug tracker or the upstream bug tracker at
\m[blue]\fB\%https://github.com/storaged-project/udisks/issues\fR\m[]\&.
.SH "SEE ALSO"
.PP
\fBudev\fR(7),
\fBpolkit\fR(8),
\fBudisksd\fR(8),
\fBudisksctl\fR(1),
\fBumount.udisks2\fR(8),
\fBgnome-disks\fR(1)
.SH "NOTES"
.IP " 1." 4
system message bus
.RS 4
\%http://www.freedesktop.org/wiki/Software/dbus
.RE
.IP " 2." 4
GObjectIntrospection
.RS 4
\%https://live.gnome.org/GObjectIntrospection
.RE
.IP " 3." 4
Desktop Entry Specification
.RS 4
\%http://freedesktop.org/wiki/Specifications/desktop-entry-spec
.RE
.IP " 4." 4
freedesktop.org icon theme specification
.RS 4
\%http://www.freedesktop.org/wiki/Specifications/icon-theme-spec
.RE
.IP " 5." 4
GNOME
.RS 4
\%http://www.gnome.org
.RE
.IP " 6." 4
Disks
.RS 4
\%https://live.gnome.org/Design/Apps/Disks
.RE
.IP " 7." 4
sysfs
.RS 4
\%http://en.wikipedia.org/wiki/Sysfs
.RE
.IP " 8." 4
libudev
.RS 4
\%https://www.freedesktop.org/software/systemd/man/libudev.html
.RE
.IP " 9." 4
/proc/self/mountinfo
.RS 4
\%http://www.kernel.org/doc/Documentation/filesystems/proc.txt
.RE
.IP "10." 4
util-linux
.RS 4
\%http://en.wikipedia.org/wiki/Util-linux
.RE
.IP "11." 4
GVolumeMonitor
.RS 4
\%http://developer.gnome.org/gio/stable/volume_mon.html
.RE
