A new version of the Util-linux system utility package 2.39 has been released, which includes both utilities closely related to the Linux kernel and general-purpose utilities. For example, the package features utilities such as mount/umount, fdisk, hwclock, cal, blkid, fsck/cfdisk/sfdisk, blockdev, chrt, mkfs, ionice, more, renice, su, kill, setsid, login, shutdown, dmesg, lscpu, logger, losetup, setterm, mkswap, swapon, taskset, etc.
In the new version:
- The mount utility and the libmount library have added support for the new Linux kernel API for managing filesystem mounting with consideration of mount namespace points. In the new API, instead of a single mount() function, separate functions are used for processing different stages of mounting (processing the superblock, obtaining filesystem information, mounting, attaching to a mount point). Compatibility with older Linux kernels and the old mounting API has been maintained. To forcibly disable the new API, the option "--disable-libmount-mountfd-support" has been added.
- The use of the new mounting API has enabled support for mapping user IDs of mounted filesystems, which is used to map files of a specific user on a mounted foreign partition to another user in the current system. To manage the mapping, the mount utility has added the option "X-mount.idmap=".
- New options have been added to the mount utility: "X-mount.auto-fstypes" for automatic detection of a specific filesystem type, "X-mount.{owner,group,mode}" for changing ownership, group, and access mode after mounting, and "rootcontext=@target" for setting the SELinux context for the filesystem. Support for the "recursive" argument has been added for VFS flags (e.g., "mount -o bind,ro=recursive").
- The blkpr command has been added, allowing the reservation of blocks on SCSI or NVMe storage devices.
- The pipesz command has been added for setting or checking the buffer size for unnamed pipes and FIFOs.
- The waitpid command has been added for waiting for a change in the state of an arbitrary process (e.g., its termination).
- New options "-n" and "--relative" have been added to the renice utility.
- Support for the ioctl BLKGETDISKSEQ has been implemented in the blockdev utility.
- The lsfd utility now supports pidfd and AF_NETLINK, AF_PACKET, AF_INET, and AF_INET6 sockets (\/proc\/net\/*), provides a display of changed process names from proc\/$pid\/fd, implements flag decoding from \/proc\/$PID\/fdinfo\/$fd, and includes an '-i' ('—inet') option to show only information about AF_INET and AF_INET6 sockets.
- The cal utility now supports configuring colored output via terminal-colors.d.
- Dmesg now outputs with microsecond precision when using the '--since' and '--until' options, and the '--level' option has been updated to allow a prefix/suffix '+' to show all levels with numbers greater/less than the specified value.
- The fstrim utility has gained a '--types' option for filtering by filesystem type.
- blkid and libblkid now support the bcachefs filesystem and include checksum calculations for filesystems and RAID.
- The lsblk utility has been enhanced with '--nvme' and '--virtio' options to filter devices, and now includes columns for ID (udev ID), ID-LINK (udev \/dev\/disk\/by-id), PARTN (partition number), and MQ (queues), along with improved support for hot-plugging and unplugging devices.
- The nsenter utility has added a '--env' option for passing environment variables.
- The namei utility now includes a '-Z' option to display SELinux contexts.
- Support for the Meson build system has been improved.
Source: opennet.ru
