13 Replies Latest reply on May 11, 2009 12:06 PM by simpsond

    Mass Storage Driver Question/Help


      Well I've been using the HII-WinPE Document created by Mike Ybarra and Jan Buelens. For those of you new to Provisioning it's a great document to use.


      However, I'm having all sorts of issues with getting the E4300 Model's MSD files to be recognized. Let me clear up a few things. I am using the image based provsioning technique. The base image was taken on a GX520. I'm using the folder structure suggested in the document. %root%\drivers\msd ,  %root%\drivers\pnp


      Below are my attempt tactics:


      1) I started by Capturing the msd files. from an E4300. When doing so, I get 2 registery files (iastor1.reg and iastor2.reg) and 1 sys file (iastor.sys).Thinking things would be easy I put these files in the msd folder however I received a blue screen on first boot up.


      2) Downloaded MSD drivers from Dell.








      I put all these files in the msd folder. Also, I edited my sysprep to include the lines from iaStor.inf in the [SysprepMassStorage] and created a section for





      I now ran the provisioning task and it failed at the sysprep action.


      3) Now, I decided to open the old image up with Ghost Explorer. I added the .inf files into c:\windows\inf and .cat , .sys into c:\windows\system32\drivers


      I again attempted the provisioning task and again it failed at the sysprep step.


      4) Finally, frustrated I restored the base image. I ran the two original registry files (iastor1.sys , iastor2.sys) ensured that all the MSD Drivers were in their correct places. Saved the newly updated image. Took a capture of it. Reran the Provisioning task with the new image , failure again (BSOD).


      Now I'm here. Sorry for the long explaination but hopeful it helps in troubleshooting.


      Again thank you in advance for any information anyone can provide.




        • 1. Re: Mass Storage Driver Question/Help

          can you post your sysprep.inf, the one you used when you ran sysprep to create the image?

          • 2. Re: Mass Storage Driver Question/Help

            The driver information actually came from iaAHCI.inf not the iaStor.inf which is used for RAID.

            • 3. Re: Mass Storage Driver Question/Help

              I think I just found my fault.


              INTEL_HDC states:



              %PCI\VEN_8086&DEV_2652&CC_0106.DeviceDesc% = iaStor_Inst,




              %PCI\VEN_8086&DEV_2653&CC_0106.DeviceDesc% = iaStor_mobl_Inst,





              My sysprep should only take....





              Let me test this. It should be the fault.

              • 4. Re: Mass Storage Driver Question/Help

                Okay so I've done some updating however i've still been unlucky.


                I've attached the following updates to my sysprep.





                I checked the Matching Device ID of an E4300 and the ID matches the orange id i've highlighted above.


                I've also verified that C:\drivers\PnP\storage\sata\iastor.inf has been written to the drive.


                I have the iastor.sys and iastor.cat stored in the c:\windows\system32\drivers folder.


                Anybody have any ideas what could be going wrong?

                • 5. Re: Mass Storage Driver Question/Help

                  Let me try to unpick some bits of the story.


                  1) ...capture the msd files... get 2 registery files (iastor1.reg and iastor2.reg)... You're meant to get 1 .reg file. It will be called iastor.reg. CaptureMsd runs 3 reg export commands, creating 3 iastorN.reg files in turn (with N = 1, 2, 3). Finally, it merges all 3 files. The merged file will be called iastor.reg. If you see the iaStorN.reg files, CaptureMsd didn't run to completion. Either you copied the output while the program was still running, or the program failed in some way. Run CaptureMsd from the command line so you don't miss any error message that it might display. Here's what I see when I run it on my Lenovo T60 laptop:



                  capturemsd /o=c:\test

                  The operation completed successfully

                  The operation completed successfully

                  The operation completed successfully


                  dir c:\test

                  Directory of C:\test

                  12/10/2005  13:01             5,074 iaAHCI.INF
                  08/05/2009  10:08             4,370 iaStor.reg
                  12/02/2007  13:36           277,784 iaStor.sys


                  Every time you see "The operation completed successfully", that's another reg export. If you don't get the inf file, do not despair. CaptureMsd tries to capture an inf file because I thought humans like to see one, but InjectMsd doesn't need it.


                  Note also: you don't say that you ran injectmsd. You only say that "you put the files in the msd folder". You did also run injectmsd (with a command line parameter = path to your msd folder), I suppose?


                  2) ... edited my sysprep to include the lines in [SysprepMassStorage]... You don't say you ran sysprep again and rebuilt the image. So I suppose you tried the provisioning task again with a new sysprep.inf but with the same old image. That wasn't going to work. SysprepMassStorage must be in place at sysprep time. Adding it at provisioning time isn't going to work. ...it failed at the sysprep action... I'm not sure what you mean (what is "the sysprep action"?) but the question is academic because the strategy is doomed anyway.


                  3) ...opened the old image up with Ghost Explorer, added the files... That wasn't going to work because there is more to installing the driver than copying the right files to the right places.


                  4) ...restored the base image, ran the .reg files... Never tried that but I believe it should have worked - except of course, if (1) failed, this will fail for the same reason.

                  1 of 1 people found this helpful
                  • 6. Re: Mass Storage Driver Question/Help

                    Okay I ran the CaptureMsd in command line mode on this E4300. here is the output:


                    • The operation completed successfully


                    • The operation completed successfully


                    • Devicepath is empty


                    iaStor.sys 312KB

                    iaStor1.reg 1KB  (See Attached)

                    iaStor2.reg 6KB  (See Attached)


                    With that said, do you have any suggestions to what I should do to get that last registry entry (Manually pulling it maybe?). Not sure why it's saying the Devicepath is empty?


                    Note: I do have a action that does inject the msd. (It just appears it's not injecting the correct info because of the multiple reg entries.)



                    For now I think I should focus on this strategy above to try getting E Series machines working. I'm scrapping the troubleshooting of any other methods I've tried for now.

                    • 7. Re: Mass Storage Driver Question/Help



                      So, your last post got the wheels spinning for me. Our CURRENT process here is to create a base image and send our image off to dell so they can prepare it for deployment. Well, the E4300 I captured the MSD files off was a imaged machine from Dell. I have used imaged machines for several models (755, 745, GX270, GX260, D410, D400, D600) to run the CaptureMsd utility and had no issues. For some reason the E4300 didn't want to capture properly.


                      What I did find is that if you reinstall Windows onto the E4300 the CaptureMSD utility works just fine.


                      I retested the Provisioning template with the proper reg, sys, and inf file and it booted without an issue.




                      Thank you for your help.


                      I have 5 more models of machines left to test. I'll cross my fingers and hope all goes well with the knowledge I have now. Again, thank you.


                      - Paul

                      • 8. Re: Mass Storage Driver Question/Help

                        Glad you got it to work... I can also see what went wrong in your earlier exercise:


                        The DevicePath that is empty is HKLM\Software\Microsoft\Windows\CurrentVersion\DevicePath. If you know about ldprep, you'll be familiar with this key. It's the list of paths that the PnP subsystem will use when it is looking for an inf file. CaptureMsd wants a DevicePath because it is looking for an inf file. An empty DevicePath key is at least "unusual". You expect to see at least %SystemRoot%\inf there. As I understand it, if DevicePath is empty the OS will not be able to find any inf files. Or is this part of a deliberate plot to lock things down so users can't install new devices? Set DevicePath to %SystemRoot%\inf and CaptureMsd will run successfully.


                        However, that was not the only problem. I might be wrong but I don't think that the missing reg export was a sufficient reason for the machine not to boot. When I look at your .reg files, I can see that what you captured was a device with HardwareID = ven_8086&dev_2652&cc_0104. But in one of your earlier posts, you state that your target machine has HardwareID = VEN_8086&DEV_282A&CC_0104.



                        CaptureMsd/InjectMsd only works if your source machine and your target machine have identical SATA controllers. I believe that ven_8086&dev_2652&cc_0104 is quite an old device - perhaps 5 years old. VEN_8086&DEV_282A&CC_0104 is much more recent - no more than 2 years old. You won't find a single driver version that officially supports both.

                        • 9. Re: Mass Storage Driver Question/Help

                          Hi Jan,


                            I'm having the same problem as to where the capturemsd is not getting the 3rd .reg to create the .inf file because the DevicePath key is not in my registry.

                          So I wanted to follow your tip:


                          Set DevicePath to %systemroot%\inf



                          This is what mines is currently set to:




                          I've yet to make any changes other than adding the key in the registry. Is this good enough?

                          • 10. Re: Mass Storage Driver Question/Help


                            The machine you are using to CaptureMsd.exe on, is it an imaged machine? or has the machine been reformatted?


                            What I found, is that the machine I was using the CaptureMsd on was an image I had sent to Dell for them to inject drivers onto. What I did to combat this was reformatted the machine i need to capture the msd on then ran the utility. Everything seemed to work as normal then. Try this, I bet it will work.

                            • 11. Re: Mass Storage Driver Question/Help

                              Oops - you are not supposed to get Devicepath is empty unless the DevicePath key in the registry really is empty. Evidently in your case it isn't. I now believe that in Paul Stojanovski's case it wasn't empty either. I think I found the real problem: if the DevicePath key is longer than 256, the code didn't handle things right. I've posted a new version of CaptureMsd on my blog that fixes the problem: http://community.landesk.com/support/people/jan.buelens/blog/2009/05/09/new-version-of-capturemsd

                              • 12. Re: Mass Storage Driver Question/Help

                                Man, I wish I knew that before. haha. Thanks for all your help Jan.

                                • 13. Re: Mass Storage Driver Question/Help

                                  Thanks Jan! That worked for me!