umass to /dev/da* mapping

Mike Clarke jmc-freebsd2 at
Mon Dec 5 17:08:20 UTC 2011

I have a fairly simple perl script which is run by devd when I plug in a 
USB memory stick. The script sets up some permissions and a link to 
make life easy for a user to mount the memory stick.

This normally works fine but there are problems if the memory stick is 
already inserted before booting.

Normally my internal 4 slot memory card reader is detected as umass0 
with devices da[0-3] and when the USB memory stick is inserted it comes 
up as umass1 with device da4 and my script works on that assumption. If 
the USB stick is present on booting then it appears as da0 on umass0 
and the card reader is da[1-4] on umass1 so the script fails.

Is there any convenient way for my script to determine which da* devices 
correspond to the umass device name?

Mike Clarke

More information about the freebsd-questions mailing list