Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I have four drives inside my Mac Pro.

  • Bay 1: /dev/disk1s3
  • Bay 2: /dev/disk0s2
  • Bay 3: /dev/disk2s2 (also, my boot drive)
  • Bay 4: /dev/disk3s2 and /dev/disk3s3

How are the disk numbers assigned? If I swap Bay 2 and Bay 1, will the disks in those drives swap disk numbers (so I have /dev/disk1s2 in Bay 1, and /dev/disk0s3 in Bay 2)? Also, does it make any difference that the boot drive is in Bay 3 and/or that it isn't /dev/disk0s2?

share|improve this question

3 Answers 3

up vote 2 down vote accepted

Drive numbers are assigned by the OS on a first come, first serve basis. The numbering scheme is as follows (with a capital N being a number):

diskN - always refers to a primary drive (i.e. the entire drive)

diskNs1 - always EFI

diskNs2 - First actual volume on the drive

diskNs3 - Second volume on drive, if there is one...this can go on for as many volumes as you have.

You can get some of the information about drives and volumes with the GUI version of diskutil by opening diskutil, clicking on the drive or volume, and then right-clicking on the item and then selecting "Information" from the dialog.

Another way is to open up a terminal window and type "diskutil list" and it will provide you with a list of all the drives, their partitions sizes and names (don't type it with quotes, though). If you want specific info about a drive or volume type "diskutil info " for example:

diskutil info disk0 OR diskutil info disk0s3

The utility will provide detailed information about each. I personally find using the Terminal.app a little easier because I can pipe the output to a file if I need to instead of cutting and pasting and it shows the relations of the volumes to the partitions a bit more clearly (IMHO).

I wouldn't think that swapping the drives around in the bays would make any difference. On my development systems I can swap around firewire drives, take one offline, take the other offline, bring the first back up, and even though they get different drive IDs, if one is set as bootable it will remain bootable. Mac's use UUIDs to tag the drives which remain unique to the drive regardless of their disk assignment.

The firmware for a Mac Pro might allow a user to provision specific bays to be bootable.

share|improve this answer
    
Nice answer! Is it feasible that the "first-come first-serve" order would be different each boot, just based on each drive's power-up profile? –  Bobson Oct 3 '12 at 0:42
    
Yes. I have a mini server with two internal drives, and they seem to swap disk numbers randomly at reboot. –  Gordon Davisson Nov 5 '12 at 7:37

I would think so. I work on hard drives a lot on Mac systems, and with regard to at least external drives, the order they come up in never seems to matter based on where they're daisy chained in the system. In the world of removable drives, I think the UUID is the more important number. I would see no logical reason why OS X would attempt to apply something different for internal drives. Keep in mind that a lot of random events, such as temperature monitoring and adjustment of system are occurring at boot up, and these may interfere with the time each drive is probed and assigned an identity.

I would think that for the most part, at least under generally average conditions, a boot sequence would be at least somewhat repeatable, but I've also seen drive ID's change periodically...and yet they continue to boot in the right order. If Apple was smart, and I think they are, they target the UUID not a drive designation such as /dev/rdisk0s3. In this day and age, particularly with systems that can be configured to boot off of an external drive by default even though an internal drive is present it has to be the UUID that's telling the system where to boot from.

If you've ever had a system that was defaulted to boot off an external drive and then remove it, the OS typically, at boot time, flashes a question mark and then "hunts" for another hard drive. If it finds one, it boots, if it doesn't, you either get a flashing question mark OR the prohibited sign.

An excellent source for information, albeit probably too technical for most system user is SCSC's book on hard drive troubleshooting. You can go to this site, go to the downloads section, and get the book called "Hard Drive Troubleshooting" (catchy name, eh?):

http://www.scsc-online.com

Their book describes a symptom that occurs on many computers (eventually) called "generic faults." A generic fault isn't an electronic component failure, it's actually a mechanical fault, such as cracked traces in logic boards, intermittent cable connections, etc. The intermittency of such a problem can delay and possibly prohibit the recognition of drives in their "normal" order.

Although SCSC touts their product Scannerz as being essentially useable by anyone, I think the product is likely best suited to technicians and engineers, or at least someone that has some understanding of hardware. In their book's advanced troubleshooting section, they talk about swapping out components the same way I change my shirt...most people know how to change their shirts, but not so many know how to cavalierly swap out a hard drive, particularly on a laptop.

The reason I say all this is that if your drive ID's are mysteriously changing their identities, you may have what they describe as an "intermittent generic fault" in their book, which is free by the way. Worth a look, anyway.

Hope this helps someone.

share|improve this answer

I think the answers are overly simplistic in their assumptions (and thus draw conclusions which are overly generalized).

They don't specifically answer the question about how the bsd subsystem (adjoint to the hybrid XNU Mach microkernel) actually liaises with the boot-loader & in-turn the firmware initialization procedure below that.

(The fact that IOkit offers dynamic rebinding of devices & name-spaces is -yes, of course! - a felicitous facility which undergirdes plug'n'play – but that outcome is a separate point from how the osx drive assignment protocol actually operates).

Indeed there is at least one very practical case where the bsd device name – inherited from the firmware device tree (?) – has a very practical consequence: EG some programmes are configured to install on / work with the boot drive which is (somehow) canonically defined/hard-wired to be only the first internal volume enumerated at boot time!? :( …

… but if the user has a need to designate another (external) volume as the canonical drive0 (a requirement -aka restriction!- for some types of online backup software (ahem, Carbonite comes to mind hehe for instance) then having a precise understanding of how Darwin assigns drive numbers suddenly becomes vitally important!

So: if anyone knows how it's possible to coerce another volume into being 'blessed' as bsd0 (which is distinct from that volume's system folder being bit-flagged as a bootable device) then your insight wound be very much appreciated :)

share|improve this answer
    
Please consider asking a new question, you may get better results. –  patrix Nov 5 '12 at 6:32
1  
Per patrix's comment, you're asking "how do I order drive bays in order", where the original question is asking how the drives are assigned, and why it seems so arbitrary. Since you seem to have an actionable question: "coerce a volume into being blessed bsd0", you should ask it as a new question. –  Jason Salaz Nov 5 '12 at 7:58

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.