Working in WinPE, I am seeing that the onboard storage controllers are ordered like this:
onboard SCU is number 0 (two SSDs raid 1)
onboard SATA is number 1 (one SSD - prefered boot device)
This is visible by issuing DISKPART, List Disk from the command line within WinPE.
I've been asked to change this so that onboard SATA is firts (index 0) in the drive number listing from DISKPART.
I injected the lasted storage control drivers available for this server board, as downloaded from the Intel Support Website. This did not have any impact.
AFAIK, optional BIOS settings for Hard Disk Order should set the drive index order in Windows. (BIOS Setup > Boot Options > Hard Disk Order)
This doesn't get reflected in DISKPART though as I have configured the single SATA SSD as first in this list.
I am using WinPE 3.0 primarily, but I've also tried WinPE 3.1 (WAIK suppliment) with no success.
Does anyone have any ideas for how to change the drive numbering issue I am seeing?
Thanks in advance,
Is it possible for an Admin to move this to the correct forum please, I think it should be under Server discussions instead of Desktop Board discussions. That would be my mistake.
I did see that KB before posting. If you notice it pertains only to SATA ports on the same channel (controller). What I have is an interaction between the onboard SATA controller and the onboard SCU controller. I think it does have something to do with the way Windows enumerates through the hardware on startup. Unfortunately that is not solid enough to explain what is happening in this instance.
It might be the way the BIOS initializes the controllers though. If you set up both controllers with RAID, I beleive the SCU RAID BIOS will initialize before the AHCI RAID BIOS.
I wont be surprised if this is a really isolated issue because so few people will ever be bothered by such an obscure background interaction. Unfortunately, I have to either control the way this drive numbering happens, or explain why I can't in such a way as to eliminate any question of why.
Thanks for your effort though!
I guess you have also read this one:
which is listed in the More Information section of KB937251. It explains how Windows enumerates hard drives on two controllers. I don't think there is much to do on the hardware side. Maybe you want to check with Microsoft how to perform this "in-place reorder operation" manually with WinPE.
Yes, I did see that. I ignored it since we use Win2k8 R2 for the x64 WinPE Kernel and Win7 Sp1 for the x86 WinPE Kernel. Unfortunately, you just never know all of the tiny little changes that happen under the hood between different versions of Windows.
I'll review it though, there might be some tiny catch phrase I can pitch back at Google and get a useful result.
Actually, drives ordering depends on PCI bus scan ordering by Windows kernel (which depends of platform and mostly hidden) and storage controllers drivers boot ordering, i.e. the first controller driver loaded will first offer its controller-connected drives for OS. Driver load ordering at boot can be changed, but by very tricky (in practice) way, http://support.microsoft.com/kb/115486 How To Control Device Driver Load Order is for start. Possibly you can force Intel SATA drivers loading (msahci.sys and iastor.sys, if I remember correctly) in front of RAID drivers load, so SATA drives will have greater probability to get lower drive numbers, but you must try this first on normal system, understand the way the ordering system work by trial&error method, and only after success make PE image from this system (or edit PE registry files accordingly).
Let me clarify, I am using two onboard controllers, one is the SCU and the other is the SATA controller. SATA is set to AHCI and the SCU is using ESRT2 RAID with a RAID 1 array. No RIAD key is in use / necessary. AFAIK, LSI makes expansion cards, not onboard controllers; the onboard controllers are all Intel made.
This is an interesting idea, I am trying this out as we "speak".
I have a few blockers/ concerns - just for your inquisitive mind to mull over.
Welp, that's my feedback on your suggestions for now. I'll get to coaxing this board to boot with a keyfob now and hope for the best.
There are two modes for the chipset software RAID setup. Shown above is the LSI* setting. The other is Intel's Matrix Storage. We _always_ use the LSI version. We can then later plug in an Intel or LSI RoC Hardware RAID controller and pick up the arrays without issue.
Why are you splitting the drives across controllers anyway?
The setup being done is not quite what we would do for workstation and server setups.
Plug the drives into the same controller define RAID 1 for the pair and either JBOD (leave it) or RAID 0 the standalone.
Make sure the standalone is on cable port 0 while the others are on 1 and 2. This will place the standalone at the top of the list.
If the image above is not clear a better one is on our blog here:
I verified the build and it seems that when I said the SCU was in ESRT2 mode I was incorrect, it is in fact in RSTe mode. This is due to the fact that I am testing on a reference system that was not configured per the build instructions. I should point out that the build instructions are essentially, from the customer. So any argument you have for changing the build are invalid since, in all cases, the customer is always right. I have no idea what the customer wants to achieve by this build, and it's not in my purview to spec the systems, I merely support the process and find answers.
That being said, I will show you the mass storage controller configuration which is in play.
Notice the SATA controller is in AHCI.
What does Boot Order and then the submenu Hard Drive order look like?
The customer is only as right as the solution will allow. One cannot ask for something that cannot be had as much as it may be desired.
While I have not looked at the electrical layout for the board as far as controller positioning on the PCI-E bus yet I suspect that despite what the BIOS says (essentially software says) that WinPE is seeing the physical bus position of each controller.
The one showing first is higher (closer to position 0 iirc) than the other.
There may be no way to change this.
We run into this situation to some degree when we are setting up multiple RoC Hardware RAID controllers along side a number of SAS HBAs. Pecking order can become an issue.
Editing the ServiceGroupOrder reg key, adding an SCIS first entry, is visible in the online WinPE but it has no effect. The same can be said for changing the Tag REG_DWORD property of the iaStorA driver reg key. I used a valid value for the Tag value based on another driver which is also installed so as to avoid messing up by using an invalid Tag.
The site you linked kinda says, even though all this is true, it still may not work. So I don't know if it's a case of information being too old to be applicable, or there's some deeper interaction.
The only way I see of futher exploiting this technique is to actually edit the .ini file. I don't want to do this because I don't want to break Driver Signing. I think I have enough to go back to the stake holder and say, this isn't possible.
Thanks JFFulcrum, Philip and Edward for your assistance, even if it didn't get to the solution I hoped for, it was very much appreciated. It helped reinforce what I was finding independently. If anyone has any last tricks I'm all ears, but I think if nothing changes by Monday, I'll call this done.