Utility to list /dev/nodes & serno's

Dylan Reinhold dylan at ocnetworking.com
Thu Aug 12 00:30:20 PDT 2010


On 08/06/2010 01:27 PM, Matthew Dillon wrote:
:Hi people,
:
:is there a way to easily list all disks and their associated serno's ?
:Something like 'blkid' utility of Linux, if you happen to know it.
:I could happily hack something like that, if we lack it.
:
:
:Cheers,
:Stathis
    There isn't, and that would be cool.  It is fairly easy to match
    up device numbers from devfs.
    You can use sysctl kern.disks output to get a list of disk devices,
    then you can scan /dev and pick those base names out and stat them,
    and you can scan /dev/serno and stat those babies and match up
    the st_rdev's with the ones from /dev to getting related serial
    numbers.
    If we wanted to get more involved we could add an ioctl() to retrieve
    the serial number (if available), but it can definitely be scripted
    right now without that.
					-Matt
					Matthew Dillon
					<dillon at backplane.com>
I started a utility a while back going down a different path, I have now 
changed it to use the sysctl call like Matt pointed out.
This is my first attempt to contribute a utility to DragonFly (or any 
project) so I'm looking for feedback.
I have more error checking to add.

I was not sure the best place for the code, so I created a new empty 
branch [devserno] on my leaf account with the code.
http://gitweb.dragonflybsd.org/~dylan/dragonfly.git/commit/refs/heads/devserno
And a tarball
http://leaf.dragonflybsd.org/~dylan/devserno.tar.gz

The program reads the rdev's from all files in /dev/serno (excluding any 
with a .) then reads the sysctl kern.disk and prints out the matches.

This is the output from my system :
$ ./devserno
DEVICE		SERNO
/dev/ad2	05008023
/dev/ad4	JPB530HN256PBB
/dev/ad6	WD-WXEZ07T50371
Regards,
Dylan





More information about the Users mailing list