Jump to content

Install XP from a ISO file


cdob

Recommended Posts

Hello!

Has everyone tryed to install the way described here with winnt.sif inside?

If i put winnt.sif in i386, just after format, when it starts to copy files, i get copy error for all files in winvblock.ima.

Without winnt.sif, everything is ok.

Any ideas?

Link to comment
Share on other sites


  • 1 month later...

OemPreinstall=Yes in Unattended section of winnt.sif was the problem.

Set it to No or delete the entry.

Thank you for this topic! :thumbup

And thank you for this hint. :thumbup You just solved the problem I had with one of my ISO installation.

Link to comment
Share on other sites

Little late to the game. XP only has two years left which in a way is kinda still a long time. I have been installing XP one way that I like from DVD for years until I realized how much we spend on DVD every year, anyway I have been trying all the old (new methods to me) methods to install XP. Winsetupfromusb which is great(my personal favorite), loading ISO into ram which works but not so good on low ram machines. I have a method that I worked out with Firadisk that works perfect even on low ram machines and only requires booting to USB once (my second favorite) so I though I would give this method a try. I am losing the WinVBlock driver at GUI and I know this is covered allot on here but let me tell you what I got

Using XP Home as example

XP Home SP3....updates slipstream with RyanVM tool

DriverPacks...all the latest

Using Winnt.sif

I added this to my presetup.cmd as described by, cdob

:DPsFound

start /b "Open handle to virtual CD-ROM drive." pushd "%CDDRIVE%"

and I am using what I assume to be the newest WinVBlock from ilko_t post here

This is my menu.lst (test purpose only)

title XP SP3 Home install 
find --set-root /laddsbootusb.tag
map --unmap=0:0xff
map --unhook
map --mem /XP/Floppy/winvblk.ima (fd0)
map --mem /XP/Floppy/winvblk.ima (fd1)
map /XP/ISO/HOME.ISO (0xFF)
pause
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
map --hook
chainloader (0xFF)/I386/SETUPLDR.BIN

Everything seems to load fine in TextSetup Mode, if I hit f6, WinVBlock is there in the choices(I just hit f6 the one time to make sure my menu.lst mapped the ima file) I get pass the normal BSOD and I am able to format and copy files...computer reboots and DriverPacks start and when DP is done...get the error about the Path and can't find CD drive

The editing of the presetup.cmd seems to be the trick for, wimb

I am not booting to USB but once because I thought the presetup.cmd trick would eliminate the second part of install as listed below?

title 2 Continue Windows XP setup
map /winvblock.IMA (fd0)
map /winvblock.ima (fd1)
map /Inst/XP_RAM.ISO (0xff)
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
map --hook
chainloader (hd0)+1

Edited by laddanator
Link to comment
Share on other sites

Winsetupfromusb which is great
I like this too.
loading ISO into ram which works but not so good on low ram machines.
Did you tried the sorted ISO file? Haven't used this in conjunction with RyanVM updates.
I am losing the WinVBlock driver at GUI
Technically you don't loose the WinVBlock driver.

Underling USB connection is installed. The existing USB connection is lost and a new one builded.

This part kills connection to WinVBlock driver.

I am not booting to USB but once because I thought the presetup.cmd trick would eliminate the second part of install as listed below?
No, second USB boot is required still.
Link to comment
Share on other sites

Did you tried the sorted ISO file? Haven't used this in conjunction with RyanVM updates.

Have not tried this but I will

No, second USB boot is required still.

I think I will stick with the Firadisk method (Nothing against WinVBlock) as a second choice and winsetupfromusb as the first choice. I took stuff from 4 different sites and combined them to make my monster so to speak( cdob, used your XP_INST.IMA with some mods) . I have been meaning to post my stuff on reboot and still plan to do so by the weekend. I have developed a work around without having to use a step 2 on XP installs with Firadisk. The below is not needed anymore

title 2 Continue Windows XP setup - firadisk.img /XP.iso
map --mem (md)0x800+4 (99)
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/XP.iso;\n\0
chainloader (hd0)+1

I am sure this is not the first work around but my methods works so far so good.

Edited by laddanator
Link to comment
Share on other sites

i am not sure how you will eliminate the 2nd part (GUI mode) as a whole ? it means every file will be copied to the target partition in txt mode? and user will simply boot from internal hdd second time?

will you please detail your mode you made with xp_inst.ima ?

thanks.

@ cdob

so your final say is , firadisk is more favourite then winvblock , when we are talking about Without RAMDISK iso install ?

p.s , on second part ,when user boots from internal hdd ( in cases when he was originaly booted from usb) , he gets HAL.DLL error,

and normal mapping does not work on some hardware .

i.e

checkrange 0x80 read 0x8280 && map (hd0) (hd1)

checkrange 0x80 read 0x8280 && map (hd1) (hd0)

what should be the failsafe entry , that we should use in 2nd part ?

because in boot,.ini , the rdisk was written as (1) in place of (0) originally .

Link to comment
Share on other sites

i am not sure how you will eliminate the 2nd part (GUI mode) as a whole ? it means every file will be copied to the target partition in txt mode? and user will simply boot from internal hdd second time?

No..XP still needs the GUI part to finish but what I am saying is after the first reboot (text setup) you do not have to boot back to USB and GUI mode is not eliminated. There is still a GUI mode. You can boot straight to the HD and using the method below, the install will continue. The USB stick or drive must remain in so install can finish but you can boot straight to HD after the first part from USB. I only eliminated the need to boot to USB for the second time to load the second Firadisk command... write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/XP/HOME.ISO;\n\0

so your final say is , firadisk is more favourite then winvblock , when we are talking about Without RAMDISK iso install ?

I think both drivers, WinVBlock and Firadisk are great. I personally have had better luck with Firadisk and yes for this mehtod, I say Firadisk is the better choice as WinVBlock maybe on other stuff.

p.s , on second part ,when user boots from internal hdd ( in cases when he was originaly booted from usb) , he gets HAL.DLL error,

and normal mapping does not work on some hardware .

I have tested this method on 28 plus machines and have booted straight to the HD drive after first reboot from USB and never had this issue.

Posted this on reboot but I will repost (copy paste) my method here

Ok, here we go. I started this topic because I was trying to turn a two boot to USB process to install XP from ISO into a One boot to USB if need be and through some helpful post I have managed to do so. Also didn't want to load the whole ISO to ram for small ram machines

This is what I started with in my menu.lst

iftitle [find --set-root --devices=h /laddsbootusb.tag && call set USBRoot=%@root^%] XP Home Setup Part 1 from %USBRoot%\nDec 11
password --md5 $1$A$hzYlFap3SLNNQ/tA7c3.S.
find --set-root --devices=h /laddsbootusb.tag
map --mem (md)0x800+4 (99)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
map /XP/HOME.ISO (222)
map /XP/firadisk.img (fd0)
map /XP/firadisk.img (fd1)
map --harddrives=1
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/XP/HOME.ISO;floppy,vmem=find:/XP/firadisk.img;\n\0
rootnoverify (222)
chainloader

and you had to follow a reboot to USB for part two (didn't like this part)

iftitle [find --set-root --devices=h /laddsbootusb.tag && call set USBRoot=%@root^%] XP Home Setup Part 2 from %USBRoot%\nDec 11
password --md5 $1$A$hzYlFap3SLNNQ/tA7c3.S.
find --set-root --devices=h /laddsbootusb.tag
map --mem (md)0x800+4 (99)
# map (hd1) (hd0)
# map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/XP/HOME.ISO;\n\0
root (hd0,0)
chainloader /ntldr
chainloader (hd0)+1

well not anymore. I needed a one boot process because of time and I wanted to eliminate confusion for my other techs without having to make sure USB was booted a second time or set all the g4d defaults to boot the second choice and so on. I looked at all links that was available to me and I put them all together to make one project.

First I want to say winsetupfromusb (Thanks ilko_t) is my favorite and the easiest in my opinion and can be found here

I just wanted a backup option and this method I came up with using Firadisk is the second choice for me.

First I am going to use XP Home as my example but works for Pro and MCE

Second, you DO NOT have to change Paths or ISO names from the default ones in cdob, XP_INST.IMA or setup.cmd. Just setup the root of your USB and folder names and ISO names as listed on the post at MSFN from the link at number 2 below. I like to use certain ISO names and folders becasue it keeps the confussion down for me as I have three job titles at my company and things get crazy sometimes.

1. I am using a SP3 Disc with all DP and Dec updates slipstream with RyanVM update tool

2. I download the XP_INST.IMA from here (Thanks cdob)

3.Changed the name of the XP_INST.IMA to HOME.IMA and mounted the IMA with imdisk http://www.ltr-data.se/opencode.html/

4.Changed the name of the path and ISO file in the ISOimage.ini and it looks like this \XP\ISO\HOME.ISO

5.Changed everything in the setup/setup.cmd to match the paths (not needed if path is set in the ISOimage.ini) but just in case

set reassign=
if not exist c:\ set reassign=true
if exist c:\XP\ISO\HOME.ISO set reassign=true
if exist c:\XP\2003*.ISO set reassign=true
if defined reassign if /I %SystemDrive%.==C:. set reassign=

and here

SET ISOfile=
set ISO_file_search=\XP\ISO\HOME.ISO
if exist ISOimage.ini for /f "eol=;" %%a in (ISOimage.ini) do if not %%a.==. set ISO_file_search=%%

and here

rem ISO file added to another ISO image
if not exist V:\I386\TXTSETUP.SIF if exist V:\XP\ISO\HOME.ISO (
(echo. &echo mount ISOfile V:\XP\ISO\HOME.ISO) >>presetup.log
set device_ImDisk=\device\ImDisk1\
imdisk.exe -a -t file -f V:\XP\ISO\HOME.ISO -o ro -m W:
echo.>>presetup.log
dir W:\ >> presetup.log
echo.>>presetup.log

6.Updated the Firadisk driver from here that's in the mounted IMA in a folder called firadisk http://reboot.pro/8804/

7.Updated the imdisk drivers from the mounted IMA in a folder called imdisk file http://www.ltr-data.se/opencode.html/

8.Saved the changed mounted IMA file

9.Created folders on my g4d USB Stick /XP/ISO and /XP/Floppy (using the new g4d 12-30-11) http://code.google.c.../downloads/list

10.Copied my HOME.IMA (also created PRO.IMA and MCE2005.IMA the same way) to /XP/Floppy and my XP ISO to /XP/ISO

11. Created a new folder in my BOOTWS folder (winsetupfromusb to check HD number) called FULLISO and copied my modded ?.lst file into. http://reboot.pro/12449/

This is what my 4.lst in my /BOOTWS/FULLISO folder looks like (pretty much 2 thorugh 8 will be the same execpt the checkrange numbers and the HD numbers..I am using 4.lst as example because my PC has 3 internal HD)

set List4=4.lst
echo %List4%
echo %USBRoot%
echo %Offset%
echo %XPISO%
echo %Image%
pause --wait=10 Making Sure Paths Exist...Hit Enter Key At AnyTime
map --mem (md)0x800+4 (99)
checkrange 0x80 read 0x8280 && map (hd0) (hd3)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
checkrange 0x80 read 0x8280 && map (hd2) (hd1)
checkrange 0x80 read 0x8280 && map (hd3) (hd2)
map %USBRoot%/XP/Floppy/%Image% (fd0)
map %USBRoot%/XP/Floppy/%Image% (fd1)
map --e820cycles=3
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/XP/ISO/%XPISO%;floppy,vmem=find:/XP/Floppy/%Image%;\n\0
rootnoverify (222)
chainloader (222)/I386/SETUPLDR.BIN

This part may or may not be needed and can be =3 or =0

map --e820cycles=3

Use in my testing to eliminate in case of the black cursor of death

If you notice I set the same variables for the ISO name and IMAGE name so my Home, Pro, and MCE2005 could all use just one /BOOTWS/FULLISO folder and this is my working xpiso.lst which I load from my menu.lst

##USB XP Menu 2
if exist %USBRoot%/Menu/Splash/xp.xpm.gz set BG=%USBRoot%/Menu/Splash/xpiso.xpm.gz
splashimage %BG%


title !USE PARTITION WIZARD FIRST! THIS IS THE FULL ISO INSTALL. SLOWER
root()

title
root

iftitle [find --set-root --devices=h /laddsbootusb.tag && call set USBRoot=%@root^%] XP Home SP3 Install From ISO From %USBRoot%\nDec 11 With Most Drivers\nThis Is A Little Slower Method
password --md5 $1$A$hzYlFap3SLNNQ/tA7c3.S.
find --set-root --devices=h /laddsbootusb.tag
clear
set /p /u Answer=ARE YOU SURE YOU WANT TO INSTALL XP HOME SP3...Y or N :
if /i "%Answer%"=="n" echo Back To Main Menu! && configfile %USBRoot%/Menu/xpiso.lst
set Offset=%USBRoot%/BOOTWS/FULLISO
set XPISO=HOME.ISO
set Image=HOME.IMA
clear
if not exist %USBRoot%/XP/ISO/HOME.ISO echo Can Not Find XP Home. Please Contact Superman && pause --wait=10 Going Back To Main Menu && configfile %USBRoot%/menu.lst
clear
echo Installing XP HOME From %USBRoot%/XP/ISO/%XPISO%
echo Loading Files From %Offset%
clear
map --unmap=0:0xff
map --unhook
map %USBRoot%/XP/ISO/%XPISO% (222)
clear
#checkrange 0x00,0x01 read 0x8280 && configfile %Offset%/fd.lst
checkrange 8 calc *0x475 & 222 && configfile %Offset%/8.lst
checkrange 7 calc *0x475 & 222 && configfile %Offset%/7.lst
checkrange 6 calc *0x475 & 222 && configfile %Offset%/6.lst
checkrange 5 calc *0x475 & 222 && configfile %Offset%/5.lst
checkrange 4 calc *0x475 & 222 && configfile %Offset%/4.lst
checkrange 3 calc *0x475 & 222 && configfile %Offset%/3.lst
checkrange 2 calc *0x475 & 222 && configfile %Offset%/2.lst
#checkrange 1 calc *0x475 & 222 && configfile %Offset%/1.lst
boot

title
root


iftitle [find --set-root --devices=h /laddsbootusb.tag && call set USBRoot=%@root^%] XP MCE SP3 Install From ISO From %USBRoot%\nDec 11 With Most Drivers\nThis Is A Little Slower Method
password --md5 $1$A$hzYlFap3SLNNQ/tA7c3.S.
find --set-root --devices=h /laddsbootusb.tag
clear
set /p /u Answer=ARE YOU SURE YOU WANT TO INSTALL XP MCE SP3...Y or N :
if /i "%Answer%"=="n" echo Back To Main Menu! && configfile %USBRoot%/Menu/xpiso.lst
set Offset=%USBRoot%/BOOTWS/FULLISO
set XPISO=MCE2005.ISO
set Image=MCE2005.IMA
clear
if not exist %USBRoot%/XP/ISO/MCE2005.ISO echo Can Not Find XP MCE2005. Please Contact Superman && pause --wait=10 Going Back To Main Menu && configfile %USBRoot%/menu.lst
clear
echo Installing XP MCE2005 From %USBRoot%/XP/ISO/%XPISO%
echo Loading Files From %Offset%
clear
map --unmap=0:0xff
map --unhook
map %USBRoot%/XP/ISO/%XPISO% (222)
clear
#checkrange 0x00,0x01 read 0x8280 && configfile %Offset%/fd.lst
checkrange 8 calc *0x475 & 222 && configfile %Offset%/8.lst
checkrange 7 calc *0x475 & 222 && configfile %Offset%/7.lst
checkrange 6 calc *0x475 & 222 && configfile %Offset%/6.lst
checkrange 5 calc *0x475 & 222 && configfile %Offset%/5.lst
checkrange 4 calc *0x475 & 222 && configfile %Offset%/4.lst
checkrange 3 calc *0x475 & 222 && configfile %Offset%/3.lst
checkrange 2 calc *0x475 & 222 && configfile %Offset%/2.lst
#checkrange 1 calc *0x475 & 222 && configfile %Offset%/1.lst
boot

title
root


iftitle [find --set-root --devices=h /laddsbootusb.tag && call set USBRoot=%@root^%] XP PRO SP3 Install From ISO From %USBRoot%\nDec 11 With Most Drivers\nThis Is A Little Slower Method
password --md5 $1$A$hzYlFap3SLNNQ/tA7c3.S.
find --set-root --devices=h /laddsbootusb.tag
clear
set /p /u Answer=ARE YOU SURE YOU WANT TO INSTALL XP PRO SP3...Y or N :
if /i "%Answer%"=="n" echo Back To Main Menu! && configfile %USBRoot%/Menu/xpiso.lst
set Offset=%USBRoot%/BOOTWS/FULLISO
set XPISO=PRO.ISO
set Image=PRO.IMA
clear
if not exist %USBRoot%/XP/ISO/PRO.ISO echo Can Not Find XP PRO. Please Contact Superman && pause --wait=10 Going Back To Main Menu && configfile %USBRoot%/menu.lst
clear
echo Installing XP PRO From %USBRoot%/XP/ISO/%XPISO%
echo Loading Files From %Offset%
clear
map --unmap=0:0xff
map --unhook
map %USBRoot%/XP/ISO/%XPISO% (222)
clear
#checkrange 0x00,0x01 read 0x8280 && configfile %Offset%/fd.lst
checkrange 8 calc *0x475 & 222 && configfile %Offset%/8.lst
checkrange 7 calc *0x475 & 222 && configfile %Offset%/7.lst
checkrange 6 calc *0x475 & 222 && configfile %Offset%/6.lst
checkrange 5 calc *0x475 & 222 && configfile %Offset%/5.lst
checkrange 4 calc *0x475 & 222 && configfile %Offset%/4.lst
checkrange 3 calc *0x475 & 222 && configfile %Offset%/3.lst
checkrange 2 calc *0x475 & 222 && configfile %Offset%/2.lst
#checkrange 1 calc *0x475 & 222 && configfile %Offset%/1.lst
boot


title
root

iftitle [find --set-root --devices=h /laddsbootusb.tag && call set USBRoot=%@root^%] XP PRO CORP SP3 Install From ISO From %USBRoot%\nDec 11 With Most Drivers\nThis Is A Little Slower Method
password --md5 $1$0$NtEZSDZZ3Hjh6lV5xYzmT/
find --set-root --devices=h /laddsbootusb.tag
clear
set /p /u Answer=ARE YOU SURE YOU WANT TO INSTALL XP HOME SP3...Y or N :
if /i "%Answer%"=="n" echo Back To Main Menu! && configfile %USBRoot%/Menu/xpiso.lst
set Offset=%USBRoot%/BOOTWS/PROCORP
set XPISO=PROCORP.ISO
set Image=PROCORP.IMA
clear
if not exist %USBRoot%/XP/ISO/PROCORP.ISO echo Can Not Find XP PRO CORP. Please Contact Superman && pause --wait=10 Going Back To Main Menu && configfile %USBRoot%/menu.lst
clear
echo Installing XP PRO From %USBRoot%/XP/ISO/%XPISO%
echo Loading Files From %Offset%
clear
map --unmap=0:0xff
map --unhook
map %USBRoot%/XP/ISO/%XPISO% (222)
clear
#checkrange 0x00,0x01 read 0x8280 && configfile %Offset%/fd.lst
checkrange 8 calc *0x475 & 222 && configfile %Offset%/8.lst
checkrange 7 calc *0x475 & 222 && configfile %Offset%/7.lst
checkrange 6 calc *0x475 & 222 && configfile %Offset%/6.lst
checkrange 5 calc *0x475 & 222 && configfile %Offset%/5.lst
checkrange 4 calc *0x475 & 222 && configfile %Offset%/4.lst
checkrange 3 calc *0x475 & 222 && configfile %Offset%/3.lst
checkrange 2 calc *0x475 & 222 && configfile %Offset%/2.lst
#checkrange 1 calc *0x475 & 222 && configfile %Offset%/1.lst
boot


title
root

iftitle [find --set-root --devices=h /laddsbootusb.tag && call set USBRoot=%@root^%] Back To Main Menu
find --set-root --devices=h /laddsbootusb.tag
clear
set Boot=%USBRoot%/grldr
if not exist %Boot% echo Can Not Find grldr on Root . Please Contact Superman! && pause --wait=10 Going Back To Main Menu...Hit Enter At AnyTime && configfile %USBRoot%/menu.lst
echo Loading grldr Menu From %Boot%
chainloader %Boot%

I have tested this on 3 machines plus. One that stood out was an old P3 machine with 128 ram. I install XP ISO using the method I am posting here with one boot from USB, installed slow but installed none the less. Tested on ranges of machines from P3 to Dual Core, memory ranging from 128mb to 4 gig and some machines had 1 internal hard drive and some had 4. All three versions install fine with this method.

I am also using winnt.sif for each version

;HOME
;
[Data]
AutoPartition="0"
MsDosInitiated="0"
UnattendedInstall ="Yes"
AutomaticUpdates="No"

[Unattended]
UnattendMode="FullUnattended"
OEMSkipEula ="YES"
WaitForReboot="No"
UnattendSwitch="Yes"
AutoActivate="No"
OemPreinstall="Yes"
DriverSigningPolicy="Ignore"
NonDriverSigningPolicy="Ignore"

[Display]
BitsPerPel=32
Xresolution=1024
Yresolution=768
AutoConfirm=1

[GuiUnattended]
DetachedProgram ="CMD.EXE"
Arguments="/Q /C FOR %I IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (IF EXIST %I:\WINSETUP\OEM\OEMAUTO.EXE (START %I:\WINSETUP\OEM\OEMAUTO.EXE) ELSE (FOR /D %J IN (%I:\*) DO (IF EXIST %J%\WINSETUP\OEM\OEMAUTO.EXE (START %J%\WINSETUP\OEM\OEMAUTO.EXE))))"
AdminPassword=*
EncryptedAdminPassword="NO"
OEMSkipRegional=1
TimeZone=35
OemSkipWelcome=1
AutoLogon="Yes"

[UserData]
ProductKey=
FullName="Owner"
OrgName="Home"
ComputerName=*

[TapiLocation]
CountryCode=1
AreaCode=434
Dialing="Tone"

[Identification]
JoinWorkgroup="WORKGROUP"

[Networking]
InstallDefaultComponents="Yes"

and a DriverPack presetup.cmd. If I am busy and I am installing XP from ISO this is very useful as I don't need to have USB set to boot in Bios and I can just boot my default HD boot command with a timeout if the computer does boot to USB and my unattended install is not broken. My default menu.lst

##USB Menu AIO
timeout 15
color white/blue
write 0x8274 0x2001

title Boot From Hard Drive (Windows Vista/7 or Xp)\nBoot Into Main OS Drive
checkrange 0x80 read 0x8280 && map () (hd1)
checkrange 0x80 read 0x8280 && map (hd1) ()
checkrange 0x80 read 0x8280 && map --hook
rootnoverify (hd0,0)
chainloader +1 || chainloader /ntldr

So now if you use this method, you can get rid of the second part install from your menu.lst as listed below

iftitle [find --set-root --devices=h /laddsbootusb.tag && call set USBRoot=%@root^%] XP Home Setup Part 2 from %USBRoot%\nDec 11
password --md5 $1$A$hzYlFap3SLNNQ/tA7c3.S.
find --set-root --devices=h /laddsbootusb.tag
map --mem (md)0x800+4 (99)
# map (hd1) (hd0)
# map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/XP/HOME.ISO;\n\0
root (hd0,0)
chainloader /ntldr
chainloader (hd0)+1

I have not got any errors about driver signing for Firadisk. USB Drive still has to be left in so install will finish but the key here is that a second USB boot IS NOT NEEDED.

Wanted to say thanks, cdob, ilko_t, WonKo the Sane and steve6375

Now you can use the ask, choose iso method in your menu.lst from here http://www.rmprepusb.tk/ #43

This way you would only have one XP Install menu entry and set your variable according to your %Answer%

steve6375 was workng on something to write to the ISOimage.ini on the fly to change the ISO name accordingly (Is this still being worked on?)

Have not tested this on 64bit XP as to I have been loading XP for 10 years and I have never loaded a 64bit version and I have never seen a customer with a 64bit version.

To sum it up. I use complex menu entries and the BOOTWS method because I work on a range of computers but most computers have 1 internal hard drive so I am going to give you a simple menu.lst example below. You don't need the first boot to HD entry, ( I use it as a out of the room or doing something when computer reboots and I ain't looking kinda thing and forgot the PC was set to boot to USB)

timeout 15
color white/blue
write 0x8274 0x2001

title Boot From Hard Drive (Windows Vista/7 or Xp)\nBoot Into Main OS Drive
checkrange 0x80 read 0x8280 && map () (hd1)
checkrange 0x80 read 0x8280 && map (hd1) ()
checkrange 0x80 read 0x8280 && map --hook
rootnoverify (hd0,0)
chainloader +1 || chainloader /ntldr

title
root

title XP Home Install From ISO With 1 USB Boot\nWorks With Low Ram also
find --set-root /whatereverhere
map --mem (md)0x800+4 (99)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
set XPISO=HOME.ISO
set Image=HOME.IMA
map /%XPISO% (222)
map /%Image% (fd0)
map /%Image% (fd1)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/%XPISO%;floppy,vmem=find:/%Image%;\n\0
rootnoverify (222)
chainloader (222)/I386/SETUPLDR.BIN

And there you have it :w00t:

UPDATE

To clear this up. Nothing special has to be done to the XP ISO or added to the XP ISO. You can use a plain XP or a modded XP. All the files required to make this happen goes on the USB Stick or Drive.

Also just realized links from one post doesn't copy and paste well to another website post. Will fix the MSFN links today.

Edited by laddanator
Link to comment
Share on other sites

Just so you know, the IF EXIST in winnt.sif may choke on some card controllers

Been lucky enough that the error using IF EXIST only happens on a live machine...get that can't find drive error, hit enter to continue. I have found a solution in the code below and has been error free so far on installs and live machines. I need to change that IF EXIST line in the winnt.sif to this

For %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z A B) do (dir %%I:\ 1>nul 2>nul && if /i exist "%%I:\whaterever" set USBDrive=%%I:)

Thanks for the links. Got some reading to do today. :thumbup

Link to comment
Share on other sites

so to sum it up , (i doubt if i am right , because all above details are giving me headache )

1- you only change few names according to your choice in cdob's file , and updated firadisk and imdisk . .

2- you used only this one entry only

title XP Home Install From ISO With 1 USB Boot\nWorks With Low Ram also

find --set-root /whatereverhere

map --mem (md)0x800+4 (99)

checkrange 0x80 read 0x8280 && map (hd1) (hd0)

checkrange 0x80 read 0x8280 && map (hd0) (hd1)

set XPISO=HOME.ISO

set Image=HOME.IMA

map /%XPISO% (222)

map /%Image% (fd0)

map /%Image% (fd1)

map --hook

write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/%XPISO%;floppy,vmem=find:/%Image%;\n\0

rootnoverify (222)

chainloader (222)/I386/SETUPLDR.BIN

what should be the 2nd entry *because above will only setup txtmode , yes ?

then what should be the second entry to the gui mode ?

moreover

set XPISO=HOME.ISO

can the HOME.ISO on any root ? (means even if it is in internal hdd ?, it will be searched like find set root of grub4dos ? )

should the tag file be in the same directory as HOME.ISO ?

moreover , does cdob's USB to USB still valid with this trick ? i guess all imdisk will do , is search the iso and mount it again for windows setup to use .

just like the win7 iso install trick ?

please attach your modded .IMA file

Link to comment
Share on other sites

I took stuff from 4 different sites and combined them to make my monster so to speak

Read more sites and combine another approach.

Dietmar explained USB boot basics in 2005 http://www.911cd.net/forums//index.php?showtopic=14181

http://winusb.de/download.html

Based on this there is a another approach by Emanuel http://web.archive.org/web/20100406060758/http://www.ngine.de/article/id/8

OS manufacturer confims basic USB boot settings in 2009 http://msdn.microsoft.com/en-us/library/ee428799.aspx

Don't you edit the ISO image anyway?

There is another approach: combine existing parts new:

use firadisk search feature and configure USB boot settings.

To boot once from USB:

Edit \i386\txtsetup.sif http://web.archive.org/web/20100406060758/http://www.ngine.de/article/id/8

First, move the following entries from [inputDevicesSupport.Load] to the [bootBusExtenders.Load] section , as shown here

[bootBusExtenders.Load]

pci = pci.sys

acpi = acpi.sys

isapnp = isapnp.sys

acpiec = acpiec.sys

ohci1394 = ohci1394.sys

usbehci = usbehci.sys

usbohci = usbohci.sys

usbuhci = usbuhci.sys

usbhub = usbhub.sys

usbstor = usbstor.sys

[inputDevicesSupport.Load]

usbehci = usbehci.sys

usbohci = usbohci.sys

usbuhci = usbuhci.sys

usbhub = usbhub.sys

usbccgp = usbccgp.sys

hidusb = hidusb.sys

serial = serial.sys

serenum = serenum.sys

usbstor = usbstor.sys

... now the same for [bootBusExtenders] and [inputDevicesSupport]

[bootBusExtenders]

pci = "PCI-Bustreiber",files.pci,pci

acpi = "ACPI Plug & Play-Bustreiber",files.acpi,acpi

isapnp = "ISA Plug & Play-Bustreiber",files.isapnp,isapnp

acpiec = "Integrierter ACPI-Controllertreiber",files.none,acpiec

ohci1394 = "IEEE-1394-Bus-OHCI-konformer Anschlusstreiber",files.ohci1394,ohci1394

usbehci = "Erweiterter Hostcontroller",files.usbehci,usbehci

usbohci = "Open Hostcontroller",files.usbohci,usbohci

usbuhci = "Universeller Hostcontroller",files.usbuhci,usbuhci

usbhub = "Standard-USB-Hubtreiber",files.usbhub,usbhub

usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor

No need to edit [inputDevicesSupport] section.

Given a file \images\winsetup.iso:

Edit \i386\hivesys.inf

[AddReg]

;search ISO image
HKLM,"SYSTEM\CurrentControlSet\Control\FiraDisk","StartOptions",0x0,"cdrom,vmem=find:\images\winsetup.iso"

;edit txtsetup.sif move USB controller, hub and storage to Boot Bus Extender
;and add USB CriticalDeviceDatabase settings
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#CC_0C0300",ClassGUID,0x00000000,{36FC9E60-C465-11CF-8056-444553540000}
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#CC_0C0300",Service,0x00000000,usbuhci
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#CC_0C0310",ClassGUID,0x00000000,{36FC9E60-C465-11CF-8056-444553540000}
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#CC_0C0310",Service,0x00000000,usbohci
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#CC_0C0320",ClassGUID,0x00000000,{36FC9E60-C465-11CF-8056-444553540000}
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#CC_0C0320",Service,0x00000000,usbehci

HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#CLASS_09",ClassGUID,0x00000000,{36FC9E60-C465-11CF-8056-444553540000}
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#CLASS_09",Service,0x00000000,usbhub
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#ROOT_HUB",ClassGUID,0x00000000,{36FC9E60-C465-11CF-8056-444553540000}
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#ROOT_HUB",Service,0x00000000,usbhub
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#ROOT_HUB20",ClassGUID,0x00000000,{36FC9E60-C465-11CF-8056-444553540000}
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#ROOT_HUB20",Service,0x00000000,usbhub

HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#CLASS_08",ClassGUID,0x00000000,{36FC9E60-C465-11CF-8056-444553540000}
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#CLASS_08",Service,0x00000000,usbstor

Adjust \images\winsetup.iso to your configuration.

menu.lst

title Setup Windows from ISO : Boot from ISO, with virtual CD+Floppy
map /images/winsetup.iso (222)
map /images/firadisk.img (fd0)
map /images/firadisk.img (fd1)
map --mem (md)0x800+4 (99)
checkrange 0x80 read 0x8280 && geometry (hd1) && map (hd0) (hd1)
checkrange 0x80 read 0x8280 && geometry (hd1) && map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/images/winsetup.iso;floppy,vmem=find:/images/firadisk.img;\n\0
chainloader (222)

Drawback: ISO images has to be edited.

Benefit: ISO images has to be edited. Next step would be include firadisk in ISO image.

so your final say is , firadisk is more favourite then winvblock , when we are talking about Without RAMDISK iso install ?

Well both are nice. One is nicer at given hardware, BIOS and requested approach. There is no better one.

on second part ,when user boots from internal hdd ( in cases when he was originaly booted from usb) , he gets HAL.DLL error,

and normal mapping does not work on some hardware .

Can you name some examples? How many internal and external disks does exists?

checkrange 0x80 read 0x8280 && map (hd0) (hd1)

checkrange 0x80 read 0x8280 && map (hd1) (hd0)

This assumes one USB drive and install to first internal hard disk.

first internal hard disk as for BIOS sort order at USB boot.

what should be the failsafe entry , that we should use in 2nd part ?
I've no experience. Ilko solved this more clearly.
Link to comment
Share on other sites

hi cdob

thanks for clearifying ,

on a system where it give problem at second boot (hal.dll error) , i had 1 internal hdd , 1 usb. ,.

what do you mean by > To boot once from USB: ?

is this for TXTMODE only ? moreover , what happens if user boot again for gui mode ? and i guess this is newer then your XP_INST.IMA's usb32 approach ?

moreover , i am specifically interested in making the SECOND MODE (GUI) with NO RAMDISK , but i have had failures so far with both winvblock , or Firadisk , both on vm and real machine.

your trick of using imdisk , in XP_INST,.IMA is more interesting , i ll try it tomorrow after getting back from office, it is 3.05 AM here.

i ll take your XP_INST.IMA 0.4 , but i will only use Direct Map for the iso .

and i guess it should execute setup.cmd and Mount the iso file again for the windows setup in gui mode .

p.s the interesting question what i am thinking is , WHAT is the difference between your SETUP.CMD's

imdisk.exe -a -t !ImDiskType! -f "%ISOfile%" -o ro -m V:

and

write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/images/winsetup.iso;floppy,vmem=find:/images/firadisk.img;\n\0

the firadisk one , for some strange reason does not work for me, i am using 2012-01-01 grub4dos version .

p.s i guess editing the iso , should only be when we need to install this iso to USB directly . for installing iso to Internal hdd, there should not be any editing involve in my humble view.

Edited by maanu
Link to comment
Share on other sites

on a system where it give problem at second boot (hal.dll error) , i had 1 internal hdd , 1 usb. ,.

Goto grub4dos command line: which devices exist?

what do you mean by > To boot once from USB: ?

is this for TXTMODE only ? moreover , what happens if user boot again for gui mode ?

Boot from internal hard disk for gui mode.

Set BIOS to boot from inernal hard disk always.

Press a hot key (could be ESC, F9, F11, F12) at boot to select a boot device. Next select XP install from USB device.

Machine continues at internal hard disk a next reboot.

and i guess this is newer then your XP_INST.IMA's usb32 approach ?

It's another approach. With less addional code.

i am specifically interested in making the SECOND MODE (GUI) with NO RAMDISK
XP_INST.IMA uses imdisk to mount ISO file.

New approach uses new firadisk feature to search and mount the ISO file. That's one driver for textmode and gui mode.

but i have had failures so far with both winvblock , or Firadisk , both on vm and real machine.

USB drivers has to lauch first, ISO file can be found next.

This works directly at a friendly BIOS.

And does require addional settings at a unfriendly BIOS. Hence the CriticalDeviceDatabase setttings.

i ll take your XP_INST.IMA 0.4 , but i will only use Direct Map for the iso .
Try to RAM load the floppy image and direct map for the iso.

You may write different ISO file name to floppy image. Read ISO RAM thread for examples..

]imdisk.exe -a -t !ImDiskType! -f "%ISOfile%" -o ro -m V:
This uses imdisk to mount the ISO file.
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/images/winsetup.iso;floppy,vmem=find:/images/firadisk.img;\n\0
That's a marker for firadisk driver. Firadisk does search files on its own and mount the found images.
the firadisk one , for some strange reason does not work for me, i am using 2012-01-01 grub4dos version .
Use current firadisk. And be aware: There has to be one /images/winsetup.iso at all drives. If there are several /images/winsetup.iso at differnt drives, you may get a BSOX 0x7b.
p.s i guess editing the iso , should only be when we need to install this iso to USB directly . for installing iso to Internal hdd, there should not be any editing involve in my humble view.
Well, it's a personal choice.

At some machines/BIOS setup dosn't detect floppy image at textmode: Driver load does work, but driver copy fails.

A full ISO file integrated solution would be nice in that cases.

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