8 def get_hd_serial_num(device):
12 returns hard drive serial number for a device; requires read permissions.
14 fd = os.open(device, os.O_RDONLY)
17 # \x12: INQUIRY CMD; \x01: EVPD bit set to 1; \x80: Unit Serial Number page
18 # See http://en.wikipedia.org/wiki/SCSI_Inquiry_Command for helpful chart
19 # ##: # byte buffer for returned data
20 data = py_sg.read(fd, "\x12\x01\x80", 32)
22 # Remove extra \x00's, and split remaining data into two chunks,
23 # the 2nd of which is the serial number
24 return data.strip('\x00').split()[1]
26 except ImportError, e:
27 print >>sys.stderr, "hdquery requires py_sg"
29 def get_hd_serial_num(device):
30 raise NotImplemented('get_hd_serial_num is not available for anything other than linux')