]>
Commit | Line | Data |
---|---|---|
ad9deeeb | 1 | # persistent storage links: /dev/{disk,tape}/{by-id,by-uuid,by-label,by-path,by-name} |
a3f129d0 KS |
2 | # scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare@suse.de> |
3 | ||
ad9deeeb | 4 | ACTION!="add", GOTO="persistent_storage_end" |
0fe4cffd | 5 | |
97f39d48 | 6 | KERNEL=="nst[0-9]", SUBSYSTEMS=="scsi", ENV{ID_SERIAL}=="", IMPORT{program}="scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode" |
0fe4cffd JW |
7 | KERNEL=="nst[0-9]", SUBSYSTEMS=="scsi", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst" |
8 | ||
9 | # type 8 devices are "Medium Changers" | |
97f39d48 | 10 | KERNEL=="sg*", SUBSYSTEMS=="scsi", ATTRS{type}=="8", ENV{ID_SERIAL}=="", IMPORT{program}="scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode" |
0fe4cffd JW |
11 | KERNEL=="sg*", SUBSYSTEMS=="scsi", ATTRS{type}=="8", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}" |
12 | ||
ad9deeeb | 13 | SUBSYSTEM!="block", GOTO="persistent_storage_end" |
a3f129d0 KS |
14 | |
15 | # skip rules for inappropriate block devices | |
50fec657 | 16 | KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*", GOTO="persistent_storage_end" |
a3f129d0 | 17 | |
1376ba59 | 18 | # never access non-cdrom removable ide devices, the drivers are causing event loops on open() |
50fec657 | 19 | KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end" |
1376ba59 | 20 | KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GOTO="persistent_storage_end" |
aeaf0fdd | 21 | |
51b5c5f8 FMDN |
22 | # ignore partitions that span the entire disk |
23 | ATTR{whole_disk}=="", GOTO="persistent_storage_end" | |
24 | ||
aeaf0fdd | 25 | # for partitions import parent information |
fa0bca01 | 26 | KERNEL=="*[0-9]", IMPORT{parent}="ID_*" |
a3f129d0 KS |
27 | |
28 | # by-id (hardware serial number) | |
4809b49e | 29 | KERNEL=="hd*[!0-9]", IMPORT{program}="ata_id --export $tempnode" |
1376ba59 | 30 | KERNEL=="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}" |
178b8249 | 31 | KERNEL=="hd*[0-9]", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}-part%n" |
a3f129d0 | 32 | |
fa0bca01 | 33 | KERNEL=="sd*[!0-9]|sr*|st*", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394" |
97f39d48 KS |
34 | KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}=="", IMPORT{program}="usb_id --export" |
35 | KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}=="", IMPORT{program}="scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode" | |
a7e2961c | 36 | KERNEL=="cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}=="", IMPORT{program}="scsi_id --export --whitelisted --ignore-sysfs -s %p -d $tempnode", ENV{ID_BUS}="cciss" |
87cf9f5a HR |
37 | KERNEL=="sd*[!0-9]|sr*|cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" |
38 | KERNEL=="sd*[0-9]|cciss*p[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" | |
a3f129d0 | 39 | |
0809c264 | 40 | # libata compat (links like hd*) |
3f504ce7 | 41 | KERNEL=="sd*[!0-9]|sr*", ENV{ID_VENDOR}=="ATA", PROGRAM="ata_id $tempnode", ENV{ID_ATA_COMPAT}="$result" |
0809c264 KS |
42 | KERNEL=="sd*[!0-9]|sr*", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}" |
43 | KERNEL=="sd*[0-9]", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}-part%n" | |
44 | ||
1a414449 KS |
45 | KERNEL=="mmcblk[0-9]", ATTR{name}=="?*", ATTR{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}" |
46 | KERNEL=="mmcblk[0-9]p[0-9]", ATTR{name}=="?*", ATTR{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n" | |
47 | ||
a3f129d0 | 48 | # by-path (shortest physical path) |
87cf9f5a HR |
49 | KERNEL=="*[!0-9]|sr*|cciss?c[0-9]d[0-9]", IMPORT{program}="path_id %p", SYMLINK+="disk/by-path/$env{ID_PATH}" |
50 | KERNEL=="*[0-9]|cciss*p[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n" | |
4809b49e | 51 | KERNEL=="st*", IMPORT{program}="path_id %p", SYMLINK+="tape/by-path/$env{ID_PATH}" |
aeaf0fdd | 52 | KERNEL=="sr*|st*", GOTO="persistent_storage_end" |
aeaf0fdd KS |
53 | |
54 | # by-label/by-uuid (filesystem properties) | |
1376ba59 | 55 | KERNEL=="*[!0-9]", ATTR{removable}=="1", GOTO="persistent_storage_end" |
4809b49e | 56 | IMPORT{program}="vol_id --export $tempnode" |
9e23328e KS |
57 | ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" |
58 | ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" | |
a3f129d0 KS |
59 | |
60 | # BIOS Enhanced Disk Device | |
4809b49e | 61 | KERNEL=="*[!0-9]", IMPORT{program}="edd_id --export $tempnode" |
144d1c97 KS |
62 | KERNEL=="*[!0-9]", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}" |
63 | KERNEL=="*[0-9]", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}-part%n" | |
a3f129d0 | 64 | |
ad9deeeb | 65 | LABEL="persistent_storage_end" |