• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Retrieving hard disk serial number
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Retrieving hard disk serial number


  • Subject: Retrieving hard disk serial number
  • From: Dirk Stegemann <email@hidden>
  • Date: Thu, 15 Jun 2006 18:10:09 +0300

Hello,

(originally posted at carbon-dev)

I'd like to retrieve the system volume's hard disk serial number.
For drives which indeed support such a serial number it can be read using the ioreg tool.


Although I'd prefer to read the hard disk serial number using an API (e.g. IOKit) instead of using a dedicated tool, I'm more concerned about the different paths I seem to have to go through the dictionaries to get different drives' serial numbers when the drives are attached by different busses (see ioreg output below).

Also, the *keys* used to query the dictionary for the S/N differ, e.g. "device serial" vs. "Serial Number".

Apple's System Profiler gets them all, but maybe it also uses different code to read the S/N from different devices?

Is there a recommended / unified way to retrieve a hard drive's serial number?
At least, are there known pitfalls?


Thanks for pointers, links, sample code snippets, comments, or whatever you might consider useful!


Best regards, Dirk Stegemann

P.S.: I've read TN1103 (the old version from 1998 which points to an antiquated ATA demo sample, as well as the new version which doesn't include disk querying capabilities).
Ideally, I'd like to follow that versions IOKit query mechanism to retrieve the hard disk serial number.




-----

ioreg output for different machines:

1)
----- PB G4 17" (2005) ----->
| +-o pci@f4000000 <class IOPlatformDevice, registered, matched, active, busy 0, retain count 10>
| | | {
[...]
| | | }
| | |
| | +-o AppleMacRiscPCI <class AppleMacRiscPCI, !registered, ! matched, active, busy 0, retain count 12>
| | | {
[...]
| | | }
| | |
| | +-o ata-6@D <class IOPCIDevice, registered, matched, active, busy 0, retain count 14>
| | | | {
[...]
| | | | }
| | | |
| | | +-o AppleKauaiATA <class AppleKauaiATA, registered, matched, active, busy 0, retain count 5>
| | | | {
[...]
| | | | }
| | | |
| | | +-o ATADeviceNub@0 <class ATADeviceNub, registered, matched, active, busy 0, retain count 6>
| | | | {
| | | | "ata device type" = "ata"
| | | | "unit number" = 0
| | | | "IOUnit" = 0
| | | | "socket type" = "internal"
| | | | "device model" = "ST9100823A "
| | | | "extended LBA capacity" = 195371568
| | | | "device serial" = " 3LGxxxxx"
| | | | "device revision" = "3.06 "
| | | | }
<----- PB G4 17" (2005) -----



2)
----- iMac Core Duo 17" (2006) ----->
| | +-o SATA@1F,2 <class IOPCIDevice, registered, matched, active, busy 0, retain count 15>
| | | | {
[...]
| | | | }
| | | |
| | | +-o AppleAHCI <class AppleAHCI, !registered, !matched, active, busy 0, retain count 8>
| | | | {
[...]
| | | | }
| | | |
| | | +-o AppleAHCIPort@2 <class AppleAHCIPort, registered, matched, active, busy 0, retain count 9>
| | | | {
[...]
| | | | }
| | | |
| | | +-o IOAHCIDevice@0 <class IOAHCIDevice, registered, matched, active, busy 0, retain count 7>
| | | | {
[...]
| | | | }
| | | |
| | | +-o AppleAHCIDiskDriver <class AppleAHCIDiskDriver, registered, matched, active, busy 0, retain count 9>
| | | | {
| | | | "NCQ" = Yes
| | | | "IOMaximumBlockCountWrite" = 65536
| | | | "Revision" = "3.42 "
| | | | "CFBundleIdentifier" = "com.apple.iokit.IOAHCIBlockStorage"
| | | | "IOClass" = "AppleAHCIDiskDriver"
| | | | "IOPolledInterface" = "not serializable"
| | | | "IOProbeScore" = 0
| | | | "SATA Features" = 14
| | | | "IOMatchCategory" = "IODefaultMatchCategory"
| | | | "Physical Interconnect Location" = "Internal"
| | | | "Serial Number" = " 5MTxxxxx"
| | | | "Model" = "ST3160023AS "
| | | | "Physical Interconnect" = "SATA"
| | | | "IOMaximumBlockCountRead" = 65536
| | | | "IOProviderClass" = "IOAHCIDevice"
| | | | "Queue Depth" = 32
| | | | }
<----- iMac Core Duo 15" (2006) -----



3) MacBook Pro is similar to iMac Core Duo.

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Retrieving hard disk serial number
      • From: Chris Zubrzycki <email@hidden>
  • Prev by Date: Re: streaming QT using RTSP
  • Next by Date: Re: Retrieving hard disk serial number
  • Previous by thread: Re: streaming QT using RTSP
  • Next by thread: Re: Retrieving hard disk serial number
  • Index(es):
    • Date
    • Thread