UDISKS(8)
๐ UDISKS โ the Disk Manager, bestie edition ๐
okay so. welcome to udisks(8), aka the Disk Manager. this is the system administration manual page, and yes it's giving very "i know exactly what i'm doing and i'm gonna explain it to you calmly" energy. buckle up. ๐
โจ NAME โจ
udisks โ Disk Manager. that's it, that's the name, short and iconic. ๐
๐ DESCRIPTION ๐
so udisks literally provides interfaces to enumerate and perform operations on disks and storage devices. any application (and yes, even the unprivileged ones, we love an accessible queen) can talk to the udisksd(8) daemon through the name org.freedesktop.UDisks2 on the system message bus[1]. ๐ฆ
and there's more! besides the D-Bus API, there's also a library, libudisks2. you can use it from C/C++ and honestly from any high-level language with GObjectIntrospection[2] support, like Javascript and Python. slay. โจ
one thing tho โ udisks is only indirectly involved in what devices and objects actually show up in the user interface. it's not the main character of your desktop, it's the backstage crew. ๐
๐ ACCESS CONTROL ๐
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. fr fr, that's the default.
access-control is fine-grained and based on polkit(8) โ go read the "Authorization Checks" chapter in the udisks documentation for the whole lore. ๐
also, heads up: 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). so like, extra vibe check before the device lets you in. ๐
โ๏ธ DRIVE CONFIGURATION โ๏ธ
at start-up and when a drive is connected, udisksd(8) will apply configuration stored in the file /etc/udisks2/IDENTIFIER.conf where IDENTIFIER is the value of the Drive:Id property for the drive. and if the file changes on disk, its new contents will also be applied to the drive. live updates, we love to see it. ๐ฅ
typically, users or administrators will never need to edit drive configuration files, because they're effectively managed through graphical applications such as gnome-disks(1). manually editing configuration files is however supported โ the file format is a simple .ini-like format (see the Desktop Entry Specification[3] for the exact syntax). new groups and keys may be added in the future, so stay tuned bestie. โจ
๐ธ ATA group ๐ธ
the ATA group is for settings that apply to drives using the ATA command-set. the following keys are supported:
StandbyTimeoutโ the standby timeout. a value of zero means "timeouts are disabled": the device will not automatically enter standby mode. values from1to240specify multiples of 5 seconds, yielding timeouts from 5 seconds to 20 minutes. values from241to251specify from 1 to 11 units of 30 minutes, yielding timeouts from 30 minutes to 5.5 hours. a value of252signifies a timeout of 21 minutes. a value of253sets a vendor-defined timeout period between 8 and 12 hours, and the value254is reserved.255is 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-Soption inhdparm(8).APMLevelโ the Advanced Power Management level. a low value means aggressive power management and a high value means better performance. possible settings range from values1through127(which permit spin-down), and values128through254(which do not permit spin-down). the highest degree of power management is attained with a setting of1, and the highest I/O performance with a setting of254. a value of255can 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-Boption inhdparm(8).AAMLevelโ 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 between0and254.128is the most quiet (and therefore slowest) setting and254the fastest (and loudest). some drives have only two levels (quiet / fast), while others may have different levels between128and254. at the moment, most drives only support 3 options, off, quiet, and fast. these have been assigned the values0,128, and254at present, respectively, but integer space has been incorporated for future expansion, should this change. this is similar to the-Moption inhdparm(8).WriteCacheEnabledโ a boolean specifying whether to enable or disable the Write Cache. valid values for this key are "true" and "false". this is similar to the-Woption inhdparm(8). this key was added in2.1.ReadLookaheadEnabledโ a boolean specifying whether to enable or disable the Read Look-ahead. valid values for this key are "true" and "false". this is similar to the-Aoption inhdparm(8). this key was added in2.6.0.
๐ DEVICE INFORMATION ๐
udisks relies on recent versions of udev(7) and the Linux kernel. the influential device properties in the udev database include:
UDISKS_SYSTEMโ if set, this overrides the value of theHintSystemproperty.UDISKS_IGNOREโ if set, this overrides the value of theHintIgnoreproperty.UDISKS_AUTOโ if set, this overrides the value of theHintAutoproperty.UDISKS_CAN_POWER_OFFโ if set, this overrides the value of theCanPowerOffproperty.UDISKS_NAMEโ the name to use for the device when presenting it in an user interface. this corresponds to theHintNameproperty.UDISKS_ICON_NAMEโ the icon to use for the device when presenting it in an user interface. if set, the name must adhere to the freedesktop.org icon theme specification[4]. this corresponds to theHintIconNameproperty.UDISKS_SYMBOLIC_ICON_NAMEโ 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 freedesktop.org icon theme specification[4]. this corresponds to theHintSymbolicIconNameproperty.UDISKS_FILESYSTEM_SHAREDโ if set to1, 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 theFilesystem.Mount()method is handled.ID_SEATโ the physical seat the device is attached to. if unset or set to the empty string, "seat0" (the first seat) is assumed.ID_ATA_SMART_ACCESSโ override the access method for SMART data retrieval. valid values include:sat16,sat12,linux-ide,sunplus,jmicron,noneandauto(default). specifynoneto avoid any I/O โ in such a case theSmartUpdatedproperty will always equal to "0".
๐ก๏ธ API STABILITY ๐ก๏ธ
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 (N-1).x API.
the udisks developers do not anticipate breaking API, but they do reserve the right to do so, and if it happens, they promise 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 "2" suffix) to make room for the next major version. therefore, applications can not rely on tools like e.g. udisksctl(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. ๐ญ
instead, applications should only use the D-Bus API, the libudisks2 library or tools such as dbus-send(1) or gdbus(1) to interact with udisksd(8). that's the vibe. periodt. ๐
๐ AUDIENCE ๐
the intended audience of udisks includes operating system developers working on the higher-level parts of the operating system, for example the desktop shell (such as GNOME[5]) and disk management applications (e.g. GNOME's Disks[6] application). software on this level typically depends 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.
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.
viable alternatives to udisks are APIs that are guaranteed to be around for longer time-frames, including:
- low-level APIs and commands such as e.g.
sysfs[7],libudev[8],/proc/self/mountinfo[9] andutil-linux[10]. - high-level APIs such as
GVolumeMonitor[11].
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. matching outfits, basically. ๐ฏ
โ๏ธ AUTHOR โ๏ธ
this man page was originally written for UDisks2 by David Zeuthen <zeuthen@gmail.com> with a lot of help from many others. shoutout to the whole group chat. ๐ซถ
๐ BUGS ๐
please send bug reports to either the distribution bug tracker or the upstream bug tracker at https://github.com/storaged-project/udisks/issues. tell them bestie sent you. ๐
๐ SEE ALSO ๐
udev(7), polkit(8), udisksd(8), udisksctl(1), umount.udisks2(8), gnome-disks(1)
๐ NOTES ๐
- system message bus โ
http://www.freedesktop.org/wiki/Software/dbus - GObjectIntrospection โ
https://live.gnome.org/GObjectIntrospection - Desktop Entry Specification โ
http://freedesktop.org/wiki/Specifications/desktop-entry-spec - freedesktop.org icon theme specification โ
http://www.freedesktop.org/wiki/Specifications/icon-theme-spec - GNOME โ
http://www.gnome.org - Disks โ
https://live.gnome.org/Design/Apps/Disks - sysfs โ
http://en.wikipedia.org/wiki/Sysfs - libudev โ
https://www.freedesktop.org/software/systemd/man/libudev.html /proc/self/mountinfoโhttp://www.kernel.org/doc/Documentation/filesystems/proc.txt- util-linux โ
http://en.wikipedia.org/wiki/Util-linux - GVolumeMonitor โ
http://developer.gnome.org/gio/stable/volume_mon.html
and that's the whole page bestie!! this was udisks version 2.11.2, dated August 2018, and it lives in section 8 of the manual (that's the system administration section, iykyk). ty for reading, you ate. ๐โจ๐๐ฆ๐ธ๐
๐ซถ
๐ฆ where this page comes from
- arch rolling: udisks2 2.11.2-1 ยท GPL-2.0-or-later AND LGPL-2.0-or-later
- fedora 43: udisks2 2.11.2-1.fc43 ยท GPL-2.0-or-later
- fedora 44: udisks2 2.11.2-1.fc44 ยท GPL-2.0-or-later
- nixpkgs unstable: udisks 2.11.2
- ubuntu stonking: udisks2 2.11.2-1ubuntu1 ยท GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms