Re: disk Partition label changes and reflecting them in /dev/disks-by-label/

From: Alan Jenkins
Date: Sun Jul 19 2009 - 12:22:51 EST


On 7/19/09, Linda Walsh <lkml@xxxxxxxxx> wrote:
>
>
> If I have a disk with no mounted partitions and I change the partition
> order,
> the OS will re-read the new partition and life goes on.
>
> However, if I create or change a new disk label, it seems label programs
> (and users) should have an option to reread the labels after the
> modification.
>
> Ideally any prog that changes a Label or UUID would trigger an update
> of what's in /dev/disks to reflect the new 'reality'.
>
> Currently, I go through through a seemingly bizarre ritual of invoking
> unmounting all other partitions on the same disk, then becoming root,
> running fdisk on the disk, then just exiting with "w". This triggers
> a reread of not only the partition table, but also the new labels.
>
> However, I find this far less than ideal. Is there a better way, or could
> there be a better way to update new Labels and UUID's that are actually
> on a disk -- perhaps even as an ordinary user command (since it would be
> a read-only operation on the disk that simply updates /dev/disk to reflect
> what's really there -- Especially being able to change only the label (or
> UUID), only on one partition w/o having to actually unmount other file
> systems
> on the disk....?
>
> Already implemented? Or doable? Or bad idea?
>
> Thanks,
> -linda

Already implemented :-).

The latest version of udev listens for inotify events on block
devices. When a utility writes to the block device (or rather, when
it closes it after opening it for writing), Udev will synthesize a
"change" event. The standard udev rules will re-check the device, and
update the links under /dev/disk to reflect changes in labels etc.

Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/