udisks 2.10.0
The UDisks project provides a daemon, tools and libraries to access and manipulate disks, storage devices and technologies.
This release brings large number of internal changes, while keeping the promise of API stability. This development cycle was mostly driven by libblockdev 3.0 API overhaul that brought these notable changes:
- partitioning was ported to libfdisk
- kbd and vdo libblockdev plugins were removed and so were zram, bcache and vdo udisks modules
- definition of supported filesystems was moved to libblockdev and filesystem operations were unified
Native NVMe support has been added through libnvme
bringing feature parity with ATA drives such as health monitoring, device self-tests, secure erase and extended identification. Basic awareness for NVMe over Fabrics and a simple initiator were added as well. In a simplified D-Bus interface view, NVMe controllers are mapped to drive objects and NVMe namespaces to block objects.
Syntax of configurable mount options was extended to separate filesystem signature and filesystem driver used for mounting. A new optional key was introduced to define priorities of filesystem drivers.
A number of workarounds was placed around the org.freedesktop.UDisks2.Filesystem.Size
property value retrieval to avoid excessive I/O traffic whenever possible. Support for the new ID_FS_LASTBLOCK
and ID_FS_BLOCKSIZE
properties brought by util-linux-2.39
release was added to further lower the need for any I/O.
The org.freedesktop.UDisks2.Block.Format()
method now takes optional arguments that are passed down to the corresponding mkfs
tool. It is a caller responsibility to provide sane arguments that mix correctly with libblockdev defaults.
The org.freedesktop.UDisks2.Filesystem.Mount()
method now offers mounting on behalf of a foreign UID. A new polkit rule was introduced for such a case.
Further notable fixes and improvements:
- bash and zsh completion enhancements
- lvm2 module uevent handling improvements
- ATA Secure Erase is now allowed only on top-level block objects
- extra iSCSI node parameters are now honoured properly
- FIPS mode fixes
- added support for resolving devices by PARTLABEL and PARTUUID
- full support for setting filesystem and partition UUIDs
- dynamic mountpoint name sanitization and ACL fixes
- added support for LVM2 RAID
- UUID of Bitlocker volumes is now properly exposed
- added an option to force/avoid creation of mdraid write-intent bitmap