How to transfer windows on new disk
controller (SCSI,RAID,PATA,SATA) without reinstallation from zero or
in upgrade mode
For it is done successfuly - it is needed
understand syntax of making .inf files.
Algorithm:
--------------------------------------------------------------------------------------
a. to investigate inf file of controller and to do all, that is
writed there by yourself (work with files and registry).
b.узнать из inf файла (или с помощью
WINPE) HardwareID и прописать его в
HKLM\SYSTEM\CONTROL\CRITICALDEVICEDATABASE.
в этом же разделе
прописать параметры ClassGUID -соответствующий SCSI(рис.k) и Service.
b. to know from inf file (or by means of WINPE) HardwareID and write it in HKLM\SYSTEM\CONTROL\CRITICALDEVICEDATABASE. In the same section it is needed to write parameters ClassGUID-associated with SCSI (image k) and Service
c. remove parameters in
HKLM\SYSTEM\MountedDevices. remove parameter
HKEY_LOCAL_MACHINE\SYSTEM\Select\SystemPartition
d. (if PATA IDE or SATA IDE) write
in CRITICALDEVICEDATABASE atapi,pciide,intelide (and some others) and
copy their *.sys files (It is described in Microsoft kb314082.
But we do not need all from there, this set is
enough. )
e. copy WINDOWS on new controller. reboot. ready.
f. if new controller is already presented in device manager then points a,b,d may be omited.
-------------------------------------------------------------------------------------
For
example let`s take as a new controller SATA RAID Sil 3114:
image.1
iamge.2 image.3
image.4 image.5
image.6 image.7
image.8 image.9
image.10 image.11
image.12 image.13
image.14 image.15
in process working with inf file, for successful installation
disk controller it must done records in three sections in registry:
Class
Critical Device Database
Service
if we transfer windows on pata ide controller (sata
ide controller) then we may do not inverstigate inf file. new
controller may be writed in registry as "standart ide
controller"
it is serviced by atapi.sys
pciide.sys pciidex.sys, they must be presented in system32\drivers.
Class in this case equals "IDE ATA/ATAPI controllers". In
Critical Device Database write pci#ven_xxxx&dev_yyyy, where
ven_xxxx&dev_yyyy may be quickly determined in winpe (winpe must
be started on new controller) or in controller`s inf file (usually
in chipset drivers files of motherboard). In service must be writed
PCIIDE. And service PCIIDE must be set as "load and start while
booting", that is
HKLM\SYSTEM\CurrentControlSet\Services\PCIIde\Start=0.
Class always contain such fields as:
DriverDate
DriverDesc
DriverVersion
InfPath
InfSection
MatchingDeviceID
ProviderName
Their values always may be found in
drivers`s inf file. From above decribed fields minimally is needed:
DriverDesc
InfPath
InfSection
MatchingDeviceID
Type of all this parameters is
REG_SZ
example for Class:
DriverDesc, REG_SZ, Multiprocessor
computer with ACPI
InfPath, REG_SZ, hal.inf
InfSection,
REG_SZ, ACPIAPIC_MP_HAL -entrance point
MatchingDeviceID, REG_SZ,
acpiapic_mp -most difficult to dermination from inf file, usually it
must be added in Critical Device Database if we have section in
SERVICE-as i suppose.
how to determine DriverDesc and
MatchingDeviceID. Search in inf file such string
xxxxxxxxxx.DeviceDesc=yyyyyyyyyy
xxxxxxxxxx=MatchingDeviceID
yyyyyyyyyy=DriverDesc
in
section Service write all that is in inf.
pay attention: ImagePath=type REG_EXPAND_SZ
in section Critical Device Database
to left MatchingDeviceID (section), to right (parameters)
ClassGUID=class, Service=service.
in inf file :
0x00000000=REG_SZ
0x00020000=REG_EXPAND_SZ
0x00010001=DWORD
as i think section [hdc] in inf is needed windows for
determine entrance point by ENUM/PCI/Vendor&dev&Subsys
about syntax - in inf file record HKR=текущее положение в
реестре.
usually chipset`s drivers is packed in install shield
format in .cab files. It can be unpacked by means of program WINPACK
(freeware) or ZIPSCAN
:)
upgraded algorithm:
a.control
panel-installation new hardware-indicate inf file of new controller.
b.remove parameters in HKLM\SYSTEM\MountedDevices. Remove
parametr HKEY_LOCAL_MACHINE\SYSTEM\Select\SystemPartition
c.copy
WINDOWS on new controller.reboot.ready.
d. if new controller
is already presented in device manager then poin a may be omitted.
:)
For successful booting WINDOWS on new disk controller usually enough from ALREADY WORKING ON NEW DISK CONTROLLER another WINDOWS
1) copy files from System32, System32\drivers
2) copy CriticalDeviceDataBase
3) copy Services
In points 1,2,3 we naturally must copy only that files and parameters that is associated to new disk controller. (Example. If we can`t by hand properly to add driver of new disk controller then we can fastly install new windows from zero to new disk controller and after this we can transfer needed files and parameters from zero windows to our windows).
:)
it was done backup from powered on ,working computer by means of ntbackup through LAN.
after all needed steps on new computer was pop up BSOD
stop: c000021a
blabla session manager initialization 0xc000026c {0x000 000 00 0x 000 000 00}
error is resolved by replace corrupted (why?) file
WINDOWS\system32\win32k.sys !:)
:)
windows 2003 was installed on fat32. It was done backup by means of ntbackup. Transfer on another computer on ntfs, but aftep login password i had instantaneous logout. Later I see:). Logout was proceed because of permissions on files and folders on partition where i installed windows was as: system-full, administrators-full, users-read,execute. ( because such permissions was by default on root folder of ntfs partition and was inherited on all files and folders, and i extracted without option "restore security parameters". After this i change permissions on root directory: all-full. And it was worked :)!.
Then i checked. If i ntbackuped files from fat32 then restore with option "restore security parameters" on ntfs, then permissions was restored as all-full. And not important what permissions was on root directory of ntfs partition before restoration. That is if i was restore at first from fat32 with option "restore security parameters" then i would not have problem login-logout-loop.