rules: Handle MMC boot partitions by-path correctly (#6026)
Many eMMC devices have separate boot partitions that aren't part of the
normal partition table that show up as /dev/mmcblk[0-9]boot[0-9]. These
partitions are generally small (128KB to 16MB) and typically hold a boot
loader, boot loader data or a recovery image. Match these and create
-boot%n by-path symlinks.
Prior to this change by-path symlinks for the main device would be
incorrectly linked to one of the boot partitions.
For instance before:
/dev/disk/by-path/platform-
219c000.usdhc linked to /dev/mmcblk1boot1
Now:
/dev/disk/by-path/platform-
219c000.usdhc links to /dev/mmcblk1
/dev/disk/by-path/platform-
219c000.usdhc-boot0 links to /dev/mmcblk1boot0
/dev/disk/by-path/platform-
219c000.usdhc-boot1 links to /dev/mmcblk1boot1
On systems that support multiple SD/MMC devices it can be essential to
have by-path links to these devices since device names vary depending on
which other devices are connected.