Hello dear guest!

Boot Land is a community driven site established since 2006 and focused on data recovery/backup boot disks, research of Windows 2000/XP/2003/Vista/7 install/deployment/antivirus tools, customizing Windows PE systems and even learning how to recover from disaster situations.

How about joining our boot disk community? So do it. Life's short!

  - You get free access to our newsletter with all the interesting buzz about boot disks
  - We share publicity revenue with everyone who wishes to participate at the forums
  - Publicity is never, never, never displayed to members (along with many other cool things)
http://boot-land.net/register

9 Pages V   1 2 3 > »   
Reply to this topic
 Universal XP HDD images (IMG_XP.exe), development and "historical" thread - how it all began
post Sep 28 2009, 01:44 PM
Post #1
joakim
Frequent Member   ***
Group: Members

  Joined: 18-April 08 From: Bergen

Posts: 412
Thank(s): 86


Norway


Loading a real xp (not PE) to ram and boot is easy.

I was hoping to have a solution for multibooting the same image across different processors (Intel - Amd). You might think it's impossible and maybe it is, but I will not give up that easy.

If I may describe my theory.

Having the image set up with 2 different hardware profiles, one can enable and disable drivers and services and of course hardware to be loaded on each profile. Tracing the specific drivers for your chipset is not that hard. The registry entries for your deetcted hardware are located in the system hive under HKLM\SYSTEM\ControlSet001\Enum and some entries found under HKLM\SYSTEM\ControlSet001\Control\DeviceClasses.

A sample registry patch;

CODE
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB]
"CurrentConfig"=dword:00000001
"UserWaitInterval"=dword:0000001e
"IsPortable"=dword:00000000

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Alias]

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Alias\0001]
"DockingState"=dword:00000000
"Capabilities"=dword:00000000
"DockID"=dword:00000000
"SerialNumber"=dword:00000000
"ProfileNumber"=dword:00000001

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Alias\0002]
"DockingState"=dword:00000000
"Capabilities"=dword:00000000
"DockID"=dword:00000000
"SerialNumber"=dword:00000000
"ProfileNumber"=dword:00000002

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Hardware Profiles]
"Unknown"=dword:00000003

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Hardware Profiles\0000]
"FriendlyName"="New Hardware Profile"
"PreferenceOrder"=dword:ffffffff
"Pristine"=dword:00000001
"Aliasable"=dword:00000000

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Hardware Profiles\0001]
"PreferenceOrder"=dword:00000000
"FriendlyName"="Intel_x86"
"Aliasable"=dword:00000000
"Cloned"=dword:00000001
"HwProfileGuid"="{1944359a-fe2d-11dc-8b6f-806d6172696f}"

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Hardware Profiles\0002]
"HwProfileGuid"="{0b5df402-d105-426e-8ba0-e8c17ea90a78}"
"PreferenceOrder"=dword:00000001
"FriendlyName"="Amd_x86"
"DockState"=dword:00000007
"Aliasable"=dword:00000001

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\CurrentDockInfo]
"DockingState"=dword:00000000
"Capabilities"=dword:00000000
"DockID"=dword:00000000
"SerialNumber"=dword:00000000

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles]

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0000\Software]

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0000\System]

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ACPI\AuthenticAMD_-_x86_Family_6_Model_8\_0]
"CSConfigFlags"=dword:00000001

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_AMDK7\0000]
"CSConfigFlags"=dword:00000001

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_CABOAGP\0000]
"CSConfigFlags"=dword:00000001

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_ATI2MTAG\0000]
"CSConfigFlags"=dword:00000001

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0002\System\CurrentControlSet\Enum\ACPI\GenuineIntel_-_x86_Family_15_Model_4\_0]
"CSConfigFlags"=dword:00000001

[HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0002\System\CurrentControlSet\Enum\ROOT\LEGACY_INTELPPM\0000]
"CSConfigFlags"=dword:00000001


My tests have been done on 2 different Intel based machine and it boot fine on them. The issue is the Amd Athlon laptop. This is a simplified patch (more chipset relevant entries for the laptop are present. Boot.ini have the /SOS added and I see the machine freeze on the last driver before amdk7.sys is supposed to be loaded.

Someone ever done this? Do we have other options?

Joakim



2 user(s) said "Thank you!" to joakim for this fantastic post:
amalux, Nuno Brito
+Quote Post
post Sep 28 2009, 02:16 PM
Post #2
cdob
Frequent Member   ***
Group: Advanced user

  Joined: 7-November 07
Posts: 246
Thank(s): 48


QUOTE (joakim @ Sep 28 2009, 03:44 PM) *
multibooting the same image across different processors (Intel - Amd).

Do you get a BSOD 0x7e? Read http://support.microsoft.com/kb/953356/
Solution: set CriticalDeviceDatabase and use service demand start.

CODE
REGEDIT4

;Intelppm - driver manual start

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Services\intelppm]
"Start"=dword:00000003

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_6_Model_9]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_6_Model_13]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_6_Model_14]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_6_Model_15]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_6_Model_16]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_6_Model_17]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_6_Model_18]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_6_Model_19]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_6_Model_20]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_15_Model_2]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#GenuineIntel_-_x86_Family_15_Model_3]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="intelppm"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Services\intelppm]
"Type"=dword:00000001
"Start"=dword:00000003
"ErrorControl"=dword:00000001
"Tag"=dword:00000003
"ImagePath"="system32\\drivers\\intelppm.sys"
"DisplayName"="Intel Processor Driver"
"Group"="Extended Base"


;manual start
[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Services\processor]
"Start"=dword:00000003


;manual start
[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ACPI#AuthenticAMD_-_x86_Family_15]
"ClassGUID"="{50127DC3-0F36-415e-A6CC-4CB3BE910B65}"
"Service"="amdk8"

[HKEY_LOCAL_MACHINE\loaded_SYSTEM\ControlSet001\Services\AMDk8]
"Type"=dword:00000001
bv"Start"=dword:00000003
"ErrorControl"=dword:00000001
"Tag"=dword:00000003
"ImagePath"="system32\\drivers\\AMDk8.sys"
"DisplayName"="AMD Processor Driver"
"Group"="Extended Base"

Edit cpu.inf too, or use a automatic solution like USBBootWatcher.
+Quote Post
post Sep 28 2009, 03:00 PM
Post #3
joakim
Frequent Member   ***
Group: Members

  Joined: 18-April 08 From: Bergen

Posts: 412
Thank(s): 86


Norway


I do not bsod. It just freeze with the screen full of the last loaded drivers (right before the screen with the info on memory).

What exactly would I replace or put into cpu.inf?

Are you suggesting to strip the registry for all processor related info so that it is redetected at boottime (I had something similar in mind in the beginning)?

With this setup I have now the intelppm and amdk7 services are set to boot (0) and depending on the hardware profile they are selectively disabled (as well as a couple of chipset-based). Even removing or disabling the intelppm makes no difference. The funny thing (that proves my profiles are not good enough) is that the image will boot with the Amd_x86 on an Intel machine???? Attached is the bootlog from vmware/Intel showing that amdk7.sys is loaded and intelppm disabled!! Does anybody know which driver/service is tied to the processor?

Joakim
+Quote Post
post Sep 28 2009, 03:12 PM
Post #4
joakim
Frequent Member   ***
Group: Members

  Joined: 18-April 08 From: Bergen

Posts: 412
Thank(s): 86


Norway


The log.
Attached File(s)
Attached File  ntbtlog.txt ( 10.16K ) Number of downloads: 12
 
+Quote Post
post Sep 28 2009, 03:33 PM
Post #5
cdob
Frequent Member   ***
Group: Advanced user

  Joined: 7-November 07
Posts: 246
Thank(s): 48


QUOTE (joakim @ Sep 28 2009, 05:00 PM) *
It just freeze with the screen full of the last loaded drivers (right before the screen with the info on memory).
That's another issue.

QUOTE
What exactly would I replace or put into cpu.inf?
CODE
[IntelPPM_Service_Inst]
;StartType      = %SERVICE_SYSTEM_START%
StartType      = 3


QUOTE
Are you suggesting to strip the registry for all processor related info so that it is redetected at boottime (I had something similar in mind in the beginning)?
No, keep the settings.
Change the StartType.

QUOTE
will boot with the Amd_x86 on an Intel machine????
You may load amdk7.sys at a Intel machine. Windows does boot.
However driver dosn't makes a sense.

QUOTE
Does anybody know which driver/service is tied to the processor?
Cpu.inf does describe this. In addition you may load addional drivers, e.g. for Athlon.

By the way:
Windows 7 contain a lot of universal settings.


Added:
Apply the same approach for atisgkaf.sys
Set CriticalDeviceDatabase and use service demand start.
+Quote Post
post Sep 29 2009, 09:40 AM
Post #6
wimb
Frequent Member   ***
Group: Advanced user

  Joined: 10-July 07
Posts: 489
Thank(s): 134


Netherlands


On first attempt my full XP FiraDisk RAMDISK BootImage made on AMD64 machine did freeze on Intel machine.

The following promising solution was found:

Use a MultiBoot FiraDisk RAMDISK with FAT format and boot in RAMDISK first from grub4dos menu with
BTFRDOS.img Superfloppy Image (option 7, FreeDOS Safe Mode (don't load any drivers))

In DOS environment one can use ERDNT.exe to change the system registry of the XP BootImage from AMD into Intel Settings.
Then one can use grub.exe to return to boot.ini menu and launch Windows XP Prof to boot from RAMDISK with full XP on Intel machine.

Now I can boot the XP BootImage of AMD64 machine on my Intel machine.
It is almost perfect, but there is still some refinement needed for a few drivers (my AMD64 machine has no AGP).
Anyway I can boot full XP and go on internet and see all drives.

In preparing the XP BootImage XPRMU.img on AMD64 it is handy to Install ERUNT in XP from which the Image is made and to provide also the previously collected ERDNT registry folder of the Intel machine for XP running in FiraDisk RAMDISK.

Manupulating the registry of the full XP BootImage can be done after loading the RAMDISK with XPRMU.img and using ERDNT.exe in DOS environment to change the system registry from AMD64 into Intel settings. thumbup.gif
The process can be automated with small batch program.

=

=


--------------------
+Quote Post
post Sep 29 2009, 10:24 AM
Post #7
Nuno Brito
Platinum Member   ******
Group: .script developer

  Joined: 13-July 06 From: Pittsburgh

Posts: 7,846
Thank(s): 341


Portugal


Very ingenious solution.

One idea: wouldn't the author of firadisk also be available to add some code to do these small changes on the registry? The driver should be aware of which architecture is running on and already has internal access to the registry. (at least that's my impression)

smile.gif


--------------------
http://f0rums.com - grab a free forum to include inside your site.
+Quote Post
post Sep 29 2009, 11:20 AM
Post #8
joakim
Frequent Member   ***
Group: Members

  Joined: 18-April 08 From: Bergen

Posts: 412
Thank(s): 86


Norway


That sounds very good.

Now, I'm new to this BTFRDOS.img as well as erunt/erdnt. Just downloaded them and I start wondering where do you put BTFRDOS.img and how is this loaded to ram? Do you put this floppy image inside the firadisk image or is the content of the image extracted to the firadisk image? Which boot loader do you have in your firadisk image? What is your entry in menu.lst on the cd?

I will either way have to strip down my original image seriously, as I only have 1 Gb ram on the amd machine.

2 last questions;
Which FAT is image supposed to have?
What parts/hives of the registry is captured by the erunt program?

Thanks

Joakim

+Quote Post
post Sep 29 2009, 12:17 PM
Post #9
was_jaclaz
Finder   ******
Group: Advanced user

  Joined: 14-July 06 From: Gone in the mist

Posts: 7,224
Thank(s): 547


Italy


QUOTE (joakim @ Sep 29 2009, 01:20 PM) *
2 last questions;
Which FAT is image supposed to have?
What parts/hives of the registry is captured by the erunt program?

The FAT that the DOS you are booting with supports.
I.e. FAT16 only if DOS 6.22.
FAT16 or FAT32 if 7.x/8.0. (or FREEdos)

But the next step would be of course to use a NTFS DOS driver and do the same on a NTFS volume.

There should be no reason why it wouldn't work with NTFS4DOS.

ERUNT:
http://www.larshederer.homepage.t-online.de/erunt/erunt.txt
QUOTE
Next, select the backup options:

- System registry: The current system registry, usually consisting of
the files DEFAULT, SAM, SECURITY, SOFTWARE, and SYSTEM.

- Current user registy: The registry files for the currently logged-on
user, usually NTUSER.DAT and USRCLASS.DAT.

- Other open user registries: Sometimes Windows has a few other user
registries in memory. Examples for this are "generic" registries,
e.g. for user "EVERYONE", or registries of other users if you use
Fast Task Switching in Windows XP. Check this option to backup all
these additional user registries (if found) as well.

Click "OK" and wait until the backup process is complete. (Note that
depending on your system configuration this may take some time, and
that the first bar is NOT a progress bar, just an indicator that the
program is still running.) The ERDNT program for later restoration of
the registry is automatically copied to the restore folder.

(Technical information: ERUNT saves only registry files which are in
use by the system. It obtains information about these files from
registry key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\
hivelist. Registry hives not listed there, for example those
of other users of the computer, cannot be saved by ERUNT.)


You don't actually need ERUNT/ERDNT, using the COPY command is good as well, and it allows to only copy/restore one of the various files the Registry is composed of.

An alternative method may (possibly unsure.gif) use this:
http://paullee.ru/regstry.html
http://translate.google.it/translate?u=htt...it&ie=UTF-8

cheers.gif

jaclaz


--------------------
1 user(s) said "Thank you!" to jaclaz for this fantastic post:
wimb
+Quote Post
post Sep 29 2009, 12:28 PM
Post #10
wimb
Frequent Member   ***
Group: Advanced user

  Joined: 10-July 07
Posts: 489
Thank(s): 134


Netherlands


BTFRDOS.img FREEDOS Superfloppy image is installed in the root of the directory from which the full XP BootImage XPRMU.img is made.
I used BOOT_IMG.exe to install BTFRDOS.img and to create the grub4dos boot option so that RAMDISK will have MultiBoot menu.

So BTFRDOS.img is part of the full XP BootImage which is loaded in 20 sec into RAMDISK.
There is no cd involved, since XPRMU.img is installed as grub4dos boot option on the Harddisk of your testmachine.
The boot.ini of the testmachine has e.g.

boot.ini
CODE
[boot loader]
timeout=20
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\grldr="Start GRUB4DOS Menu"


menu.lst in root of test machine
CODE
title Boot XPRMU.img full XP BootImage from RAMDISK
map --mem (hd0,0)/XPRMU.img (hd0)
map --hook
root (hd0,0)
chainloader /ntldr



menu.lst in root of XPRMU.img
CODE
title Boot BTFRDOS.img SuperFLoppy Image file
find --set-root --ignore-floppies /BTFRDOS.img
map --mem /BTFRDOS.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

My testmachine has 2.5 GB RAM
The next thing I would like to do is also to decrease the size of the full XP BootImage,
so that it will be of general use.

The XPRMU.img file was created with latest hddimage.cmd of oriensol and mounted with vdk using
CODE
vdk open * F:\hddimage04\images\XPRMU.pln /RW

http://www.boot-land.net/forums/index.php?showtopic=9033

I used simply the quick format with FAT from XP Explorer so that it will be formatted with FAT16


I see jaclaz has given already a lot of info on ERUNT


--------------------
+Quote Post

9 Pages V   1 2 3 > » 
Reply to this topic
3 User(s) are reading this topic ()


  

Collapse

  Topic Replies Topic Starter Views Last Action
No new Pinned: Universal HDD Image files for XP and Windows 7
Create, Update and Restore of HDD Image files using IMG_XP.exe package
22 wimb 5,233 2nd February 2010 - 02:54 PM
Last post by: wimb
No new Topic has attachmentsXP styles in PE
176 MedEvil 14,349 1st February 2010 - 05:50 PM
Last post by: Lancelot
No new Topic has attachmentsXP hanging at boot screen for ages
29 doveman 712 26th January 2010 - 08:40 PM
Last post by: doveman
No New Posts XPFIX
Another list of crap services
1 Wonko the Sane 213 23rd January 2010 - 10:05 PM
Last post by: Nuno Brito
No new XP Mode in Windows 7 without Hardware Virtualization
39 agni 7,190 21st January 2010 - 11:19 PM
Last post by: Formula84