summaryrefslogtreecommitdiff
path: root/rules/rules.d/60-persistent-storage.rules
AgeCommit message (Collapse)Author
2010-11-04Use ata_id, not scsi_id, on ATAPI devicesDavid Zeuthen
The major benefit here, is that we get the ATAPI device serial number. With SCSI ID we didn't get this since it's not part of the SCSI INQUIRY command. Specifically this means that we get symlinks to empty optical drives, e.g. /dev/disk/by-id/ata-VBOX_CD-ROM_VB2-01700376 which we didn't get earlier. So this is a major win. Also make ata_id work on CD-ROM devices when using /dev/bsg nodes so this works on both the scsi_device as well as the block device. We do this, basically, by issuing the ATA IDENTIFY PACKET DEVICE command instead of the ATA IDENTIFY command. We also use 16-byte pass-through ATA passthrough instead of 12-byte passthrough to avoid clashing with the MMC BLANK command. This means that we get this output # udevadm info -q all -p /sys/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 P: /devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 E: UDEV_LOG=3 E: DEVPATH=/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 E: DEVTYPE=scsi_device E: DRIVER=sr E: MODALIAS=scsi:t-0x05 E: SUBSYSTEM=scsi E: ID_ATA=1 E: ID_TYPE=cd E: ID_BUS=ata E: ID_MODEL=VBOX_CD-ROM E: ID_MODEL_ENC=VBOX\x20CD-ROM\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x 20\x20\x20\x20\x20\x20\x20 E: ID_REVISION=1.0 E: ID_SERIAL=VBOX_CD-ROM_VB2-01700376 E: ID_SERIAL_SHORT=VB2-01700376 instead of just # udevadm info -q all -p /sys/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 P: /devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 E: UDEV_LOG=3 E: DEVPATH=/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 E: DEVTYPE=scsi_device E: DRIVER=sr E: MODALIAS=scsi:t-0x05 E: SUBSYSTEM=scsi E: ID_SCSI=1 E: ID_VENDOR=VBOX E: ID_VENDOR_ENC=VBOX\x20\x20\x20\x20 E: ID_MODEL=CD-ROM E: ID_MODEL_ENC=CD-ROM\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20 E: ID_REVISION=1.0 E: ID_TYPE=cd Signed-off-by: David Zeuthen <davidz@redhat.com>
2010-10-30Run scsi_id and ata_id on the scsi_device objectDavid Zeuthen
In a multi-initiator setup, the HBA may very well export a SCSI device for a device that another initiator has already logged into. But since another initiator has already logged in, the kernel will not create a block device. Note that this is also the case for some RAID HBAs - for example, the LSI 1068 series cards will export a SCSI device for a disk that is in use by the HBAs RAID engine (no block device will be created here). Running scsi_id and ata_id on the actual SCSI device means that we can inquire the capabilities of the device. For example, we can check whether ID_ATA_FEATURE_SET_SMART and ID_ATA_FEATURE_SET_SMART_ENABLED is set and, if so, periodically poll the SMART status of the disk. Even when other initiators has claimed the disk and if the disk is in use by the RAID engine of the HBA. Note that we run scsi_id and ata_id on /dev/bsg/* nodes - this is safe to do because the scsi core guarantees that the bsg device has been created before the actual add uevent for the scsi_device is emitted. Since the block device is a direct child of the scsi_device we can avoid running scsi_id and ata_id again by simply importing the resulting ID_* properties from the parent. Signed-off-by: David Zeuthen <davidz@redhat.com>
2010-06-29Add virtio-blk by-id rules based on 'serial' attributeRyan Harper
Using virtio-blk serial attributes add rules to extract drive serial numbers and generate by-id links for the block device and partitions. With these rules added, we now see the following symlinks in disk/by-id % ls -al /dev/disk/by-id | grep vdb lrwxrwxrwx. 1 root root 9 Jun 1 22:09 virtio-QM00001 -> ../../vda lrwxrwxrwx. 1 root root 10 Jun 1 22:09 virtio-QM00001-part1 -> ../../vda1 Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
2010-05-25rules: optical drives - use ID_CDROM_MEDIA_TRACK_COUNT_DATAKay Sievers
We should not access non-data optical media, ans skip things like blkid. It will cause errors for some drives. https://bugzilla.kernel.org/show_bug.cgi?id=15757
2010-04-12replace "add|change" with "!remove"Kay Sievers
2009-12-04Export ID_WWN_VENDOR_EXTENSION and ID_WWN_WITH_EXTENSIONDavid Zeuthen
Some SCSI devices use the same WWN and have a WWN extension that we need to take into account when creating the /dev/disk/by-id/wwn symlinks. Thus, introduce ID_WWN_WITH_EXTENSION. This property will contain either the WWN (if no extension is present) or the WWN with the vendor extension appended. Example: # /lib/udev/ata_id/ata_id --export /dev/sda |grep WWN ID_WWN=0x5001517387d61905 ID_WWN_WITH_EXTENSION=0x5001517387d61905 # /lib/udev/scsi_id --whitelisted --export -d /dev/sdb |grep WWN ID_WWN=0x600508b400105df7 ID_WWN_VENDOR_EXTENSION=0x0000e00000d80000 ID_WWN_WITH_EXTENSION=0x600508b400105df70000e00000d80000 # /lib/udev/scsi_id --whitelisted --export -d /dev/sdc |grep WWN ID_WWN=0x600508b400105df7 ID_WWN_VENDOR_EXTENSION=0x0000e00000db0000 ID_WWN_WITH_EXTENSION=0x600508b400105df70000e00000db0000 Signed-off-by: David Zeuthen <davidz@redhat.com>
2009-11-25Also create /dev/disk/by-id/wwn-0x..-part%n symlinks for partitionsDavid Zeuthen
# ls -l /dev/disk/by-id/wwn-0x500 wwn-0x500000e01b83f360 wwn-0x50014ee25578924f-part1 wwn-0x500000e01b83f440 wwn-0x50014ee25578924f-part2 wwn-0x500000e01b83f520 wwn-0x50014ee2aabdc41b wwn-0x500000e01b843d90 wwn-0x50014ee2aabdc41b-part1 wwn-0x5000c50016359fd1 wwn-0x50014ee2aabdc41b-part2 wwn-0x50014ee0016eb4f5 wwn-0x5001517958cabd77 wwn-0x50014ee0016eb572 wwn-0x5001517958cabd77-part1 wwn-0x50014ee055d524e2 wwn-0x5001517958cabd77-part2 wwn-0x50014ee055d524e2-part1 wwn-0x5001517958d6a74e wwn-0x50014ee055d524e2-part2 wwn-0x5001517958d6a74e-part1 wwn-0x50014ee1003d9c50 wwn-0x5001517958d6a74e-part2 wwn-0x50014ee1003d9c50-part1 wwn-0x50024e9200c0c693 wwn-0x50014ee1003d9c50-part2 wwn-0x50024e9200c0c694 wwn-0x50014ee1aac30d4e wwn-0x50024e9200c0c6ae wwn-0x50014ee1aac30d4e-part1 wwn-0x50024e9200c0c6af wwn-0x50014ee1aac30d4e-part2 wwn-0x50024e9200c0c6b0 wwn-0x50014ee25578924f wwn-0x50024e9200c0c6b1 Signed-off-by: David Zeuthen <davidz@redhat.com>
2009-11-25Create /dev/disk/by-id/wwn-0x... symlinksDavid Zeuthen
Now that both ata_id and scsi_id exports the World Wide Name in the ID_WWN property, use this to create persistent symlinks. Example /dev/disk/by-id/wwn-0x500000e01b83f360 -> ../../sdn /dev/disk/by-id/wwn-0x500000e01b83f440 -> ../../sdm Signed-off-by: David Zeuthen <davidz@redhat.com>
2009-11-19rules: remove support for IDE (hd*) devicesKay Sievers
The kernel IDE drivers get deprecated now: http://article.gmane.org/gmane.linux.ide/43151 Almost everybody has switched over to libata devices long ago. Recent services do not work with the now deprecated IDE drivers at all and require libata drivers and SCSI infrastructure. Systems who care about the old stuff need to add the rules to the compat rules.
2009-09-20fix previous commit for CD detectionMartin Pitt
Do not run blkid twice. *brown paperbag*
2009-09-20fix single-session CD detectionMartin Pitt
ID_CDROM_MEDIA_SESSION_LAST_OFFSET is not set for CDs with only a single session (i. e. for the vast majority of CDs out there). The previous rules ran blkid with invalid arguments for these, causing CD detection to fail in DK-disks and gvfs. Now check whether we actually have ID_CDROM_MEDIA_SESSION_LAST_OFFSET, and if not, call blkid without -O for specifying the offset. Many thanks to Maxim Levitsky for tracking this down! https://launchpad.net/bugs/431055
2009-06-28rules: make ata_id properties the default for all ATA block devicesKay Sievers
We need to call ata_id as the default for libata sd* devices. We want ID_BUS=ata, and the ATA device proeprties, and be independent of the SCSI emulation with the truncated values. The links in /dev/disk/by-id/{ata-*,scsi-*} are still the same.
2009-06-28ata_id: sync ID_SERIAL(_SHORT) with other *_id toolsKay Sievers
ID_SERIAL is the full serial number used for the links, ID_SERIAL_SHORT is the device serial number.
2009-06-08path_id: delete old shell scriptKay Sievers
Removed with this is SAS disk support which never really worked properly, and legacy IDE disk support, which can be re-implemented if needed.
2009-06-08path_id: add iscsi supportKay Sievers
2009-06-08path_id: handle fibre channelKay Sievers
2009-06-06path_id: implement in C using libudevKay Sievers
2009-06-04rules: do not call path_id for virtual devicesKay Sievers
2009-05-11delete vol_id and require util-linux-ng's blkidKay Sievers
2009-04-21cdrom_id: add and use ID_CDROM_MEDIA to decide if we run vol_idKay Sievers
Some broken mobile phones offer a faked cdrom drive with a media without any tracks.
2009-03-25rules: replace IDE driver with media matchKay Sievers
2009-03-23rules: remove ram* from persisten disk links blacklistKay Sievers
2009-03-23rules: exclude mtd* from persistent disk linksDavid Brownell
2009-03-22rules: rename ide-floppy to ide-gdBorislav Petkov
The driver's name changed in the 2.6.28 timeframe.
2009-02-16rules: include loop block devices in persistent linksKay Sievers
2009-02-11rules: move OPTIONS to separate ruleKay Sievers
A failing IMPORT+ match would prevent the OPTIONS+= action from being applied.
2009-02-11rules: update persistent storage rules to use inotify watchesScott James Remnant
2008-12-02rules: ATA_COMPAT do not try to match on sr*, it will never have vendor ATAKay Sievers
2008-11-28rules: fix cciss disk/by-id/ linksKay Sievers
2008-11-25rules: exclude "btibm" devices from vol_id callsKay Sievers
2008-11-19rules: add persistent rules for memory stick block devicesHarald Hoyer
commit 5a9aed145ac0ffb3e29b1c8e0f19b34e277f9117 Author: Harald Hoyer <harald@redhat.com> Date: Wed Nov 19 11:22:30 2008 +0100 added persistent rules for memory stick block devices
2008-11-13rules: remove DEVTYPE disk/partitionKay Sievers
2008-10-01rules: ieee1394 - create both, by-id/scsi-* and by-id/ieee-* linksKay Sievers
2008-08-22rules: optical drives - probe at last session offset, do not probe for raidKay Sievers
2008-08-02rules: run vol_id on opticals only if media is foundKay Sievers
Opening an optical drive device node without O_NONBLOCK autocloses the tray, we run vol_id on every media change by kernel emitted "change" events, which can make it hard to change the media when the tray closes immediatey again.:) We check for cdrom_id to indicate an existing track, if no media is found, we will not open the device with vol_id. Thanks to Christian Krause and DavidZ for debugging and testing.
2008-07-18move default rules from /etc/udev/rules.d/ to /lib/udev/rules.d/Kay Sievers
None of these rules is supposed to be changed by users, so move them out of /etc. Custom rules, and automatically generated rules stay in /etc. All rules are still processed in lexical order, regardless which directory they live in.