autoNAS / config / 99-autonas-disk.rules
Newer Older
5b5a565 3 months ago History
38 lines | 3.781kb
Bogdan Timofte authored 3 months ago
1
# AutoNAS udev rules
2
# Place this file in /etc/udev/rules.d/
3

            
4
# Rule for USB storage devices - trigger on add/remove
5
# Detect USB disks (whole disk)
6
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="usb", RUN+="/bin/systemctl start autonas-attach@%E{ID_FS_UUID}.service"
7
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="usb", RUN+="/usr/local/bin/autonas-disk-handler.sh detach %E{ID_FS_UUID}"
8

            
9
# Detect USB partitions (more common case)
10
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="usb", RUN+="/bin/systemctl start autonas-attach@%E{ID_FS_UUID}.service"
11
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="usb", RUN+="/usr/local/bin/autonas-disk-handler.sh detach %E{ID_FS_UUID}"
12

            
13
# Rule for ATA/SATA external storage devices (USB-to-SATA bridges)
14
# Detect ATA disks (whole disk) - these appear as ATA but are actually USB external
15
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="ata", ATTRS{removable}=="1", RUN+="/usr/local/bin/autonas-udev-wrapper.sh attach %E{ID_FS_UUID}"
16
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="ata", ATTRS{removable}=="1", RUN+="/usr/local/bin/autonas-disk-handler.sh detach %E{ID_FS_UUID}"
17

            
18
# Detect ATA partitions (more common case)
19
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="ata", ATTRS{removable}=="1", RUN+="/usr/local/bin/autonas-udev-wrapper.sh attach %E{ID_FS_UUID}"
20
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="ata", ATTRS{removable}=="1", RUN+="/usr/local/bin/autonas-disk-handler.sh detach %E{ID_FS_UUID}"
21

            
22
# Special rule for USB-to-SATA bridges that appear as ATA but have USB properties
23
# This safely identifies external USB drives that appear as ATA
24
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="ata", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/local/bin/autonas-udev-wrapper.sh attach %E{ID_FS_UUID}"
25
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="ata", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/local/bin/autonas-disk-handler.sh detach %E{ID_FS_UUID}"
26

            
27
# Detect USB-to-SATA bridge partitions
28
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="ata", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/local/bin/autonas-udev-wrapper.sh attach %E{ID_FS_UUID}"
29
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="ata", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/local/bin/autonas-disk-handler.sh detach %E{ID_FS_UUID}"
30

            
31
# Rule for SCSI external storage devices
32
# Detect removable disks (whole disk) - exclude USB devices (handled above)
33
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ATTRS{removable}=="1", ENV{ID_BUS}!="usb", RUN+="/bin/systemctl start autonas-attach@%E{ID_FS_UUID}.service"
34
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ATTRS{removable}=="1", ENV{ID_BUS}!="usb", RUN+="/usr/local/bin/autonas-disk-handler.sh detach %E{ID_FS_UUID}"
35

            
36
# Detect removable partitions (more common case) - exclude USB devices (handled above)
37
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ATTRS{removable}=="1", ENV{ID_BUS}!="usb", RUN+="/bin/systemctl start autonas-attach@%E{ID_FS_UUID}.service"
38
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ATTRS{removable}=="1", ENV{ID_BUS}!="usb", RUN+="/usr/local/bin/autonas-disk-handler.sh detach %E{ID_FS_UUID}"