Jump to content

IDE image to SATA drive and Vice Versa...


dkreifus

Recommended Posts

I've discovered my issue with Ghost and Sata.

If I take a image of a drive that was created on an IDE drive, it does not properly copy the boot sector over to the SATA drive.

And the same thing happens vice versa.

Would using DiskPart eliminate that problem?

Link to comment
Share on other sites


My company has done TONS of ghost images back and forth between PATA (standard IDE/EIDE) and SATA drives without any issue. I'm not sure why you'd have problems with the boot sector...

ghost32.exe /mode=dump,src=1,dst=filename.gho

followed by:

ghost32.exe /mode=load,src=filename.gho,dst=1

No special switches, no messing with diskpart. Using Ghost 8.2 corporate edition from a file server share under a WinPE 2005 (Server 2003 SP1) platform.

Link to comment
Share on other sites

I don't know why either. But it gives me the Windows Menu where you choose "last good configuration", safe mode, and all that stuff.

Have no idea where it came from. It works fine if I do it SATA to SATA or IDE to IDE

What's the difference between your /mode=load and my command of

-clone,mode=restore, .....

Edited by dkreifus
Link to comment
Share on other sites

I don't know why either. But it gives me the Windows Menu where you choose "last good configuration", safe mode, and all that stuff.

Your machine booted fine; that's not a bootsector issue. You are missing the mass storage driver for your SATA controller, and thus Windows cannot load. Common mistake among rookies ;)

You need to make sure you've installed your SATA drivers into your Windows image before you move the image from an IDE drive to a SATA drive. Otherwise, as soon as Windows tries to start in protected mode, it will lose access to your local disk and bomb with a BSOD.

Link to comment
Share on other sites

I have the sata drivers. And it works fine when I go SATA to SATA or IDE to IDE. But going SATA to IDE or IDE to SATA is where the problems are.

And if I go SATA to IDE, why wouldnt it be able to read the IDE drive and give me the same error?

Link to comment
Share on other sites

I don't know what else to tell you... Think about it for yourself. If the bootsector was missing or corrupt, it wouldn't EVER get to Windows, period -- you would instead get errors about "No operating system found". You're getting the OS, it's trying to load, but it fails because the boot device goes missing as soon as it enters protected mode.

What options are left? The drive failing? Probably not, since it's multiple drives. The image corrupt? Likely not, as it wouldn't be corrupt every single time. Windows missing or not loading the appropriate driver? "DING DING DING DING"

I'm telling you it's a driver problem, and it is. Your image needs BOTH the SATA driver and the IDE driver, but it might not be possible to install both since your "source" machine may not have both devices simultaneously. Your options are to sysprep the image and build the drivers into the $OEM$ mass storage section or try forcing the drivers to install on the old machine and hoping for the best...

That's your problem; how you solve it is up to you :)

Link to comment
Share on other sites

Ok...Here's all my stuff since I don't know what I'm doing wrong.

On the computer to be imaged:

the sysprep.inf

;SetupMgrTag
[Unattended]
EnableBigLBA=Yes
ExtendOemPartition=1
InstallFilesPath=C:\sysprep\i386
OemSkipEula=Yes
TargetPath=\WINDOWS

[GuiUnattended]
AdminPassword="password"
AutoLogon=Yes
AutoLogonCount=1
EncryptedAdminPassword=NO
OEMDuplicatorstring="Base XP Build 2.0"
OEMSkipRegional=1
OemSkipWelcome=1
TimeZone=35

[UserData]
ComputerName=*
FullName="Org"
OrgName="Organization"
ProductKey=XXXXXXXXXXXXXXXXXXXXX

[Display]
BitsPerPel=32
Xresolution=1024
YResolution=768

[TapiLocation]
AreaCode=215
CountryCode=1
Dialing=Tone
LongDistanceAccess="9"

[Identification]
JoinWorkgroup=CSI

[Networking]
InstallDefaultComponents=Yes

[Sysprep]
BuildMassStorageSection=Yes

[Branding]
BrandIEUsingUnattended=Yes

[Proxy]
Proxy_Enable=0
Use_Same_Proxy=0

[Components]
accessopt=off
autoupdate=off
Deskpaper=Off
freecell=off
hearts=off
media_clips=off
minesweeper=off
msnexplr=off
OEAccess=off
pinball=off
solitaire=off
spider=off
WMAccess=off
zonegames=off

When I checked the ghost image, there is nothing populating the [sysprepMassStorage] area. In fact, its not there.

I have the drivers loaded properly for WINPE, so I know they work.

For my unattended install (before it syspreps), I have unattend.txt which contains the following section:

[MassStorageDrivers]
"Intel(R) 82801GR SATA RAID Controller" = OEM

[OEMBootFiles]
iaStor.inf
iaStor.sys
iaStor.cat
Txtsetup.oem

How should I add the drivers in for sysprep?

Sysprep is called with the following line:

Sysprep.exe -reseal -mini -pnp -quiet

Link to comment
Share on other sites

Add to sysprep.inf

[sysprepMassStorage]

HWID of MSD=INF Location

PCI\VEN_13C1&DEV_1002&SUBSYS_100213C1=C:\DP\M\3\1\oemsetup1.inf

And use the sysprep.exe command line you already have.

I use the following CMD script to add the HWIDs I use from the MassStorage Driverpack.

Change the directory path in the third line (Call :HWID c:\DP\M) to point to your directory subtree for MSDs

Add [sysprepMassStorage] to the end of your sysprep.inf and rename it to sysprep.hold.

setlocal enabledelayedexpansion

Echo Creating MassStorageSection of Sysprep.inf

Call :HWID c:\DP\M
copy sysprep.hold /a +hwids.txt /a sysprep.inf

GOTO EOF

:HWID
rem %1 is path to MassDriverPacks Folder
IF "%1"=="" GOTO EOF
IF NOT EXIST %1 GOTO EOF

SETLOCAL ENABLEDELAYEDEXPANSION
SET STDOUT=%cd%\HWIDS.TXT
TYPE>%STDOUT% 2>NUL

::traverse drivers path
CALL :TRAVERSAL %1

GOTO EOF

:TRAVERSAL
PUSHD %1
for /f %%f in ('Dir /b *.inf') do (
for /f "eol=- tokens=2 delims=," %%i in ('find /i "pci\ven" %%f') do (
for /f "tokens=*" %%j in ("%%i") do (
for /f "tokens=1* delims=_" %%k in ("%%j") do (
if /i "%%k" EQU "PCI\VEN" (
for /f "usebackq tokens=1* delims=; " %%a in ('%%j') do (
echo %%a=%cd%\%%f>>%STDOUT%
)
)
)
)
)
)

FOR /F %%I IN ('DIR /AD /OGN /B') DO (
CALL :TRAVERSAL %CD%\%%I
)
POPD
GOTO EOF

Link to comment
Share on other sites

I have a few questions about your post...

1. What is oemsetup1.inf

2. In your script what is EOF? I dont see the command anywhere

3. What is sysprep.hold, and why am I renaming my script to it. How will sysprep call it?

Can I run sysprep -bmsd somehow to do it?

Edited by dkreifus
Link to comment
Share on other sites

1. What is oemsetup1.inf
oemsetup1.inf is one of the many Mass storage driver infs, in this case it is the inf for an AMCC 3ware 9000 Series SATA RAID Controller. This will be the full path to the driver INF for whatever MSD you are referencing with the HWID before the equal sign.
2. In your script what is EOF? I dont see the command anywhere

EOF is End of File. Not required to be declared. Just causes it to exit the loop or call and return to it's called from location.

3. What is sysprep.hold, and why am I renaming my script to it. How will sysprep call it?

You only need to do this if you are using the script I posted. When the script runs it creates a txt file named hwids.txt, and then appends this to the end of sysprep.hold into sysprep.inf.

Link to comment
Share on other sites

Why trim it down? If you sat through it creating the list you've waited through the longest part and the reboot will do the rest when deployed.

If there are drivers there you don't want don't add the associated INF before you create the list

Edited by IcemanND
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...