Help - Search - Members - Calendar
Full Version: How to install from USB- WinSetupFromUSB with GUI
MSFN Forums > Member Contributed Projects > Install XP from USB
Pages: 1, 2, 3, 4

   
Google Internet Forums Unattended CD/DVD Guide
ilko_t
Here comes the first GUI for our little project.

What it can be used for adding to your USB stick/disk:

- multiple Windows XP/2kX sources in the same partition (up to 10). They have to be in the first partition of the disk! Existing folders ~BT and ~LS and TXTSETUP.SIF will be renamed, and SETUPLDR.BIN and SETUPDD.SYS patched against the new names. Checksum checks are also corrected. BTS OEM folders are supported and renamed accordingly.
- BartPE/WinBulder/UBCD4Win/WinFLPC (NOT ramdisk versions) to any primary partition. Multiple BartPE for example, in the SAME partition are NOT supported. Neither is the mix of them on a single partition.
- Vista setup to different primary partitions. Multiple Vista sources in the SAME partition are NOT supported. Place your second Vista setup in another partition. It can be placed on any primary partition.
- GParted 0.3.4-8 and 0.3.6-7, excellent open source partition manager.
- SyLinux bootsector, and optionally folder, containing (Linux) distro, booting off SysLinux. For example you may extract UBCD411.ISO, and point it to this folder. Entire contents will be copied and entry for SysLinux will be added to the boot menu.

Some features:
- detects UBCD4Win and uses multiboot menu for it if folder IMAGES is found. Only default UBCD4Win multiboot options are added. Edit UBCD4Win.lst to add custom ones.
- UBCD4Win boot menu is adjusted to boot from the selected partition. It can be placed on any primary partition.
- if Windows setup folders (~BT and ~LS) and txtsetup.sif coexist in the same partition as BartPE/WinBuilder/UNCD4Win/WinFLPC, SETUPLDR.BIN of the latter is patched not to use txtsetup.sif in root. Checksum checks are also corrected.
- grub4dos is the main bootloader/manager. Without it's advanced features, multiple partitions will not be easily achieved.
Bootsector loading GRLDR is installed in the active partition of the selected disk. Hence the requirement for active partition and MBR.
- detailed log file is created in the folder, where program is executed from. Use it for troubleshooting. Upon next execution if log file is found, it's compressed in MS cab format, removed to BACKUPS folder and renamed with current DATE/TIME stamp.
- upon installing grub4dos bootsector, backup of MBR and bootsector with DATE/TIME stamp are placed in BACKUPS folder. Use it in case something goes wrong.
- if in Windows source folder winnt.sif or unattend.txt are found they will be used as answer file. Section UNATTENDED will be temporarily removed, only for the Text part of setup, and before start of GUI mode it will be merged back. PRESETUP.CMD is used for this purpose.
- $OEM$ folders are copied by presetup.cmd
- binifix4.cmd and undoren.cmd were merged
- detects if UserExecute in [SetupParams] is already occupied
- option to start the prepared USB disk in QEMU for testing purposes. Use carefully at own risk, do not attempt write operations!
- tooltips on almost every element in the GUI
- for multi partition USB stick use the cmd files in "files\tools\MULTIpartitionUSBstick". Works for 32bits Windows only! This is not thoroughly tested option, use at your risk.

Please read the included ReadMe.txt, it should help you get started. When in doubt hold the mouse over the element, a tooltip should help you with the choice.
Not tested yet on 64bit versions or Vista, but should be compatible.

If reporting problems, please attach your compressed log file (WinSetupFromUSB.log), windows version and exact steps to reproduce the problem. Thanks smile.gif


Latest- vers. 0.1.1 - 23.Oct.2008
Download: 0.1.1 mirror

- fixed DOSNET.INF parsing if path contains comma(s) and if some rare setting are used in directory section

vers. 0.1 - 16.Oct.2008
Download: 0.1 mirror

- unattended section handled better- if BTS drivers pack was not used, fake setup as per Pyron's method will be executed. This will launch presetup.cmd and when done real Setup will be started. If OEMPreinstall = yes is found $OEM$ folders will be copied to their place by presetup.cmd. If OemPnPDriversPath is found, paths in it it will be scanned by SPDrvScn in order to add those paths to
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ DevicePath
http://www.vernalex.com/tools/spdrvscn/index.shtml
If you need to disable driver signing errors add an entry in ~LS\I386\presetup.cmd to start WatchDriverSigningPolicy.exe and copy the latter from \WinSetupFrimUSB\files\winsetup to your USB disk.
Credits to Driver Packs team, Ercofra, schalti, Pyron, a06lp and iLE.
http://www.msfn.org/board/install-OEM-drivers-t123023.html
http://www.msfn.org/board/index.php?showto...ost&p=87594
Should work if installing x64 Windows too.
This part is not fully tested, feedback is welcome smile.gif
- fixed bug when source is on a CD or mounted ISO and winnt.sif ot txtsetup.sif not edited because of the read-only attributes.
- boot.ini is fixed during GUI part of setup.
- USB letter is fixed to U: in case of removable USB disk and U: is searched first among the drive letters to avoid at least some of the silly windows errors with empty card readers.
- fixed bug when more than 9 disks are present (again empty card readers). Program will not continue if target USB disk has number in Windows > 9, as grubinst.exe doesn't work yet if disk number is 2 digits.
- added support for GParted vers. 0.3.7-7 and 0.3.9-4
- Grub4Dos updated to 0.4.4 2008-10-12
- little improvements in tooltips, error messages, logging and program code
- fixed WinBuilder copying
- source code included
- unattend.txt no longer used if winnt.sif is not found

vers. 0.1 Beta - 08.Sept.2008
Download: 0.1 Beta mirror

- presetup.cmd is properly created if doesn't exist
- quotes in DOSNET.INF [directories] section are ignored while parsing if newer nLite versions (>= 1.4.5) was used
- winnt.sif read-only attributes reset when XP/200x source is on a CD
- small changes in GUI
- GRUB4Dos updated to 08-08-2008
- selected items are reset upon completion to avoid free space warnings
- some fixes in patching for multiple XP/200x sources
- prompt to assign drive letter U: to USB disk
- boot menus changed to allow unattended XP/200x setup
- added desktop shortcut

vers. 0.1 Alpha - 11.July.2008- initial release
0.1 Alpha


Edit(15:04-11.July.2008) - Fixed typo in title
Edit(10:01-13.July.2008) - To do list changed
Edit(08.Sept.2008) vers. 0.1 Beta
Edit(16.Oct.2008) vers. 0.1
Edit(23.Oct.2008) vers. 0.1.1
ilko_t
I preferred this part to be in a separate post, as it is important:

Credits to jaclaz, cdob and wimb for their continuous help and contribution on Installing XP from USB and not only, without who this wouldn't have happened, and porear for bringing this project up and putting it in the right direction, as well as to everyone, who contributed to the project with ideas, requests or feedback- signal64, andy_le2k, lilas to mention few of them.

Thanks to UglyBob, ptrex, SmOke_N, aec and ezzetabi from AutoIt forum for their excellent AutoIt script examples, parts of which were used.
Thanks to Anton Bassov for his dummydisk.sys driver and help for reverting it's behaviour to rdummy.sys, which makes USB fixed disks to be seen as removable.
Thanks to Tynibit for his excellent work and support on GRUB4Dos, and Bean123 for grubinst.exe and touchdrv.exe.
And last but not least credits to creators of all tools, which were used in this project- Grub4DOS, PEtoUSB, HP USB format utility, HDHacker, SysLinux, binifix.cmd(did I mention Jaclaz, cdob and wimb?), QEMU, DRVLoad and sync.exe...


jaclaz
I actually had the feeling you were up to something..... unsure.gif

....good work! thumbup.gif

Making it a sticky....

jaclaz
ilko_t
You should trust your feelings smile.gif

I was in my 'bucket list' newwink.gif
QUOTE (ilko_t @ Nov 9 2007, 12:13 PM) *
Anyone thinking of GUI ?


wimb
Hallo ilko,

Congratulations with your WinSetupFromUSB_0-1A Program.

It looks fine, and I did three runs with it, and could Install XP in all cases.

What I miss is the action of MkMigrateInf2.cmd to make the USB-stick DriveLetter U:
So now my first install had shifted drive letters for the 2nd and 3rd partition.

The menu entries in GRUB4DOS menu.lst at the moment do not allow Unattended Install.
On Reboot again TXT-mode Setup is automatically selected.
I reverted the entries and then everything went OK. newwink.gif
At best the Continue+Start XP entry should occur as first line in menu.lst.

Another wish would be the possibility to Exclude LANG / WIN98 folders from copy to USB-stick.
And Display and Edit of XP Setup Parameters in winnt.sif + useraccount in $OEM$ folder.
It would also be nice if winnt.sif and $OEM$ would be User selectable.
Now everything must be ready in the XP-Source.
Some people may want to Select the option of Attended Setup at the moment of Install from USB.

But all these wishes are may be interesting for future developments.
For now the program is running rather well. smile.gif

The message of No enough Space is a bit Confusing when Copy to USB-stick is Ready.
It will propably be due to my test stick of only 1 GB but in most cases Ready would be a better message.

I forgot to mention that the presetup.cmd is giving No Disk Exception Message (4x) for my CardReader.
Pressing 4x Continue makes XP Setup Resume.

The search for the USB-drive tagfile can be first in a limited Drive-range, like for ren_fold.cmd
That solves the problem. newwink.gif

Thanks for this program.

Succes,

wimb
ilko_t
Thanks Wimb, this was very helpful smile.gif

CODE
What I miss is the action of MkMigrateInf2.cmd to make the USB-stick DriveLetter U:
So now my first install had shifted drive letters for the 2nd and 3rd partition.
It's on purpose. I prefer to watch USB drive letter as indicator if something goes wrong and USB disk is recognized as first, as you know then boot files goes on it etc..
I had cases, when even with rdummy.sys, my USB disk was detected as fixed, because it was the last among many mass storage drivers to load. Had to move it to BusExtenders, where it seems to load fine.
The shifted drive letters are easily fixed later on from Disk management, which causes no harm to the installation.
Still a good idea to include it, just in case someone prefers to use it.

QUOTE
The menu entries in GRUB4DOS menu.lst at the moment do not allow Unattended Install
Haven't had tome to fix that. I prefer not to change order as it breaks the logic 1) then 2) ..., but rather use grub4dos options to set default entry once TXT mode entry was executed. Added to to-do list.
QUOTE
Another wish would be the possibility to Exclude LANG / WIN98 folders from copy to USB-stick.
No plans for this smile.gif There is a beautiful program Nlite, which does this job. Source is used and copied as it is prepared. Messing with the source is beyond the scope of the program.

CODE
And Display and Edit of XP Setup Parameters in winnt.sif + useraccount in $OEM$ folder
Ditto smile.gif Source is copied as it is. Same applies for winnt.sif, which is amended ONLY with the entries, allowing installation from USB. NLite and other similar programs are to be used if one wants to manipulate his source and unattended file. Same for $OEM$- if it's there- it's copied.
Additionally- many people just want to install the XP source they have from USB, without answering too much questions and presented with information, which means nothing to them. I assume, that whoever knows what winnt.sif is, he should know or at least capable to find what to edit, in order to customize his installation. This is not job for the program. If you remember we have discussed that before on PM newwink.gif

QUOTE
For now the program is running rather well
Good to read smile.gif

QUOTE
The message of No enough Space is a bit Confusing when Copy to USB-stick is Ready.
It will propably be due to my test stick of only 1 GB but in most cases Ready would be a better message.
Good catch, I never run out of disk space lately as I was using USB hard disk. Upon completion I will reset all checkboxes and Windows source, then do the size check. Thanks.

QUOTE
I forgot to mention that the presetup.cmd is giving No Disk Exception Message (4x) for my CardReader.
Pressing 4x Continue makes XP Setup Resume.

The search for the USB-drive tagfile can be first in a limited Drive-range, like for ren_fold.cmd
This is an issue with BTS drivers pack presetup.cmd., which I prefer to resolve in other way- by opening a ticket in their forum. The program simply adds a few lines to the presetup.cmd, which already exists. Thus the difference between ren_fold.cmd and presetup.cmd.
But bringing this up reminded me that I forgot to fully cover the case when presetup.cmd doesn't exist.

Thanks for the detailed feedback smile.gif

wimb
QUOTE (ilko_t @ Jul 13 2008, 06:59 PM) *
Thanks Wimb, this was very helpful smile.gif
QUOTE
Another wish would be the possibility to Exclude LANG / WIN98 folders from copy to USB-stick.
No plans for this smile.gif There is a beautiful program Nlite, which does this job. Source is used and copied as it is prepared. Messing with the source is beyond the scope of the program.
If you just don't copy LANG / WIN98 folders to USB-stick,
then I don't think you can speak of "Messing with the source",
whereas this statement is more applicable when using nLite. newwink.gif


ilko_t
QUOTE (wimb @ Jul 13 2008, 10:42 AM) *
If you just don't copy LANG / WIN98 folders to USB-stick,
then I don't think you can speak of "Messing with the source",
whereas this statement is more applicable when using nLite. newwink.gif
It's removing of functionality, which is supposed to be done while messing with the source with NLite, and not by a program, which idea is to transfer already prepared source to USB disk, and make it ready for installation from USB newwink.gif
In other words I'd prefer to keep it as simple as possible, requiring user to prepare it's source in advance, using external tools such as NLite.
wimb
QUOTE (ilko_t @ Jul 13 2008, 11:34 PM) *
In other words I'd prefer to keep it as simple as possible, requiring user to prepare it's source in advance, using external tools such as NLite.
Now you force people to use a tool like nLite, and go through all the pages,
just for specifying the 8 essential parameters required for Unattended XP Setup.
Besides nLite needs .NET Framework 2.0 to be installed.

How do you help the people who don't work with nLite and
would like to specify their 8 XP Setup Parameters for Unattended Setup in a simple dialoque ? unsure.gif


QUOTE
This is an issue with BTS drivers pack presetup.cmd., which I prefer to resolve in other way- by opening a ticket in their forum. The program simply adds a few lines to the presetup.cmd, which already exists. Thus the difference between ren_fold.cmd and presetup.cmd.

Nowadays BTS presetup.cmd has a line to delete setupold, so it is not needed to do this twice. newwink.gif
bledd
wow, will try this out later on

thanks for all the hard work
jaclaz
QUOTE (wimb @ Jul 14 2008, 06:00 AM) *
Now you force people to use a tool like nLite, and go through all the pages,
just for specifying the 8 essential parameters required for Unattended XP Setup.


Wimb, maybe you are making it a bit heavier than needed. woot.gif

Noone is forcing people to do anything, if people does not want to use this GUI tool they can use your more featured .cmd. smile.gif

There is a possibility, that you seem not to take into account, that one already has a perfectly lited, tweaked and tuned up source (these steps made with whatever methods) and simply wants to use that source to install it from USB.

As I see it, this project is somewhat different from your USB_Multiboot, it is not a GUI translation of it, just a simple, honest, plain, "Install from XP USB" GUI app, it is not intended to compete or replicate the already working, full featured batches.

You may notice that most of the (very few) reported problems with your batches were "tracked down" to the user having made a wrong or inappropriate choice among the several possibilities the USB_Multiboot offers, if you remamber I even (frienldy smile.gif) once accused you of being caught by "featuritis"....newwink.gif

jaclaz
wimb
QUOTE (jaclaz @ Jul 14 2008, 03:46 PM) *
There is a possibility, that you seem not to take into account, that one already has a perfectly lited, tweaked and tuned up source (these steps made with whatever methods) and simply wants to use that source to install it from USB.
I am quite well aware of this, but I was just thinking of the people,
who would like to specify their 8 parameters for Unattended XP Setup in a simple way.

In general I agree with you and may be my idea is useful for future developments. smile.gif
tap52384
This is awesome! This is always something that I wanted to do, especially since I assume that installation from USB is not only more convenient, but faster than installing from DVD, or am I wrong? In any case, an nLite collaboration would be cool as well, to be able to nLite XP and then install it from USB!
ilko_t
QUOTE (wimb @ Jul 13 2008, 09:00 PM) *
Now you force people to use a tool like nLite, and go through all the pages,
just for specifying the 8 essential parameters required for Unattended XP Setup.
Besides nLite needs .NET Framework 2.0 to be installed.

How do you help the people who don't work with nLite and
would like to specify their 8 XP Setup Parameters for Unattended Setup in a simple dialoque ? unsure.gif

Jaclaz answered better than I could smile.gif

QUOTE (wimb @ Jul 13 2008, 09:00 PM) *
Nowadays BTS presetup.cmd has a line to delete setupold, so it is not needed to do this twice. newwink.gif
Are you sure one will be using source, prepared with the nowadays BTS DP base- I wasn't newwink.gif
The line doesn't hurt, and was easier for me to add it anyway, instead of checking if it's already in presetup.cmd. I can fix it quickly if you think it's a problem.

Checking sizes upon completion if fixed now, decided to uncheck all the check boxes and reset windows source when copy is completed.
Presetup.cmd is now properly created if it was not in the source. Will upload new version when a few more bugs are fixed.
Grub4dos unattended- this is a bit tricky.

CODE
default /default
fallback X

title Text mode....
....
savedefault fallback

title Gui mode
....
The thing is that lines are added to menu.lst, and I don't know what X will be, could scan for it, but that will take time to program. Besides, the above entries are created in pairs for each Windows source added, although the second entry (GUI mode) could be common for all the Windows sources as it will point to the same NTLDR/BOOT.INI.
Need to think how to organize menu.lst or reorganize it upon completion.
It may be easier just to include a few lines in ReadMe.txt- if you want the second part of Setup to launch automatically after first part is executed then....
jaclaz
@Wimb
@ilko_t
Why not a SEPARATE Auto-it .script "The8Steps4unattended.exe" ? newwink.gif


QUOTE (ilko_t @ Jul 14 2008, 07:32 PM) *
Grub4dos unattended- this is a bit tricky.

CODE
default /default
fallback X

title Text mode....
....
savedefault fallback

title Gui mode
....
The thing is that lines are added to menu.lst, and I don't know what X will be, could scan for it, but that will take time to program. Besides, the above entries are created in pairs for each Windows source added, although the second entry (GUI mode) could be common for all the Windows sources as it will point to the same NTLDR/BOOT.INI.
Need to think how to organize menu.lst or reorganize it upon completion.
It may be easier just to include a few lines in ReadMe.txt- if you want the second part of Setup to launch automatically after first part is executed then....


Can you explain better the problem? unsure.gif

jaclaz
ilko_t
QUOTE (jaclaz @ Jul 14 2008, 10:59 AM) *
@Wimb
@ilko_t
Why not a SEPARATE Auto-it .script "The8Steps4unattended.exe" ? newwink.gif

@Wimb-
I'll try to explain in details the way I see all this.
The project started as alternative method of installing Windows from USB. The known ones are winnt from DOS and winnt32 or it's variants as PE plugins, started from PE environment. As such alternative, it was rather interesting from experimenting and inventing point of view, rather than a practical sollution.
It turned out to be practical since Asus EeePC appeared and the interest boomed. Why- most of these users had no idea what BartPE or winnt32.exe is, neither what unattended install or winnt.sif is. Not to mention building BartPE, integrating mass storage drivers etc. They just needed one-off installation of their Windows source, whatever it is (slimmed down, unattended, with extra programs/addons...), from USB, with a few mouse clicks or a few answers, in the way they are used to- as if it was started from CD.
As this alternative method got polished/sophisticated and popularity increased, more and more experienced users became interested. And you have done A LOT for this to happen.

Following these thoughts I assume there are 2 types of 'potential users':

1) Who know what unattended (and slimming down or adding drivers/programs) Windows source is, and presumably know at least one of the popular methods to perform that:
http://www.nliteos.com/
http://winfuture.de/xpisobuilder3_en
XPPRO_CD\SUPPORT\TOOLS\DEPLOY.CAB\SetupMGR.exe
XPPRO_CD\SUPPORT\TOOLS\DEPLOY.CAB\ref.chm + Notepad.exe-->winnt.sif
http://unattended.msfn.org/unattended.xp/ + Notepad.exe-->winnt.sif
www.google.com --> 'unattended windows setup'
2) Ones who have no clue what the above is, and want install from USB with a few mouse clicks, without being bothered with extra information or questions.

In case of 1)- Is there a point providing this functionality, overlapping famous and well documented/supported tools?
In case of 2)- Is it the time to go into that curve? Is he interested at all in these options or simply wants to install his Windows the way he knows?
Even if he is interested, I'd prefer to include the information in a ReadMe file and point to the right direction(above), rather than implementing this functionality in the program itself, overloading the main interface with checkboxes or messages.
Simple displaying winnt.sif entries I find useless for novices, as those entries also have to be explained what they mean with their alternative values.
Once he knows how many things could be done to his source, the problematic 8 entries will not be the only ones wanted. Same applies for LANG folder or CMPNENTS for MCE or Tablet, which absence could lead to fatal errors during or after installation, if one had already enough new information and on the next message chooses randomly yes/no, without reading a word. Believe me, this is what happens most of the time.

If the point to display winnt.sif is to use as reminder to the experienced user what is going to be used, I may add a button or message box "Do you want to display winnt.sif" and launch "notepad.exe winnt.sif". Contrary- we have there important entries, curious people according to practice and Murphy's law tend to mess exactly where they are not supposed to. Keeping out of focus winnt.sif, which performs the most important steps to be USB setup successful, is preferred.
As time goes by, a tab "advanced settings" could be added. For now I don't have the willingness and the spare time to do that, my mind simply refuses to think about concentrating on this subject. I'd rather spend more time on simplifying and automating install from PE environment, finding a way to protect files during Text mode in 2000/2003 versions, or making x64 version of rdummy.sys, than implement features, which are already well covered by other means. Don't forget that XP/2003 days are going to an end as well. Within a few years all this will be buried.
In addition- the program is run from normal Windows environment, and your toolbox(Internet, Notepad, Help files, NLite...) is full. If it was in PE environment, where tools are limited, then yes, it could be good option.
Another point, which is rather personal- I am an old schooler, prefer simplicity, small sizes and information thrown at user limited to the bare minimum. Hence my opinion what is a key factor a program to be successful and easily accepted.

ilko_t
QUOTE (jaclaz @ Jul 14 2008, 10:59 AM) *
Can you explain better the problem?
The thing is once Text mode is selected in menu.lst, on next launch of grub4dos the second part(GUI) to be default, and eventually fully unattended installation performed.

Menu.lst is created dynamically and entries are added to an existing one, which if not present is created. On first run of the program one may not choose to add Windows source. Thus the entries number 0-3 for example will be occupied by Bart PE, Vista setup etc.
Next run- add windows source. This will add the pair as entry #4 and 5:

CODE
title First part (Text mode) of $version setup
chainloader /$win_nt$.~bt/setupldr.bin
savedefault fallback

title Second part (GUI mode) of $version setup
root...
chainloader /ntldr

In order to set fallback entry AND set it default I need to know that last entry, for the GUI mode what number in menu.lst is. Why.

What came in my head so far is to separate the entries by seeking for 'title', so everything between two 'title' is an entry. Then look in this entry if string 'ntldr' is present, ignoring the commented lines, and count what number it is. Then set this number as a fallback.

The problem is when a new Windows source is added to the USB disk. This will add another pair of entries.
The first entry will deffer as setupldr.bin will be in another folder, but the second entry will differ against the similar one only in it's title, where $version is used.

Creation of second entry (GUI mode) could be omitted, using one for all Windows sources, not adding for which version of Windows it is as that's only for guidance. But in this case menu.lst may end up like:

QUOTE
First part(Text Mode) of Windows XP professional
Second part(GUI Mode) of Windows Setup + Start it for a first time
First part(Text Mode) of Windows 2003 server
First part(Text Mode) of Windows 2000 standard
Start UBCD4Win from partition 3
I wanted to avoid that, as if one wants to install say Windows 2000, he'd expect second part to be below the first part, which is why I add them in pairs:

QUOTE
First part(Text Mode) of Windows XP professional
Second part(GUI Mode) of Windows XP professional Setup + Start it for a first time
First part(Text Mode) of Windows 2003 server
Second part(GUI Mode) of Windows 2003 server Setup + Start it for a first time
First part(Text Mode) of Windows 2000 standard
Second part(GUI Mode) of Windows 2000 standard Setup + Start it for a first time
Start UBCD4Win from partition 3


Now if first variant is better- with only one entry for the GUI mode, then will have to seek in menu.lst if 'Second part(GUI Mode) of Windows Setup + Start it for a first time' is present, and if not- add a new one.
If the second variant, with pairs, is better, then it's tricky, which entry should be set as fallback entry?

Another variant as I am thinking more on this- no need to use 'savedefault fallback', but rather 'savedefault X' and still use pairs. When adding new entries the program will count what number(Y) in menu.lst
"First part(Text Mode) of Windows 2000 standard" is, and set "savedefault X+1".

All the variants assume that entries above those lines are not deleted, or everything will get messed up. Thinking of that, wouldn't be easier and safer just to include in the ReadMe brief information how to be set up manually? So one will be aware what to change if wants GUI mode to be selected automatically, and if decides to delete entries.
I am puzzled unsure.gif
What do you guys think?

ilko_t
QUOTE (tap52384 @ Jul 14 2008, 10:21 AM) *
This is awesome! This is always something that I wanted to do, especially since I assume that installation from USB is not only more convenient, but faster than installing from DVD, or am I wrong? In any case, an nLite collaboration would be cool as well, to be able to nLite XP and then install it from USB!
Hope you like it smile.gif
It is considerably faster, especially when using fast USB stick or hard disk and your BIOS supports USB boot in full 2.0 speed. In some cases NTFS is reported to perform times faster than FAT16/32, I guess this happens when Text mode setup tries to delete files from the write-protected USB disk and have no further explanation why exactly.
Keep in mind that not all BIOSes support boot from NTFS formatted USB disks, and NTFS on USB stick may 'wear it' sooner, depending on it's quality and usage.
wimb
QUOTE (ilko_t @ Jul 15 2008, 02:26 AM) *
I'd rather spend more time on simplifying and automating install from PE environment,
......
Don't forget that XP/2003 days are going to an end as well. Within a few years all this will be buried.

Thanks for your extended reply.
I agree with you, that edit and display of XP Setup parameters can be part of future developments,
and that it is not necessary to change your program now for these options.

My approach in the project corresponds very well to yours, and at the moment I am also very interested in
the possibilities of Install of XP from PE Environment, which allows FREE choice of XP Source on any drive.

I don't think that XP will be buried very soon, unless there will come a complete new Windows OS,
which is better and smaller than Windows XP,
with e.g. SYSTEM and UserData well separated on different partitions and
build in Ghost-like SYSTEM Backup and Restore posibility.
The popular ASUS Eee PC proves that we are moving towards smaller and less complicated systems,
which are easy to manage.
jaclaz
@ilko_t

Just some of my "semi-random" ideas, mind you, but couldn't this be done "internally"? unsure.gif
QUOTE
******************************************************************************
*** Newly implemented operators `&&' and `||' ***
******************************************************************************

This implementation is very simple. It does not handle operator nesting.

Usage of `&&':

command1 && command2

Description:

If command1 returns true, then command2 will be executed.

Usage of `||':

command1 || command2

Description:

If command1 returns false, then command2 will be executed.

Examples:

is64bit && default 0
is64bit || default 1

Can we assume that a given file will be on the internal hard disk (and never on the USB stick) only after completion of the text mode setup?

Can we (deftly newwink.gif) combine the above with the "default FILE" command:
QUOTE
******************************************************************************
*** New Syntax for the DEFAULT/SAVEDEFAULT Commands ***
******************************************************************************

In addition to the original usage of "default NUM" and "default saved", now
there is a new usage of "default FILE", like this:

default (hd0,0)/default

Note that FILE must have a valid DEFAULT file format. A sample DEFAULT file
is included in the release. You may copy it to wherever you like, but you
should avoid modifying its content manually. The DEFAULT file may be used
in this way:

(1) First, you should copy a default file with valid format to somewhere in
your operating system.

(2) Secondly, you should use the "default FILE" command of GRUB to announce
the use of FILE as our new default file for being written by "savedefault".

(3) Then, you may use "savedefault" command to save the desired entry number
into this new default file.

(4) OK, at next boot, you may read the saved entry number by using the same
"default FILE" command as mentioned in above (2).


And with the "configfile FILE" directive?

i.e.:
1) We have the normal "menu.lst" in root, it contains only entries of this type:
CODE
title Win2k install
default /2kdefault
find /tagfile && setdefault 1
configfile /Win2k.lst

title XP install
default /xpdefault
find /tagfile && setdefault 1
configfile /xp.lst

....


2) the configfile of each OS have only two entries:
CODE
title text mode
WHATEVER IS NEEDED FOR TEXT MODE
boot

title GUI mode
WHATEVER IS NEEDED FOR GUI MODE
boot


In other words, each configfile only has two entries, 0 for text mode and 1 for GUI mode.

Would something like this work? unsure.gif

jaclaz

ilko_t
@jaclaz

Thanks, that's very good idea.
Using tag file could be tricky- I can't think of any file in root, which gets renamed or deleted after install is completed. If it's in a folder, then may be yes, but what about people changing their windows or program files folders...

May this is a solution, even though we are getting into too many submenus:
menu.lst:
CODE
title Windows Install
configfile /windows.lst
savedefault


windows.lst:
CODE
default /windefault

title Text mode Windows XP
chainloader ....
savedafault 1

title GUI mode Windows XP
chainloader /ntldr
savedefault

title Text mode Windows 2003
chainloader ....
savedafault 1

title GUI mode Windows 2003
chainloader /ntldr
savedefault

All Text mode entries will make default the second entry, even though it's name is for XP, but it loads the same NTLDR/BOOT.INI.
Then the second entry will open BOOT.INI entries, which makes one more menu. I will try to put all that and see how it feels when using it.

Raboo
I agree with ilko_t, keep it simple.
All I want to do is able to install my nlited + driverpacks Windows XP from a USB Stick exactly as I would from a CD/DVD drive with no changes or as little changes as possible. No extra options or such..

Nice work ilko_t and everyone who contributed to and inspired this project.. Keep up the good work.

/Raboo
Raboo
I'm stuck
I managed to create the a bootable USB-stick with windows XP and BartPE.
I'm using my friends asus eee.
I get into the grub4dos menu and select the first line... it did not work, it simply reloads the grub4dos menu.
The second line, part 2 of windows setup simply won't work without the first part, it says no OS basically when I try it.
The third line, BartPE worked...

Any ideas whats wrong and or how I can be more verbose?

/Raboo
ilko_t
Can you attach your log file:
QUOTE (ilko_t)
- detailed log file is created in the folder, where program is executed from. Use it for troubleshooting. Upon next execution if log file is found, it's compressed in MS cab format, removed to BACKUPS folder and renamed with current DATE/TIME stamp.


as well as screenshot of contents or result of dir X: of USB stick root directory, and contents of menu.lst again in USB root.
Did you run the program multiple times or everything was done in one go?
Raboo
I've tried several times, with only XP, with HP format util, PEtoUSB util, ie fat32, NTFS & fat16..
With XP, BartPE, gparted...

But when i try to select "First part of Windows XP Professional setup from partition 0", it prints out:
Filesystem type is fat, partition typ 0xc
and goes back to GRUB4DOS

I've attached the log file.

Here is the content of menu.lst without the comments:
CODE
color black/cyan yellow/cyan
timeout 30
default /default

title First part of Windows XP Professional setup from partition 0
root (hd0,0)
chainloader (hd0,0)/$WIN_NT$.~BT/SETUPLDR.BIN

title Second part of XP Professional setup+Start it first time from part 0
root (hd0,0)
chainloader (hd0,0)/ntldr

title Start BartPE/WinBuilder from partition 0
root (hd0,0)
chainloader /minint/setupldr.bin


Here is the content of the USB-stick:
CODE
Volume in drive K has no label.
Volume Serial Number is 62E8-2568

Directory of K:\

2008-05-07  00:45           188 049 grldr
2008-08-05  18:07             2 447 menu.lst
2007-10-15  23:18             2 048 default
2008-08-05  20:35               232 BOOT.INI
2008-04-14  00:02           250 560 NTLDR
2008-04-13  22:13            47 564 NTDETECT.COM
2008-06-02  03:08           482 043 TXTSETUP.SIF
2008-08-05  18:07    <DIR>          $WIN_NT$.~BT
2008-08-05  18:07    <DIR>          $WIN_NT$.~LS
2001-09-28  14:00             4 952 BOOTFONT.BIN
2008-08-05  19:50    <DIR>          OEM
2008-08-05  19:54    <DIR>          minint
2008-08-05  20:21    <DIR>          programs
               8 File(s)        977 895 bytes
               5 Dir(s)     863 223 808 bytes free


/Raboo
ilko_t
For some reason program fails to create the folder and copy from D:\Private\Projekt\USB\WinSetupFromUSB\TEMP\ where ~BT files are placed temporarily.
What windows are you using? Do you have rights to write in this folder?
Are you using limited account?
Is the folder TEMP created and only copy to it fails?
Can you try to install the program in let's say D:\WinSetupFromUSB and see if the long path is the problem?

To save time and write cycles to the USB stick you may use COPY BOOT FILES ONLY option and eventually QEMU option to test until the problem is fixed.

Raboo
QUOTE (ilko_t @ Aug 6 2008, 02:15 AM) *
What windows are you using? Do you have rights to write in this folder?
Are you using limited account?
Is the folder TEMP created and only copy to it fails?
Can you try to install the program in let's say D:\WinSetupFromUSB and see if the long path is the problem?

Vista x64
Yes, I have rights
Administrator privilege account
Yeah TEMP is created
Tried from D:\WinSetupFromUSB, did not help, same error messages.
Raboo
Ok I manually copied & extracted all files that failed to copy using WinSetupFromUSB. And the TXT setup starts but I run into another problem now.. while loading drivers/controllers when it reaches Silicon image SATA something... SI3132B4.sys
It says roughly translated:
CODE
Not enough memory for SI3132B4.sys.
Press any key to continue.


And when I do that it says
CODE
Installation Failed. Press any key to reboot.


I don't think the whole 1 gb of ram would be full with drivers.. :S

And somehow it worked with USB MultiBoot 10.

The question is, is it the memory or something else?
Did I do something wrong while i copied the missing files?
The $WIN_NT$.~BT is 24mb so I don't really think that the drivers takes 1 gb of ram....
wimb
The parsing of dosnet.inf fails. The double quotes are the problem.
Try to copy first complete XP Source from CD/DVD to Folder on Harddisk e.g. F:\XPR3
Then run WinSetupFromUSB again.

QUOTE
2008/08/05 18:07:25- ERROR!!!----F:"\I386"\ntdetect.com could not be copied to D:\Private\Projekt\USB\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
ilko_t
blushing.gif
Thanks Wimb, I should have seen that, guess jet lag is killing me more than I realize.

It's an AutoIt issue with x64 or Vista, under XP i386 using DVD/CD as source does not fail in that part, I took care of that while coding. Just tested it again under XP with Windows files in CD:
CODE
...
2008/08/06 01:27:39- DOSNET.INF parsed, 125 files for ~BT folder
2008/08/06 01:27:39- D:\I386\disk1---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\disk101
2008/08/06 01:27:39- D:\I386\ntdetect.com---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
2008/08/06 01:27:40- D:\I386\ntkrnlmp.ex_ ---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
2008/08/06 01:27:40- D:\I386\setupldr.bin---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
2008/08/06 01:27:40- D:\I386\txtsetup.sif---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
2008/08/06 01:27:40- D:\I386\biosinfo.inf---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
2008/08/06 01:27:40- D:\I386\disk1---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\disk102
2008/08/06 01:27:40- D:\I386\hal.dl_ ---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
2008/08/06 01:27:40- D:\I386\halacpi.dl_ ---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
2008/08/06 01:27:40- D:\I386\halapic.dl_ ---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
2008/08/06 01:27:41- D:\I386\halaacpi.dl_ ---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
2008/08/06 01:27:41- D:\I386\drvmain.sdb---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
2008/08/06 01:27:41- D:\I386\setupreg.hiv---> C:\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
....
At the same time I tested a while ago the program under XP x64 with source on the hard disk and that worked fine.
Quites are not needed in AutoIt for file paths and are not added in the script anywhere, I am curious where they came from.
May have to compile separate version for x64 when I get back home, will investigate further.

Thanks for the accurate reports Raboo, it's pleasure responding to such.
Raboo
I copied the XP CD to D:\

It didn't help much... still get the same errors

I've attached the log files
Raboo
I tried to do the same thing on a windows XP 32bit in vmware, i still get the same errors... maybe it's my WindowsXP that is messed up
Raboo
I've found the problem, the problem is in my DOSNET.INF
CODE
[Directories]
d1 = "\I386"
d2 = "\cmpnents\tabletpc\I386"
d3 = "\cmpnents\mediactr\I386"


It should be
CODE
[Directories]
d1 = \I386
d2 = \cmpnents\tabletpc\I386
d3 = \cmpnents\mediactr\I386
ilko_t
Please test the attached version. Extract the file in WinSetupFromUSB folder and launch it.

http://www.datafilehost.com/download-2c3b0317.html

Yep, the problem must be there, I haven't seen quotes in that section of DOSNET.INF, and included removal if present anyway.
Raboo
The new version mostly works except for 2 important files:
CODE
2008/08/06 22:56:20- ERROR!!!----F:\I386\ntdll.dll could not be copied to D:\Private\Projekt\USB\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\"system32\ntdll.dll"
2008/08/06 22:56:20- ERROR!!!----F:\I386\usetup.exe could not be copied to D:\Private\Projekt\USB\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\"system32\smss.exe"


and it's from this part of DOSNET.INF
CODE
[FloppyFiles.3]
d1,disk1,disk104
d1,ntdll.dll,"system32\ntdll.dll"
d1,usetup.exe,"system32\smss.exe"

And again this works if I remove the quotation marks, ex. d1,ntdll.dll,system32\ntdll.dll

And btw the qutation marks is something nlite have added since my original windows source doesn't have them.
ilko_t
Heh, quotes were not expected there too smile.gif
Here is a version, which should take care of them.
http://www.datafilehost.com/download-4bf62239.html

BTW what version of nLite is that? It rather seems like nLite bug, I wonder if winnt32.exe would accept that syntax.
Raboo
QUOTE (ilko_t @ Aug 7 2008, 12:13 AM) *
BTW what version of nLite is that? It rather seems like nLite bug, I wonder if winnt32.exe would accept that syntax.

1.4.5 Final I think.

btw this latest one fixed the quotation marks issues but introduced a new error:
CODE
2008/08/07 03:29:51- ERROR!!!----F:\I386\Bootfont.bin could not be copied to D:\Private\Projekt\USB\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
ilko_t
QUOTE (Raboo @ Aug 6 2008, 06:35 PM) *
btw this latest one fixed the quotation marks issues but introduced a new error:
CODE
2008/08/07 03:29:51- ERROR!!!----F:\I386\Bootfont.bin could not be copied to D:\Private\Projekt\USB\WinSetupFromUSB\TEMP\$WIN_NT$.~BT\
Good smile.gif
You can safely ignore that error if bootfont.bin doesn't exist in \i386.
Did you perform installation, any issues there?
Raboo
QUOTE (ilko_t @ Aug 7 2008, 09:44 AM) *
Did you perform installation, any issues there?

I actually installed Windows with the old version, I edited the DOSNET.INF first of course..
But I tested the TXTsetup with this new one (with the old DOSNET.INF) and it works.
Raboo
btw while we are at it I have a question regarding nlite+USB Sticks.
nlite has a feature "RunOnce" to run commands after first install.
And it usually gets it's "Source Drive info" from the registry and it tells the CD/DVD drive letter from where the installation CD is.
CODE
for /f "tokens=3" %%i IN ('reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup /v "SourcePath" ^| findstr "REG_SZ"') do set SOURCE=%%i

But the SourcePath is set to A:\ when using USB-stick instead of a CD/DVD.

Is there any way of determining the SourcePath of the USB-stick?


And another thing i noticed that when booting GRUB4DOS "First part of Windows XP Professional setup from partition 0" is the set to default.
I just think that it would be better to have "Second part of XP Professional setup+Start it first time from part 0" as the default to autoboot after 30 seconds.
The reason is if like you are about to start a new installation it's most likely you are monitoring the screen to start the setup and then you can manually select "First part". And then you start the install and format the C: drive or whatever.. And after that it's mostly unattended I think. It copies a bunch of files and then it reboots. After reboot it would be good if GRUB4DOS runs the second part without user intervention after 30 seconds. That way you don't have to monitor your installation. Of course I know this can be done by setting "default 1" in menu.lst. But I thought perhaps this can be changed in your next version?
ilko_t
This is part of Binifix4.cmd, which is launched at GUIRunOnce, you may include your stuff inside or use the code.
Mind you- when multiple windows sources are on the USB stick, tagfile is different- WIN_00.BT, WIN_01.BT etc. etc. You may use your own tag file.

CODE
SET USBDRIVE=
SET TAGFILE=\WIN_NT.BT

FOR %%h IN (C D M N O P Q R S T U V W X Y) DO IF EXIST "%%h:%TAGFILE%" SET USBDRIVE=%%h:

if "%USBDRIVE%" == "" (
   FOR %%h IN (E F G H I J K L) DO IF EXIST "%%h:%TAGFILE%" SET USBDRIVE=%%h:
)


menu.lst will be fixed in next version, by the end of september when I will have spare time- have a look at the posts at bottom of first page and firsts on second page of this thread- they are all about menu.lst and the default entry.

edit: similar part for finding USB drive you will find in ren_fold.cmd, launched from SetupParams in winnt.sif.

edit2: It would be good idea ren_fold.cmd or binifix4.cmd to set the found drive letter in

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup SourcePath

Need to investigate when it is created, and will include it in the next version, thanks.
edie209
I have been following this project and decided to give it a go, but I have run into a problem.

The install to Flash Drive seems to work fine I have opted to have XP, BartPE, and Vista. XP boots and starts to install but blue screens on "Starting Windows" (text section) the error is

CODE
Stop 0x0000007b (0xf7c80524, 0x00000034, 0x00000000, 0x00000000)


Vista works fine I have yet to try BartPE

The PC is a Dell 755 with sata hard drive
jaclaz
QUOTE (edie209 @ Aug 7 2008, 07:36 PM) *
The PC is a Dell 755 with sata hard drive


And you have integrated the specific sata drivers, right? unsure.gif

Can you try again setting in BIOS "ATA or IDE" compatibility mode?

jaclaz
cdob
QUOTE (edie209 @ Aug 7 2008, 12:36 PM) *
The PC is a Dell 755 with sata hard drive
That's a well known troublemaker.

Use a edited ntdetect.com http://www.msfn.org/board/-t112630.html&am...st&p=738009
edie209
Ok I have done that and it works but install is really slow Usb 2.0 flash drive is there anything known to speed things up ?
jaclaz
QUOTE (edie209 @ Aug 8 2008, 01:23 PM) *
Ok I have done that and it works but install is really slow Usb 2.0 flash drive is there anything known to speed things up ?


Maybe that Dell has USB 2.0 ports but only boots at 1.1 speed. unsure.gif

For the moment no solution, something is in the works, but nothing yet functional.

jaclaz
ilko_t
QUOTE (edie209 @ Aug 8 2008, 04:23 AM) *
Ok I have done that and it works but install is really slow Usb 2.0 flash drive is there anything known to speed things up ?

Which part goes slow? Loading drivers during Text mode only or loading drivers AND copying files at end of Text mode?
If it's first- your BIOS does boot in USB 1.1 speed, after loading drivers it should be USB 2.0.
If second- try formatting stick in NTFS/FAT32 or FAT16 if it's 2GB or less and BIOS supports boot from such, matter of experimenting.
edie209
I have been playing around and I tried formating in NTFS the results are amazing I have gone from nearly 2 hours for the 1st section of the install to about 4 mins.

All is not well though on part3 of the install I get an error

CODE
Windows could not start because the following file was missing or currupt
<Windows Root>\system32\hal.dll
Please reinstall a copy of the above file


So I am going to try and find out why I get this message, but if anyone knows why please tell me
sunray73
So I was able to get BartPE to load up but as far as any of many linux dist.. nada... I get the following error. I'm running a 4GB formatted FAT32.


-----------------------------------------------------------------
Booting 'Start SysLinux bootsector from partition 0'

Filesystem type is fat, partition type 0cx

SYSLINUX 3.64 2008-04-10 EBIOS Copyright © 1994-2008 H. Peter Anvin
could not find kernal image: linux
boot:
------------------------------------------------------------------

sunray73
Well I tried with a 2GB Fash drive FAT16 and same error... Please help!
Google Internet Forums Unattended CD/DVD Guide
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.