mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-23 17:34:00 +03:00
c506c4087e
Here is an update for the volume_id callout to catch up to the latest and greatest: o It is able to skip the label reading of linux raid members, which are otherwise recognized as a normal filesystem. o It reads FAT labels stored in the directory instead of the superblock (Windows only writes in the directory). o The NTFS uuid is the right one now. o It reads all the Apple HFS(+) formats with the labels. o UFS volumes are recognized but no labels are extracted. o We use CFLAGS+=-D_FILE_OFFSET_BITS=64 instead of lsee64() which may fix a bug mentioned on the klibc mailing list. A lot of other new features are only used in HAL and not needed in this simple callout. But if someone stumbles over it and want's to send a patch for some exotic formats, we better keep it up to date :) |
||
---|---|---|
.. | ||
dasdlabel.c | ||
dasdlabel.h | ||
Makefile | ||
README | ||
s390-dasd.rules | ||
udev_volume_id.c | ||
volume_id.c | ||
volume_id.h |
udev_volume_id - partition, filesystem, disklabel reader This program is normally called from a udev rule, to provide udev with the name, uuid or the filesystem type of a partition to name a device node. udev_volume_id opens the blockdevice specified by the environment variable DEVPATH and searches for a filesystem superblock to read the label. The following commandline switches are supported to specify what udev_volume_id should print to stdout: no option prints all values -h prints help text -l prints the label of the partition -u prints the uuid of the partition -d read disk instead of partition If -d is specified udev_volume_id tries to read the label from the main block device where the partition belongs to. For now this is only useful for s390 dasd labels. udev_volume_id will only return successful if the string asked for, is not empty. All trailing whitespace will be removed, spaces replaced by underscore and slashes ignored. The following rule will create a symlink named with the label string: KERNEL="[hs]d*", PROGRAM="/sbin/udev_volume_id -l", SYMLINK="%c" If no label is found udev_volume_id exits with nonzero and the rule will be ignored. To give it a try, you may call it on the commandline: [root@pim udev.kay]# DEVPATH=/block/hda/hda3 extras/volume_id/udev_volume_id T:ext3 L:Music Store N:Music_Store U:d2da42b5-bbd9-44eb-a72c-cc4542fcb71e [root@pim udev.kay]# DEVPATH=/block/hda/hda3 extras/volume_id/udev_volume_id -l Music_Store [root@pim udev.kay]# DEVPATH=/block/hda/hda1 extras/volume_id/udev_volume_id -t swap Please send any comment/questions/concerns to me or: linux-hotplug-devel@lists.sourceforge.net Kay Sievers <kay.sievers@vrfy.org>