# Azure specific rules. ACTION!="add|change", GOTO="walinuxagent_end" SUBSYSTEM!="block", GOTO="walinuxagent_end" ATTRS{ID_VENDOR}!="Msft", GOTO="walinuxagent_end" ATTRS{ID_MODEL}!="Virtual_Disk", GOTO="walinuxagent_end" # Match the known ID parts for root and resource disks. ATTRS{device_id}=="?00000000-0000-*", ENV{fabric_name}="root", GOTO="wa_azure_names" ATTRS{device_id}=="?00000000-0001-*", ENV{fabric_name}="resource", GOTO="wa_azure_names" # Gen2 disk. ATTRS{device_id}=="{f8b3781a-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi0", GOTO="azure_datadisk" # Create symlinks for data disks attached. ATTRS{device_id}=="{f8b3781b-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi1", GOTO="azure_datadisk" ATTRS{device_id}=="{f8b3781c-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi2", GOTO="azure_datadisk" ATTRS{device_id}=="{f8b3781d-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi3", GOTO="azure_datadisk" GOTO="walinuxagent_end" # Parse out the fabric n ame based off of scsi indicators. LABEL="azure_datadisk" ENV{DEVTYPE}=="partition", PROGRAM="/bin/sh -c 'readlink /sys/class/block/%k/../device|cut -d: -f4'", ENV{fabric_name}="$env{fabric_scsi_controller}/lun$result" ENV{DEVTYPE}=="disk", PROGRAM="/bin/sh -c 'readlink /sys/class/block/%k/device|cut -d: -f4'", ENV{fabric_name}="$env{fabric_scsi_controller}/lun$result" ENV{fabric_name}=="scsi0/lun0", ENV{fabric_name}="root" ENV{fabric_name}=="scsi0/lun1", ENV{fabric_name}="resource" # Don't create a symlink for the cd-rom. ENV{fabric_name}=="scsi0/lun2", GOTO="walinuxagent_end" # Create the symlinks. LABEL="wa_azure_names" ENV{DEVTYPE}=="disk", SYMLINK+="disk/azure/$env{fabric_name}" ENV{DEVTYPE}=="partition", SYMLINK+="disk/azure/$env{fabric_name}-part%n" LABEL="walinuxagent_end"