-# IDE block devices
-BUS="ide", KERNEL="hd[a-z]*", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-
-# permissions for SCSI CD devices
-BUS="scsi", KERNEL="s[grt][0-9]*", SYSFS{type}="5", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}", MODE="0660", GROUP="cdrom"
-
-# SCSI block devices
-BUS="scsi", KERNEL="sd[a-z]", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="sd[a-z][0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="sd[a-i][a-z]", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="sd[a-i][a-z][0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="s[grt][0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="scd[0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="st[0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="nst[0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
+# default permissions for block devices
+SUBSYSTEM="block", GROUP="disk"
+SUBSYSTEM="block", SYSFS{removable}="1", GROUP="floppy"
+
+# workaround for devices which do not report media changes
+BUS="ide", KERNEL="hd[a-z]", SYSFS{removable}="1", \
+ PROGRAM="/bin/cat /proc/ide/%k/model", RESULT="IOMEGA ZIP *", \
+ NAME{all_partitions}="%k%n", GROUP="floppy"
+
+# IDE devices
+BUS="ide", KERNEL="hd[a-z]", SYSFS{removable}="1", \
+ PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom*", \
+ GROUP="cdrom"
+BUS="ide", KERNEL="hd[a-z]", SYSFS{removable}="1", \
+ PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="floppy*", \
+ GROUP="floppy"
+BUS="ide", KERNEL="hd[a-z]*", \
+ PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}"
+BUS="ide", KERNEL="ht[0-9]*", GROUP="tape"
+BUS="ide", KERNEL="nht[0-9]*", GROUP="tape"
+
+# SCSI devices
+BUS="scsi", KERNEL="sd[a-z]", \
+ PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}"
+BUS="scsi", KERNEL="sd[a-z][0-9]*", \
+ PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}"
+BUS="scsi", KERNEL="sd[a-i][a-z]", \
+ PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}"
+BUS="scsi", KERNEL="sd[a-i][a-z][0-9]*", \
+ PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}"
+BUS="scsi", KERNEL="s[gr][0-9]*", SYSFS{type}="5", \
+ PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}", GROUP="cdrom"
+BUS="scsi", KERNEL="sr[0-9]*", \
+ PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}", GROUP="cdrom"
+BUS="scsi", KERNEL="sg[0-9]*", \
+ PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}"
+BUS="scsi", KERNEL="st[0-9]*", \
+ PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}", GROUP="tape"
+BUS="scsi", KERNEL="nst[0-9]*", \
+ PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}", GROUP="tape"
+
+# RAID controllers
+KERNEL="cciss!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", \
+ NAME="%c{1}", SYMLINK="%k"
+KERNEL="ida!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", \
+ NAME="%c{1}", SYMLINK="%k"
+KERNEL="rd!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", \
+ NAME="%c{1}", SYMLINK="%k"
+
+# other block devices
+KERNEL="md[0-9]*", NAME="md/%n",
+KERNEL="loop[0-9]*", NAME="loop/%n"
+KERNEL="ram[0-9]*", NAME="rd/%n"