On 8/2/07, Martin Hicks <mort [ at ] bork [ dot ] org> wrote: > > > > On Thu, Aug 02, 2007 at 03:06:33PM -0400, Charles Nadeau wrote: > > > > My mdadm.conf contains: > > > > Mosix3 ~ # cat /etc/mdadm.conf > > ARRAY /dev/md2 level=raid1 num-devices=2 > > UUID=efacfbe7:6e9e0810:b319f3f2:2f766414 > > ARRAY /dev/md1 level=raid1 num-devices=2 > > UUID=a6fdc8f9:cff41e4c:b2de13d1:5c346c07 > > ARRAY /dev/md0 level=raid0 num-devices=2 > > UUID=c240389a:89523183:7722dc6b:ec923cb9 > > ARRAY /dev/md3 level=raid1 num-devices=2 > > UUID=3b4a8b04:36d07c5f:8168f08f:cd06dedb > > > > There is no reference to any drive there. I'll try to safely re-write > it. > > THis should be fine, afaik. If the partition type on the disks is linux > raid, the md driver will scan all partitions of this type, look for the > UUID in the raid superblock and assemble the arrays correctly. I did some tests last night. I commented out the line mounting my RAID arrays in my /etc/fstab, powered on my external SCSI disk arrays and booted my machine. It tried to assemble /dev/md0 but it recognized that the drives were not the same as the "original" /dev/md0 and failed, which was the behaviour I expected. But it allowed me to have a complete lists of all the drives in my machine (so I can ): Mosix3 ~ # ls -lR /dev/disk /dev/disk: total 0 drwxr-xr-x 2 root root 720 Aug 2 12:43 by-id drwxr-xr-x 2 root root 720 Aug 2 12:43 by-path drwxr-xr-x 2 root root 80 Aug 2 12:43 by-uuid /dev/disk/by-id: total 0 lrwxrwxrwx 1 root root 9 Aug 2 12:43ata-Maxtor_6L300R0_L60GKR0H -> ../../hdc lrwxrwxrwx 1 root root 10 Aug 2 12:43ata-Maxtor_6L300R0_L60GKR0H-part1 -> ../../hdc1 lrwxrwxrwx 1 root root 9 Aug 2 12:43ata-Maxtor_6L300R0_L60GKTWH -> ../../hde lrwxrwxrwx 1 root root 10 Aug 2 12:43ata-Maxtor_6L300R0_L60GKTWH-part1 -> ../../hde1 lrwxrwxrwx 1 root root 9 Aug 2 12:43ata-Maxtor_6L300R0_L60GL3KH -> ../../hdg lrwxrwxrwx 1 root root 10 Aug 2 12:43ata-Maxtor_6L300R0_L60GL3KH-part1 -> ../../hdg1 lrwxrwxrwx 1 root root 9 Aug 2 12:43 ata-ST3400620A_5QG00PTD -> ../../hdi lrwxrwxrwx 1 root root 10 Aug 2 12:43ata-ST3400620A_5QG00PTD-part1 -> ../../hdi1 lrwxrwxrwx 1 root root 9 Aug 2 12:43ata-TOSHIBA_CD-ROM_XM-6202B_b___ -> ../../hdb lrwxrwxrwx 1 root root 9 Aug 2 12:43ata-WDC_WD800BB-00CAA1_WD-WMA8E7164052 -> ../../hda lrwxrwxrwx 1 root root 10 Aug 2 12:43ata-WDC_WD800BB-00CAA1_WD-WMA8E7164052-part1 -> ../../hda1 lrwxrwxrwx 1 root root 10 Aug 2 12:43ata-WDC_WD800BB-00CAA1_WD-WMA8E7164052-part2 -> ../../hda2 lrwxrwxrwx 1 root root 10 Aug 2 12:43ata-WDC_WD800BB-00CAA1_WD-WMA8E7164052-part3 -> ../../hda3 lrwxrwxrwx 1 root root 10 Aug 2 12:43ata-WDC_WD800BB-00CAA1_WD-WMA8E7164052-part4 -> ../../hda4 lrwxrwxrwx 1 root root 9 Aug 2 12:43 scsi-20010b9ff0a0d0a11 -> ../../sdd lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-20010b9ff0a0d0a11-part1 -> ../../sdd1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-20010b9ff0a0d0a11-part2 -> ../../sdd2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 scsi-35005076206d4c15f -> ../../sdb lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-35005076206d4c15f-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-35005076206d4c15f-part2 -> ../../sdb2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 scsi-35005076206d4cc06 -> ../../sdc lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-35005076206d4cc06-part1 -> ../../sdc1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-35005076206d4cc06-part2 -> ../../sdc2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 scsi-35005076706c87c8b -> ../../sda lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-35005076706c87c8b-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-35005076706c87c8b-part2 -> ../../sda2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 scsi-SATA_ST3300831AS_3NF0G35L -> ../../sdg lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-SATA_ST3300831AS_3NF0G35L-part1 -> ../../sdg1 lrwxrwxrwx 1 root root 9 Aug 2 12:43 scsi-SATA_ST3500630AS_5QG04MV9 -> ../../sdf lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-SATA_ST3500630AS_5QG04MV9-part1 -> ../../sdf1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-SATA_ST3500630AS_5QG04MV9-part2 -> ../../sdf2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 scsi-SATA_ST3500630AS_5QG04MZX -> ../../sde lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-SATA_ST3500630AS_5QG04MZX-part1 -> ../../sde1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 scsi-SATA_ST3500630AS_5QG04MZX-part2 -> ../../sde2 /dev/disk/by-path: total 0 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:08.0-scsi-0:0:0:0 -> ../../sde lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:08.0-scsi-0:0:0:0-part1 -> ../../sde1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:08.0-scsi-0:0:0:0-part2 -> ../../sde2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:12:0 -> ../../sdd lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:12:0-part1 -> ../../sdd1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:12:0-part2 -> ../../sdd2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:1:0 -> ../../sda lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:1:0-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:1:0-part2 -> ../../sda2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:6:0 -> ../../sdb lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:6:0-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:6:0-part2 -> ../../sdb2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:9:0 -> ../../sdc lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:9:0-part1 -> ../../sdc1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0b.0-scsi-0:0:9:0-part2 -> ../../sdc2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0d.0-ide-0:0 -> ../../hde lrwxrwxrwx 1 root root 10 Aug 2 12:43pci-0000:00:0d.0-ide-0:0-part1 -> ../../hde1 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0d.0-ide-1:0 -> ../../hdg lrwxrwxrwx 1 root root 10 Aug 2 12:43pci-0000:00:0d.0-ide-1:0-part1 -> ../../hdg1 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0d.1-ide-0:0 -> ../../hdi lrwxrwxrwx 1 root root 10 Aug 2 12:43pci-0000:00:0d.1-ide-0:0-part1 -> ../../hdi1 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0f.0-scsi-0:0:0:0 -> ../../sdf lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0f.0-scsi-0:0:0:0-part1 -> ../../sdf1 lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0f.0-scsi-0:0:0:0-part2 -> ../../sdf2 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0f.0-scsi-1:0:0:0 -> ../../sdg lrwxrwxrwx 1 root root 10 Aug 2 12:43 pci-0000:00:0f.0-scsi-1:0:0:0-part1 -> ../../sdg1 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0f.1-ide-0:0 -> ../../hda lrwxrwxrwx 1 root root 10 Aug 2 12:43pci-0000:00:0f.1-ide-0:0-part1 -> ../../hda1 lrwxrwxrwx 1 root root 10 Aug 2 12:43pci-0000:00:0f.1-ide-0:0-part2 -> ../../hda2 lrwxrwxrwx 1 root root 10 Aug 2 12:43pci-0000:00:0f.1-ide-0:0-part3 -> ../../hda3 lrwxrwxrwx 1 root root 10 Aug 2 12:43pci-0000:00:0f.1-ide-0:0-part4 -> ../../hda4 lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0f.1-ide-0:1 -> ../../hdb lrwxrwxrwx 1 root root 9 Aug 2 12:43 pci-0000:00:0f.1-ide-1:0 -> ../../hdc lrwxrwxrwx 1 root root 10 Aug 2 12:43pci-0000:00:0f.1-ide-1:0-part1 -> ../../hdc1 /dev/disk/by-uuid: total 0 lrwxrwxrwx 1 root root 10 Aug 2 12:4398680beb-c935-40a1-9c38-ae01b8c21b88 -> ../../hda1 lrwxrwxrwx 1 root root 10 Aug 2 12:43a5702d8d-f05f-42ee-a1d7-333eec156994 -> ../../hda3 Mosix3 ~ # udevinfo -a -p /sys/block/sda Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/block/sda': KERNEL=="sda" SUBSYSTEM=="block" DRIVER=="" ATTR{stat}==" 36 173 718 124 0 0 0 0 0 112 124" ATTR{size}=="35843670" ATTR{removable}=="0" ATTR{range}=="16" ATTR{dev}=="8:0" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:1/0:0:1:0': KERNELS=="0:0:1:0" SUBSYSTEMS=="scsi" DRIVERS=="sd" ATTRS{ioerr_cnt}=="0x1" ATTRS{iodone_cnt}=="0x3e" ATTRS{iorequest_cnt}=="0x3e" ATTRS{iocounterbits}=="32" ATTRS{timeout}=="30" ATTRS{state}=="running" ATTRS{rev}=="S96H" ATTRS{model}=="DDYS-T18350N " ATTRS{vendor}=="IBM " ATTRS{scsi_level}=="4" ATTRS{type}=="0" ATTRS{queue_type}=="ordered" ATTRS{queue_depth}=="32" ATTRS{device_blocked}=="0" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:1': KERNELS=="target0:0:1" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0': KERNELS=="host0" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0b.0': KERNELS=="0000:00:0b.0" SUBSYSTEMS=="pci" DRIVERS=="aic7xxx" ATTRS{broken_parity_status}=="0" ATTRS{enable}=="1" ATTRS{modalias}=="pci:v00009005d00000080sv00009005sd0000E2A0bc01sc00i00" ATTRS{local_cpus}=="1" ATTRS{irq}=="201" ATTRS{class}=="0x010000" ATTRS{subsystem_device}=="0xe2a0" ATTRS{subsystem_vendor}=="0x9005" ATTRS{device}=="0x0080" ATTRS{vendor}=="0x9005" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" Mosix3 ~ # udevinfo -a -p /sys/block/sdb Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/block/sdb': KERNEL=="sdb" SUBSYSTEM=="block" DRIVER=="" ATTR{stat}==" 32 162 598 136 0 0 0 0 0 136 136" ATTR{size}=="35843670" ATTR{removable}=="0" ATTR{range}=="16" ATTR{dev}=="8:16" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:6/0:0:6:0': KERNELS=="0:0:6:0" SUBSYSTEMS=="scsi" DRIVERS=="sd" ATTRS{ioerr_cnt}=="0x1" ATTRS{iodone_cnt}=="0x3a" ATTRS{iorequest_cnt}=="0x3a" ATTRS{iocounterbits}=="32" ATTRS{timeout}=="30" ATTRS{state}=="running" ATTRS{rev}=="S96H" ATTRS{model}=="DDYS-T18350N " ATTRS{vendor}=="IBM " ATTRS{scsi_level}=="4" ATTRS{type}=="0" ATTRS{queue_type}=="ordered" ATTRS{queue_depth}=="32" ATTRS{device_blocked}=="0" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:6': KERNELS=="target0:0:6" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0': KERNELS=="host0" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0b.0': KERNELS=="0000:00:0b.0" SUBSYSTEMS=="pci" DRIVERS=="aic7xxx" ATTRS{broken_parity_status}=="0" ATTRS{enable}=="1" ATTRS{modalias}=="pci:v00009005d00000080sv00009005sd0000E2A0bc01sc00i00" ATTRS{local_cpus}=="1" ATTRS{irq}=="201" ATTRS{class}=="0x010000" ATTRS{subsystem_device}=="0xe2a0" ATTRS{subsystem_vendor}=="0x9005" ATTRS{device}=="0x0080" ATTRS{vendor}=="0x9005" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" Mosix3 ~ # udevinfo -a -p /sys/block/sdc Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/block/sdc': KERNEL=="sdc" SUBSYSTEM=="block" DRIVER=="" ATTR{stat}==" 31 159 566 124 0 0 0 0 0 108 124" ATTR{size}=="35843670" ATTR{removable}=="0" ATTR{range}=="16" ATTR{dev}=="8:32" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:9/0:0:9:0': KERNELS=="0:0:9:0" SUBSYSTEMS=="scsi" DRIVERS=="sd" ATTRS{ioerr_cnt}=="0x1" ATTRS{iodone_cnt}=="0x39" ATTRS{iorequest_cnt}=="0x39" ATTRS{iocounterbits}=="32" ATTRS{timeout}=="30" ATTRS{state}=="running" ATTRS{rev}=="S96H" ATTRS{model}=="DDYS-T18350N " ATTRS{vendor}=="IBM " ATTRS{scsi_level}=="4" ATTRS{type}=="0" ATTRS{queue_type}=="ordered" ATTRS{queue_depth}=="32" ATTRS{device_blocked}=="0" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:9': KERNELS=="target0:0:9" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0': KERNELS=="host0" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0b.0': KERNELS=="0000:00:0b.0" SUBSYSTEMS=="pci" DRIVERS=="aic7xxx" ATTRS{broken_parity_status}=="0" ATTRS{enable}=="1" ATTRS{modalias}=="pci:v00009005d00000080sv00009005sd0000E2A0bc01sc00i00" ATTRS{local_cpus}=="1" ATTRS{irq}=="201" ATTRS{class}=="0x010000" ATTRS{subsystem_device}=="0xe2a0" ATTRS{subsystem_vendor}=="0x9005" ATTRS{device}=="0x0080" ATTRS{vendor}=="0x9005" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" Mosix3 ~ # udevinfo -a -p /sys/block/sdd Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/block/sdd': KERNEL=="sdd" SUBSYSTEM=="block" DRIVER=="" ATTR{stat}==" 34 119 720 20 0 0 0 0 0 20 20" ATTR{size}=="71833096" ATTR{removable}=="0" ATTR{range}=="16" ATTR{dev}=="8:48" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:12/0:0:12:0 ': KERNELS=="0:0:12:0" SUBSYSTEMS=="scsi" DRIVERS=="sd" ATTRS{ioerr_cnt}=="0x1" ATTRS{iodone_cnt}=="0x3c" ATTRS{iorequest_cnt}=="0x3c" ATTRS{iocounterbits}=="32" ATTRS{timeout}=="30" ATTRS{state}=="running" ATTRS{rev}=="DFL0" ATTRS{model}=="ATLAS10K4_36WLS " ATTRS{vendor}=="MAXTOR " ATTRS{scsi_level}=="4" ATTRS{type}=="0" ATTRS{queue_type}=="ordered" ATTRS{queue_depth}=="32" ATTRS{device_blocked}=="0" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:12': KERNELS=="target0:0:12" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0': KERNELS=="host0" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0b.0': KERNELS=="0000:00:0b.0" SUBSYSTEMS=="pci" DRIVERS=="aic7xxx" ATTRS{broken_parity_status}=="0" ATTRS{enable}=="1" ATTRS{modalias}=="pci:v00009005d00000080sv00009005sd0000E2A0bc01sc00i00" ATTRS{local_cpus}=="1" ATTRS{irq}=="201" ATTRS{class}=="0x010000" ATTRS{subsystem_device}=="0xe2a0" ATTRS{subsystem_vendor}=="0x9005" ATTRS{device}=="0x0080" ATTRS{vendor}=="0x9005" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" Mosix3 ~ # udevinfo -a -p /sys/block/sde Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/block/sde': KERNEL=="sde" SUBSYSTEM=="block" DRIVER=="" ATTR{stat}==" 1692 368 13081 9696 0 0 0 0 0 9660 9696" ATTR{size}=="976773168" ATTR{removable}=="0" ATTR{range}=="16" ATTR{dev}=="8:64" looking at parent device '/devices/pci0000:00/0000:00:08.0/host1/target1:0:0/1:0:0:0': KERNELS=="1:0:0:0" SUBSYSTEMS=="scsi" DRIVERS=="sd" ATTRS{ioerr_cnt}=="0x0" ATTRS{iodone_cnt}=="0x6a9" ATTRS{iorequest_cnt}=="0x6a9" ATTRS{iocounterbits}=="32" ATTRS{timeout}=="30" ATTRS{state}=="running" ATTRS{rev}=="3.AA" ATTRS{model}=="ST3500630AS " ATTRS{vendor}=="ATA " ATTRS{scsi_level}=="6" ATTRS{type}=="0" ATTRS{queue_type}=="none" ATTRS{queue_depth}=="1" ATTRS{device_blocked}=="0" looking at parent device '/devices/pci0000:00/0000:00:08.0/host1/target1:0:0': KERNELS=="target1:0:0" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:08.0/host1': KERNELS=="host1" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:08.0': KERNELS=="0000:00:08.0" SUBSYSTEMS=="pci" DRIVERS=="sata_promise" ATTRS{broken_parity_status}=="0" ATTRS{enable}=="1" ATTRS{modalias}=="pci:v0000105Ad00003373sv00001043sd000080F5bc01sc04i00" ATTRS{local_cpus}=="1" ATTRS{irq}=="185" ATTRS{class}=="0x010400" ATTRS{subsystem_device}=="0x80f5" ATTRS{subsystem_vendor}=="0x1043" ATTRS{device}=="0x3373" ATTRS{vendor}=="0x105a" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" Mosix3 ~ # udevinfo -a -p /sys/block/sdf Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/block/sdf': KERNEL=="sdf" SUBSYSTEM=="block" DRIVER=="" ATTR{stat}==" 1689 358 12977 9712 0 0 0 0 0 9668 9712" ATTR{size}=="976773168" ATTR{removable}=="0" ATTR{range}=="16" ATTR{dev}=="8:80" looking at parent device '/devices/pci0000:00/0000:00:0f.0/host3/target3:0:0/3:0:0:0': KERNELS=="3:0:0:0" SUBSYSTEMS=="scsi" DRIVERS=="sd" ATTRS{ioerr_cnt}=="0x0" ATTRS{iodone_cnt}=="0x6a6" ATTRS{iorequest_cnt}=="0x6a6" ATTRS{iocounterbits}=="32" ATTRS{timeout}=="30" ATTRS{state}=="running" ATTRS{rev}=="3.AA" ATTRS{model}=="ST3500630AS " ATTRS{vendor}=="ATA " ATTRS{scsi_level}=="6" ATTRS{type}=="0" ATTRS{queue_type}=="none" ATTRS{queue_depth}=="1" ATTRS{device_blocked}=="0" looking at parent - Show quoted text - device '/devices/pci0000:00/0000:00:0f.0/host3/target3:0:0': KERNELS=="target3:0:0" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0f.0/host3': KERNELS=="host3" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0f.0': KERNELS=="0000:00:0f.0" SUBSYSTEMS=="pci" DRIVERS=="sata_via" ATTRS{broken_parity_status}=="0" ATTRS{enable}=="1" ATTRS{modalias}=="pci:v00001106d00003149sv00001043sd000080EDbc01sc04i00" ATTRS{local_cpus}=="1" ATTRS{irq}=="193" ATTRS{class}=="0x010400" ATTRS{subsystem_device}=="0x80ed" ATTRS{subsystem_vendor}=="0x1043" ATTRS{device}=="0x3149" ATTRS{vendor}=="0x1106" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" Mosix3 ~ # udevinfo -a -p /sys/block/sdg Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/block/sdg': KERNEL=="sdg" SUBSYSTEM=="block" DRIVER=="" ATTR{stat}==" 17 84 364 64 0 0 0 0 0 64 64" ATTR{size}=="586072368" ATTR{removable}=="0" ATTR{range}=="16" ATTR{dev}=="8:96" looking at parent device '/devices/pci0000:00/0000:00:0f.0/host4/target4:0:0/4:0:0:0': KERNELS=="4:0:0:0" SUBSYSTEMS=="scsi" DRIVERS=="sd" ATTRS{ioerr_cnt}=="0x0" ATTRS{iodone_cnt}=="0x1e" ATTRS{iorequest_cnt}=="0x1e" ATTRS{iocounterbits}=="32" ATTRS{timeout}=="30" ATTRS{state}=="running" ATTRS{rev}=="3.02" ATTRS{model}=="ST3300831AS " ATTRS{vendor}=="ATA " ATTRS{scsi_level}=="6" ATTRS{type}=="0" ATTRS{queue_type}=="none" ATTRS{queue_depth}=="1" ATTRS{device_blocked}=="0" looking at parent device '/devices/pci0000:00/0000:00:0f.0/host4/target4:0:0': KERNELS=="target4:0:0" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0f.0/host4': KERNELS=="host4" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:0f.0': KERNELS=="0000:00:0f.0" SUBSYSTEMS=="pci" DRIVERS=="sata_via" ATTRS{broken_parity_status}=="0" ATTRS{enable}=="1" ATTRS{modalias}=="pci:v00001106d00003149sv00001043sd000080EDbc01sc04i00" ATTRS{local_cpus}=="1" ATTRS{irq}=="193" ATTRS{class}=="0x010400" ATTRS{subsystem_device}=="0x80ed" ATTRS{subsystem_vendor}=="0x1043" ATTRS{device}=="0x3149" ATTRS{vendor}=="0x1106" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" I then used mdadm to find the UUID of the array and put it in my mdadm.conf: Mosix3 ~ # cat /etc/mdadm.conf ARRAY /dev/md4 level=raid0 num-devices=4 UUID=d17b1ccf:d8a2bd55:46d6f34e:d4c58d63 ARRAY /dev/md2 level=raid1 num-devices=2 UUID=efacfbe7:6e9e0810:b319f3f2:2f766414 ARRAY /dev/md1 level=raid1 num-devices=2 UUID=a6fdc8f9:cff41e4c:b2de13d1:5c346c07 ARRAY /dev/md0 level=raid0 num-devices=2 UUID=c240389a:89523183:7722dc6b:ec923cb9 ARRAY /dev/md3 level=raid1 num-devices=2 UUID=3b4a8b04:36d07c5f:8168f08f:cd06dedb I thought that by putting a new array /dev/md4 at the beginning of the file with right UUID, it would be detected first and not conflict with the SATA arrays but I was wrong. What should I do now to "force" detection of /dev/md4 first and the others arrays after. Could detecting /dev/md4 first solve my problem? Is my problem solvable by focusing on the "arrays" aspect of it or by focusing on the "udev rules" aspect of it? I'll be at the OCLUG meeting on Tuesday night. We could discuss it there if you attend. Thanks! Charles mh > > -- > Martin Hicks || mort [ at ] bork [ dot ] org || PGP/GnuPG: 0x4C7F2BEE > -- Charles Nadeau Ph.D. http://charlesnadeau.blogspot.com/ http://radio.weblogs.com/0111823/ Un emploi pour moi? Voila mon CV: http://resumes.hotjobs.com/charlesnadeau/resumeprincipal Got a job for me? Here is my Resume: http://resumes.hotjobs.com/charlesnadeau/resumeprincipal