У меня на внешнем жестаке лежит запасная система, которая с помощью udev сама монтируется при подключении, сама монтирует раздел с корнем, монтирует proc, sys и dev, чрутируется и вызывает git pull, чтобы подцепить свежие конфиги. Проблема в том, что когда я хочу отцепить жёсткий диск и унести с собой (обычно я делал udisks --detach /dev/sdX), этот самый udisks говорит, что 「Detach failed: One or more partitions are busy on /dev/sdb」. Вот собственно, правила, по которым udev монтирует и размонтирует диск
ACTION=="add", KERNEL=="sd[b-z]2", DRIVERS=="usb", ATTRS{product}=="StoreJet Transcend", ATTRS{serial}=="322549CB7013", RUN+="/bin/bash -c '/bin/mount /chroot/rescue &>/tmp/mlog && …'"
ACTION=="remove", KERNEL=="sd[b-z]", DRIVERS=="usb", ATTRS{product}=="StoreJet Transcend", ATTRS{serial}=="322549CB7013", RUN+="/bin/bash -c '/bin/umount -l /chroot/rescue/sys; /bin/umount -l /chroot/rescue/dev; /bin/umount -l /chroot/rescue/proc; /bin/umount /chroot/rescue'"
Проверить, точно ли провоцирует udisks --detach событие remove я не могу, потому что udevd даже с ключом --debug, даже с udev_log=«debug» в /etc/udev/udev.conf в /var/log/messages выводит ошибки о том что SMART не удалось записать что-то там, когда диск детачит udisks, а в /run/udevdebug.log всего пара строчек о том, что udev не нашёл medium на sdc и sdd (это диски смартфона, который заряжается, но не подсоединён, как накопитель).