From ArchWiki
Jump to: navigation, search

udisks provides a daemon udisksd, that implements D-Bus interfaces used to query and manipulate storage devices, and a command-line tool udisksctl, used to query and use the daemon.


There are two versions of udisks called udisks and udisks2. Development of udisks has ceased in favor of udisks2. [1]

udisksd (udisks2) and udisks-daemon (udisks) are started on-demand by D-Bus, and should not be enabled explicitly (see man udisksd and man udisks-daemon). They can be controlled through the command-line with udisksctl and udisks, respectively. See man udisksctl and man udisks for more information.


Actions a user can perform using udisks are restricted with Polkit. If your session is not activated or present, for example, when controlling udisks from systemd/User, configure policykit manually.

See [2] for common udisks permissions for the storage group, and [3] for a more restrictive example.

Mount helpers

Automatic mounting of devices is easily achieved with udisks wrappers. See also List of applications#Mount tools and File manager functionality#Mounting.


udevil includes devmon, which is compatible to udisks and udisks2. It uses mount helpers with the following priority:

  1. udevil (SUID)
  2. pmount (SUID)
  3. udisks
  4. udisks2

To mount devices with udisks or udisks2, remove the SUID permission from udevil:

# chmod -s /usr/bin/udevil
Note: chmod -x /usr/bin/udevil as root causes devmon to use udisks for device monitoring
Tip: To run devmon in the background and automatically mount devices, enable it with devmon@.service, taking the user name as argument: devmon@user.service. Keep in mind services run outside the session. Adjust Polkit rules where appropriate, or run devmon from the user session (see Autostart).

udevadm monitor

You may use udevadm monitor to monitor block events and mount drives when a new block device is created. Stale mount points are automatically removed by udisksd, such that no special action is required on deletion.


pathtoname() {
    udevadm info -p "/sys/$1" | awk -v FS== '/DEVNAME/ {print $2}'

while read -r _ _ event devpath _; do
        if [[ $event == add ]]; then
            devname=$(pathtoname "$devpath")
            udisksctl mount --block-device "$devname" --no-user-interaction
done < <(stdbuf -o L udevadm monitor --udev -s block)


udiskie is a mount helper using either udisks or udisks2. It includes support for password protected LUKS devices. See the udiskie wiki for usage details.

Tips and tricks

Mount to /media (udisks2)

By default, udisks2 mounts removable drives under the ACL controlled directory /run/media/$USER/. If you wish to mount to /media instead, use this rule:

# ==1: mount filesystem to a shared directory (/media/VolumeName)
# ==0: mount filesystem to a private directory (/run/media/$USER/VolumeName)
# See udisks(8)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"

Mount an ISO image

To easily mount ISO images, use the following command:

$ udisksctl loop-setup -r -f image.iso

This will create a loop device and show the ISO image ready to mount. Once unmounted, the loop device will be terminated by udev.

Hide selected partitions

If you wish to prevent certain partitions or drives appearing on the desktop, you can create a udev rule, for example /etc/udev/rules.d/10-local.rules:


shows all partitions with the exception of sda1 and sda2 on your desktop. Notice if you are using udisks2 the above will not work as UDISKS_PRESENTATION_HIDE is no longer supported. Instead use UDISKS_IGNORE as follows:



Hidden devices (udisks2)

Udisks2 hides certain devices from the user by default. If this is undesired or otherwise problematic, copy /usr/lib/udev/rules.d/80-udisks2.rules to /etc/udev/rules.d/80-udisks2.rules and remove the following section in the copy:

# ------------------------------------------------------------------------
# ------------------------------------------------------------------------
# ------------------------------------------------------------------------
# Devices which should not be display in the user interface

Devices do not remain unmounted (udisks)

udisks remounts devices after a given period, or polls those devices. This can cause unexpected behaviour, for example when formatting drives, sharing them in a virtual machine, power saving, or removing a drive that was not detached with --detach before.

To disable polling for a given device, for example a CD/DVD device:

# udisks --inhibit-polling /dev/sr0

or for all devices:

# udisks --inhibit-all-polling

See man udisks for more information.

Devices no longer mounted after physical removal

This may happen when both udisks and systemd try to unmount a device that is no longer present. [4] [5] Example error messages:

Jan 16 18:46:04 thinkpad systemd[1]: media-ASMT_2105.mount: Unit is bound to inactive unit dev-sdc2.device. Stopping, too.
Jan 16 18:46:04 thinkpad systemd[1]: Unmounting /media/ASMT_2105...

To reset the state of the mount unit, run:

# systemctl reset-failed

See also