Accessing real harddisk from a booted RAM disk image

  • Thread starter Thread starter Thomas Meyer-Piton
  • Start date Start date
T

Thomas Meyer-Piton

Hi all,

I've build a quite large image with full explorer shell. This image is
booted into RAM on the target and works fine. Now I need to have access to
the real harddisk in the target device. I can see the drive in explorer and
can work with it but all administrative tools or even format won't. work.
When I try to open the disk management MMC the system tells me that it
cannot connect to the remote computer, that an rpc error had occured or
simply that the Windows firewall would prevent access. Formating the real
harddrive in explorer won't even start and formating on the command line
seems to work but does in fact nothing.

Furthermore the image is _very_ hardware dependant: I have two different
harddisk vendors in my devices and I couldn't make one image to support
both. The drive that was present during FBA is found and mounted but the
other is not - is there a way to force all harddisk drivers into the image?


thanks,
Thomas
 
Hi Slobodan,

no, I haven't... yet ;) I am currently building a new version and will try
out the new settings.
Furthermore, I have read through much of the links you sent and found a post
where you say
In any case you must ensure that XPe don't require reboot during the boot.

How do I do that? On some targets the XPe finds e.g. a floppy that is not
even present in the system and wants me to restart. I could run FBA on each
hardware config but since there are minor differences between my targets
this would mean a lot of work to do this all over again when new hardware
comes into play.


Thanks,
Thomas
 
Hi Thomas,
How do I do that?

As you have seen there are two cases that require you to reboot your computer.
1. Some drivers(co-installers) after the installation request reboot even though driver is installed and can work without reboot.
2. You have some system critical driver started as generic and then PnP find better match and try to stop this driver so it can
start newly installed driver.

For 1 you can make your simple CoInstaller function that will remove reboot flag. (You must assign this with the driver that make
you a problems)

{
if(InstallFunction==DIF_NEWDEVICEWIZARD_FINISHINSTALL)
{
SP_DEVINSTALL_PARAMS di;
di.cbSize=sizeof(di);
if(SetupDiGetDeviceInstallParams(DeviceInfoSet, DeviceInfoData, &di))
{
di.Flags&=~DI_NEEDREBOOT;
SetupDiSetDeviceInstallParams(DeviceInfoSet, DeviceInfoData, &di);
}
}
return NO_ERROR;
}

For 2:
Since RAM boot is done completely from memory there are no critical drivers beside RAMDISK driver. So you can modify/remove from
offline registry criticaldatabase and also you can modify/remove enumerated driver instances for hardware present on your target
computer.

PnP is very capable to find and install all required drivers from present inf files.

BTW:
If you do not have newdev.dll I do not think that there will be anything to ask you to reboot your computer, so just rename it or
remove its component from TD.

Regards,
Slobodan
 
Back
Top