Jump to content

Guide - Install WinXP From HDD or USB Drive Or CD


Recommended Posts

Hi everyone,

Thanks for the tips. I went to the WinfromUSBsetup thread as sugested, used the GUI etc and when I booted off it, it started in the second part of the original install process! I had to get GParted on to a USB stick and format the SSD again, then when I tried the WinfromUSB'd stick, I got a Hal.dll error, same as other methods I've tried before. I'll have another go with your method here using the now it's been pointed out very obvious method :blushing: of setting to boot from SSD first but changing temporary boot options on the initial boot.

I'll let you know how I get on.

Cheers!

Link to comment
Share on other sites


I test it under VMWARE.

2 disks, one is booted as installation source (harddisk0), the second is target disk. When guibooting, a lot of .CAT file not found correctly(default is c:\i386), as well notepad.exe and other dll file lost.

the ntldr on the harddisk0 is changed to normal, and boot.ini was put on it too.

the RDISK() is wrong:

[boot Loader]

timeout=1

Default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[Operating Systems]

multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

The installation procedure I can understand, but what confused me is that why installation files havn't been deleted? Migrate.inf is not be used.

Also above wrong directory, how to correct it?

...

Link to comment
Share on other sites

When guibooting, a lot of .CAT file not found correctly
Check \windows\system32\$winnt$.inf where Setup looks for the source files. Check setup log files in \windows too.

What did you put as SetupSourcePath in txtsetup.inf?

Were those missing files from a slipstreamed SP or updates? Check paths to them in txtsetup.sif, they may differ from those of a 'regular' source file.

the ntldr on the harddisk0 is changed to normal, and boot.ini was put on it too.
This is expected behavior- Setup would put boot files on the first fixed hard disk according to BIOS order. In case of USB stick which is normally 'removable', Setup puts them on the first fixed disk.

rdisk value is not wrong. According to BIOS order the second disk, where Windows is being installed to, is rdisk(1). There is still need to mess up with BOOT.INI later on.

The only way we found to avoid this behavior was to "break" HD order using grub4dos map command. Seems at that stage grub4dos mapping is still in effect. Setup would detect a strange situation and will use HD signature along with ARC path- e.g. signature(de33eaf8)disk(0)rdisk(0)partition(1)\WINDOWS. Note, rdisk value is the desired one. Those were tests with USB sticks. Signature part also seems to cause delay during boot, longer or shorter, depending on the system.

Read around this post for details:

http://www.msfn.org/board/index.php?showto...st&p=646746

why installation files havn't been deleted?
Read here:

http://www.msfn.org/board/index.php?showto...st&p=776205

In short- if MsDosInitiated="1", then SetupSourcePath and SetupSourceDevice are ignored, it defaults to $WIN_NT$.~LS, source files gets deleted as the source path is considered as temporary, saving disk space as the installation goes along.

MsDosInitiated="0"- SetupSourcePath and SetupSourceDevice are taken into account, source path is no longer considered as "temporary", no files are deleted.

Link to comment
Share on other sites

Check \windows\system32\$winnt$.inf where Setup looks for the source files. Check setup log files in \windows too.

What did you put as SetupSourcePath in txtsetup.inf?

I havn't checked it yet. I will test it tonight.

I set SetupSourcePath = \device\harddisk0\partition1 in txtsetup.sif

Were those missing files from a slipstreamed SP or updates? Check paths to them in txtsetup.sif, they may differ from those of a 'regular' source file.

The XP is sp3 from msdn CD.

rdisk value is not wrong. According to BIOS order the second disk, where Windows is being installed to, is rdisk(1). There is still need to mess up with BOOT.INI later on.

The value rdisk(0) after "defaut =" is not equal to the one in [operatins systems] which is rdisk(1).

The only way we found to avoid this behavior was to "break" HD order using grub4dos map command. Seems at that stage grub4dos mapping is still in effect. Setup would detect a strange situation and will use HD signature along with ARC path- e.g. signature(de33eaf8)disk(0)rdisk(0)partition(1)\WINDOWS. Note, rdisk value is the desired one. Those were tests with USB sticks. Signature part also seems to cause delay during boot, longer or shorter, depending on the system.

If the file system not NTFS, boot.ini can be fixed by DD comand of grub4dos.

In short- if MsDosInitiated="1", then SetupSourcePath and SetupSourceDevice are ignored, it defaults to $WIN_NT$.~LS, source files gets deleted as the source path is considered as temporary, saving disk space as the installation goes along.

MsDosInitiated="0"- SetupSourcePath and SetupSourceDevice are taken into account, source path is no longer considered as "temporary", no files are deleted.

Thanks a lot.

Link to comment
Share on other sites

I set SetupSourcePath = \device\harddisk0\partition1 in txtsetup.sif
You meant SetupSourceDevice = \device\harddisk0\partition1, right? What was SetupSourcePath?
The value rdisk(0) after "defaut =" is not equal to the one in [operatins systems] which is rdisk(1).
I thought it was a typo. Maybe on real hardware result will be different :unsure:
If the file system not NTFS, boot.ini can be fixed by DD comand of grub4dos.
That's restrictive, I personally would always use NTFS plus one may want to install windows on the second or third internal HD. Maybe search for a tag file...

In other hand, binifix.cmd at start of GUI is a proven to be working option.

Link to comment
Share on other sites

SeupSourcePath, I did not change it.
I'd try with a source in a folder too.
You get up so ealier.
Nah, just the time zone. As for waking up early mornings- that's never been my strong side :lol:
Link to comment
Share on other sites

I may add that however, grub4dos dd should be able to change a single byte even on a NTFS filesystem with no problems, haven't tested it, but from the grub4dos readme:

In some cases when writing a file in NTFS, dd might fail.

should mean that it is possible that a problem happens, not necessarily that it will happen.

The difficult part would be to tell it WHICH byte to change, i.e. somehow scripting the feature, both finding the "address" that needs to be changed and the right "value" to write.

The "z-1" concept was devised to work on "ANY" setup ;):

http://www.msfn.org/board/How-to-boot-inst...html&st=240

and following.

jaclaz

Link to comment
Share on other sites

Here already such dd example in Chinese: http://bbs.znpc.net/viewthread.php?tid=550...t=dd&page=4

The 60th topic.

I translate here

dd is a strong command, personally I think this is anoter most powerfull command after map command of grub4dos.

By using the switch of "bs, skip, seek" we can copy file to file, sector to sector and the byte to byte of file, any position can be wittern (wether the file is read only or have NTFS right, Added by victor888).

Note:

1. for a complete write, the byte of target file must be more than or equal to source file.

2. The target file should be in device, no matter what the file content is.

Example:

This is a dos batch on (fd0) name path.bat:

set string=abcdefghijklmnopqrstuvwxyz

set path=¥:

goto main

:main

...

...

....

goto end

...

:end

The first line is 37 bytes (in fact, there ENTER or SHIFTLINE charactor bytes at the end of line, for the sake of demonstrating the use of dd command, the bytes are omitted.)

The second line is 11 bytes.

Then we could write any charactor to the second line.

e.x replacy ¥ in the second line to certain letter, juse do the following:

dd if=(fd0)/path.bat of=(fd0)/path.bat bs=1 skip=11 count=1 seek=46

hence, the second line was replace to set path=a:

(bs=1 means one byte as read unite,count=1 means only write one block defined by bs switch, here is one byte. skip=11 means skip 11 bytes including space. seek=46 means skip 46 bytes when write, that is write the 47 byte ¥)

Certainly, we can do booting disk this way:

dd if=/pe.img of=(fd0) or

dd if=(cd0) of=/cd.iso

Writing boot sector to imge fiel is also convenient:

dd if=(hd0,0)+1 of=/dos.img

We can study above to chang boot.ini without dificculty.

Edited by victor888
Link to comment
Share on other sites

We can study above to chang boot.ini without dificculty.

Well, not so easy. :(

I have full faith on the power of grub4dos dd command, but alas not yet enough on grub4dos scripting language.

You may have a "strange" BOOT.INI already on the target machine.

See the example posted here:

http://www.msfn.org/board/How-to-boot-inst...html&st=244

Are you positive that you can find a way (entirely in grub4dos) to detect the position of z, both here:

[boot Loader]

Timeout=5

Default=multi(0)disk(0)rdisk(z)partition(3)\WINDOWS

and here:

...

....

C:\BOOT\FDOS1440.bin="Test boot"

multi(0)disk(0)rdisk(z)partition(3)\WINDOWS="Microsoft Windows XP Professional" /fastdetect

And later read the z value, calculate the z-1 value and write it in both places? :blink:

jaclaz

Link to comment
Share on other sites

You give a special example which is difficult to deal with.

For fresh instll xp on a new partition, boot.ini is simple and easy to revise by grldr.

Yep. :)

But it would be a little limitative, as I see it, being comaptible ONLY with a newly formatted drive and with ONLY one NT/2K/XP/2003 and no multibooting.

jaclaz

Link to comment
Share on other sites

I am testing your method.

I am curious about what is to be renamed in TXTSETUP.SIF - i386. Is this what is supposed to be renamed?

[SourceDisksNames.x86]
1 = %cdname%,%cdtagfilei%,,"\$WIN_NT$.~BT"
2 = %cd2name%,%cd2tagfilei%,,"\cmpnents\tabletpc\$WIN_NT$.~BT"
3 = %cd2name%,%cd2tagfilei%,,"\cmpnents\mediactr\$WIN_NT$.~BT"
4 = %cd2name%,%cd2tagfilei%,,"\cmpnents\netfx\$WIN_NT$.~BT"
100 = %spcdname%,%spcdtagfilei%,,"\$WIN_NT$.~BT",1
_1 = %bootname1%,%boottagfile1%,,""
_2 = %bootname2%,%boottagfile2%,,""
_3 = %bootname3%,%boottagfile3%,,""
_4 = %bootname4%,%boottagfile4%,,""
_5 = %bootname5%,%boottagfile5%,,""
_6 = %bootname6%,%boottagfile6%,,""
1_ = %bootname1%,%boottagfile1%,,""
2_ = %bootname2%,%boottagfile2%,,""
3_ = %bootname3%,%boottagfile3%,,""
4_ = %bootname4%,%boottagfile4%,,""
5_ = %bootname5%,%boottagfile5%,,""
6_ = %bootname6%,%boottagfile6%,,""
7 = %cdname%,%cdtagfilei%,,"\$WIN_NT$.~BT\lang"
107 = %spcdname%,%spcdtagfilei%,,"\$WIN_NT$.~BT\lang",1
8 = %cdname%,%cdtagfilei%,,"\$WIN_NT$.~BT\lang"
9 = %cdname%,%cdtagfilei%,,"\$WIN_NT$.~BT\lang"
10 = %cdname%,%cdtagfilei%,,"\$WIN_NT$.~BT\lang"
11 = %cdname%,%cdtagfilei%,,"\$WIN_NT$.~BT"
12 = %cdname%,%cdtagfilei%,,"\$WIN_NT$.~BT"
13 = %cdname%,%cdtagfilei%,,"\$WIN_NT$.~BT"
14 = %cdname%,%cdtagfilei%,,"\$WIN_NT$.~BT"
15 = %cdname%,%cdtagfilei%,,"\$WIN_NT$.~BT"

Link to comment
Share on other sites

I've tried a couple of times, and I can't get it to work correctly.

Regardless of what I do, I get a boot error message after reboot after initial (textmode, the grey on blue) install phase.

Depending on BIOS I get:

* USB drive highest prio. Textmode install lists hard drive as C.

* USB drive lower prio, use F12 to manually select USB to boot from. Textmode install lists hard drive as E or something.

One thing, I am using

SetupSourceDevice = \device\harddisk1\partition1

I am not sure how things are related here, so if that affects anything.

/mawi

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...