Re: [PATCH] udev: Add udev rules to create by-partuuid for md device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 03/25/2019 07:43 AM, NeilBrown wrote:
> On Tue, Mar 19 2019, Liwei Song wrote:
> 
>> This rules will create link under /dev/disk/by-partuuid/ for
>> MD devices partition, with which will support specify
>> root=PARTUUID=XXX to boot rootfs.
>>
>> Signed-off-by: Liwei Song <liwei.song@xxxxxxxxxxxxx>
>> ---
>>  udev-md-raid-arrays.rules | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/udev-md-raid-arrays.rules b/udev-md-raid-arrays.rules
>> index c95ec7b1e4a9..5b99d5873ade 100644
>> --- a/udev-md-raid-arrays.rules
>> +++ b/udev-md-raid-arrays.rules
>> @@ -30,6 +30,7 @@ IMPORT{builtin}="blkid"
>>  OPTIONS+="link_priority=100"
>>  OPTIONS+="watch"
>>  ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
>> +ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}"
>>  ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
>>  
>>  ENV{MD_LEVEL}=="raid[1-9]*", ENV{SYSTEMD_WANTS}+="mdmonitor.service"
>> -- 
>> 2.7.4
> 
> This doesn't make any sense to me.
> Presumably you want the by-partuuid link to point to a partition in the
> array?

Yes, That is what I want.

> But this code will create a link pointing to the array.

Because there is no ID_PART_ENTRY_UUID for the array, only partition in the array have
such attribute,So in my case it will only create by-partuuid for a partition.

For example, there is an md126 raid array,

Disk /dev/md126: 44.2 GiB, 47501541376 bytes, 92776448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 622CA1DE-A938-4704-98B0-5EAB0D3A7AAC

Device          Start      End  Sectors  Size Type
/dev/md126p1     2048  2000895  1998848  976M EFI System
/dev/md126p2  2000896 88138671 86137776 41.1G Linux filesystem
/dev/md126p3 88138672 92776414  4637743  2.2G Linux swap



# udevadm info /dev/md126 |grep ID_PART_ENTRY_UUID
this will get nothing since array do not have ID_PART_ENTRY_UUID.

# udevadm info /dev/md126p1 |grep ID_PART_ENTRY_UUID
E: ID_PART_ENTRY_UUID=018496b3-84e1-4c9f-864e-81650b21402f
# udevadm info /dev/md126p2 |grep ID_PART_ENTRY_UUID
E: ID_PART_ENTRY_UUID=2c1df1c5-41c8-42b4-a874-95dbf07820d5
# udevadm info /dev/md126p3 |grep ID_PART_ENTRY_UUID
E: ID_PART_ENTRY_UUID=bccde74f-efee-4b99-860c-998493d549a9

it will create by-partuuid under /dev/disk/ for the partition in array

# ls /dev/disk/by-partuuid/ -all
lrwxrwxrwx 1 root root  13 Mar 22 03:33 018496b3-84e1-4c9f-864e-81650b21402f -> ../../md126p1
lrwxrwxrwx 1 root root  13 Mar 22 03:33 2c1df1c5-41c8-42b4-a874-95dbf07820d5 -> ../../md126p2
lrwxrwxrwx 1 root root  13 Mar 22 03:33 bccde74f-efee-4b99-860c-998493d549a9 -> ../../md126p3

if my rootfs store in /dev/md126p2, then I can specify root=PARTUUID=2c1df1c5-41c8-42b4-a874-95dbf07820d5
through command line to boot it.


Thanks,
Liwei.



> 
> Maybe I'm confused, but I need a more detailed explanation before this
> can make sense to me.
> 
> Thanks,
> NeilBrown
> 



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux