Jump to content











Photo
* * * * * 5 votes

Easy2Boot Development Discussion

grub4dos multiboot multipass usb boot iso

  • Please log in to reply
1378 replies to this topic

#501 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 30 December 2013 - 12:46 AM

Thought so!

The next version of E2B will look for \sources\install.* instead of \sources\install.wim so you won't see the error message.

:good:



#502 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 30 December 2013 - 12:47 AM

Will check winhelper usb .....thankxs



#503 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 30 December 2013 - 08:31 AM

Hi

I added the autounattend.xml, unattend.xml, WINHELPER.USB, all 3 files to the 8gb helper (nonbootable) pendrive as suggested by Tutorial 72a. When I try to load WIndows 7, it reaches upto the Click to Install screen and than instead of giving me the options to choose which edition of Windows to install I get error message,

Windows could not parse or process unattend answer file [\autounattend.xml]. The answer file is invalid.

Please see the screenshot below.

20131230_133317.jpg

 

Did try also Tutorial 43 Addendum Technique of adding mysetup.cmd and winpeshl.ini to the boot.wim file and used the same code

 

title INSTALL WINDOWS 7 FROM AN ISO\n You can choose an ISO from the same folder that contains\n the file \\_ISO\\choose_an_iso
# find the _ISO folder by looking for a marker file
debug off
# fill (rd) with 0's , 0x82d0 is rd-base mem address, Fn24 is memset - fill memory  <addr> <string> <size>
map (md)0x300+200 (rd) > nul ;; read 0x82d0  > nul ;; call Fn.24  %@retval% 0x20  102400  > nul
find --set-root /_ISO/choose_an_iso
clear
echo
# list all files in the /_ISO folder so the user can see them
ls ()/_ISO/
echo
echo
# Ask user which iso they want (name is converted to uppercase as /u is specified)
set /p /u ask=Enter iso filename WITH NO .ISO EXTENSION (e.g. Win7Pro32 ) :
if "%ask%"=="" echo No iso file specified! && configfile /menu.lst
clear
# check if user entered a valid filename with no ISO extension!
ls /_ISO/%ask%.iso || echo Cannot find /_ISO/%ask%.iso !!! && pause --wait=3 && configfile (bd)/menu.lst
echo Loading /_ISO/%ask%.iso - please wait ...
#set root drive to USB stick
find --set-root /_ISO/e2b/firadisk/loadiso.cmd
map --mem (md)0x800+4 (99)
dd if=()/_ISO/e2b/firadisk/au.xml of=()/AutoUnattend.xml
dd if=(rd)+1 of=()/_ISO/e2b/firadisk/ISONAME.CMD
write ()/_ISO/e2b/firadisk/ISONAME.CMD SET MYISO=\\_iso\\%ask%.iso\r\n
find --set-root /_ISO/%ask%.iso
# run the grub4dos map command and specify the iso file we want to load
map /_ISO/%ask%.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
# Specify the same iso file for when firadisk runs in winpe
find --set-root /_ISO/e2b/firadisk/loadiso.cmd
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/_ISO/%ask%.iso;\n\0
chainloader (0xff)/BOOTMGR || chainloader (0xff)
clear

But the Loadiso.cmd windows console doesn't appear. Directly the Install Now windows appears and when one clicks the button, one gets the Browse CD drive driver message. :cheers:



#504 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 30 December 2013 - 10:27 AM

For the Winhelper.usb, did you boot from an E2B USB HDD? Make sure that winhelper.usb only exists on the 8gb helper USB drive

 

For the Tutorial 43, stuff, you cannot mix E2B with the files from Tutorial 43. In Tutorial 43, the folder structure is \FIRADISK\loadiso.cmd, in E2B the folder structure is \_ISO\e2b\firadisk\loadiso.cmd.

 

So the line in mysetup.cmd should be changed to

cmd /q /c  "FOR %%i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %%i:\FIRADISK\LOADISO.CMD  cmd /k %%i:\_ISO\e2b\FIRADISK\LOADISO.cmd"



#505 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 30 December 2013 - 11:51 AM

Hi

I used only the procedure from Tutorial 43, but infact I used the mysetup.cmd from E2B v1.19 wherein the folder structure is \_ISO\e2b\firadisk\loadiso.cmd

 

The line inside the mysetup.cmd is

cmd /q /c  "FOR %%i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %%i:\_ISO\E2B\FIRADISK\LOADISO.CMD  cmd /k %%i:\_ISO\E2B\FIRADISK\LOADISO.cmd"

This is the code which was present in the mysetup.cmd which I injected into the boot.wim file.

According to your post #504 it is written

 

cmd /q /c  "FOR %%i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %%i:\FIRADISK\LOADISO.CMD  cmd /k %%i:\_ISO\e2b\FIRADISK\LOADISO.cmd"

 SHould it be

IF EXIST %%i:\FIRADISK\LOADISO.CMD

or

IF EXIST %%i:\_ISO\E2B\FIRADISK\LOADISO.CMD

 

I tried with

cmd /q /c  "FOR %%i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %%i:\_ISO\E2B\FIRADISK\LOADISO.CMD  cmd /k %%i:\_ISO\E2B\FIRADISK\LOADISO.cmd"

but it failed. It gave this screenshot

20131230_164723.jpg

cheers



#506 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 30 December 2013 - 01:19 PM

Obviously the paths should match what you actually use.



#507 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 30 December 2013 - 02:01 PM

Any idea why I am getting that screenshot in my post #505.

 

I have extracted the contents of the Win7 iso to a folder, Mounted the boot.wim, copied the mysetup.cmd and winpeshl.ini to the \windows\system32 folder of the boot.wim, umounted, rebuild the iso using ocsdimg.exe

Copied the rebuild iso to the  \_ISO folder of the 8gb Helper USB dirve.

 

Copied the 3 files all to the root of the 8gb Helper USB dirve.

autounattend.xml

unattend.xml

WINHELPER.USB

 

Also there are no other E2B files & folders in this 8gb Helper USB dirve, the contents of which are

\autounattend.xml

\unattend.xml

\WINHELPER.USB

\_ISO\win7.iso

 

The code of the mysetup.cmd which I put into the rebuild iso is

 

@echo off

TITLE MYSETUP.CMD
REM run wpeinit after loading ISO file
:findload
SET USBDRIVE=
echo Looking for a drive containing \_ISO\E2B\FIRADISK\LOADISO.CMD...
cmd /q /c  "FOR %%i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %%i:\_ISO\E2B\FIRADISK\LOADISO.CMD  cmd /k %%i:\_ISO\E2B\FIRADISK\LOADISO.cmd"
::if "%USBDRIVE%"=="" goto :findload


REM find RAMDRIVE with ISO contents
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:\sources\install.wim set RAMdrive=%%I:
If "%RAMdrive%"=="" (
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:\sources\install.wim set RAMdrive=%%I:
)
If "%RAMdrive%"=="" (
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:\sources\install.wim set RAMdrive=%%I:
)
If "%RAMdrive%"=="" (
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:\sources\install.wim set RAMdrive=%%I:
)
If "%RAMdrive%"=="" (
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:\sources\install.wim set RAMdrive=%%I:
)
If NOT "%RAMdrive%"=="" echo Found Install.wim at %RAMdrive%\sources\install.wim
IF "%RAMdrive%"=="" (
echo ERROR - COULD NOT FIND INSTALL.WIM!
pause
pause
REM Retry
goto :findload
)

echo Trying to run setup (with Repair option) from X: drive
if exist X:\Setup.exe X:\setup.exe

echo X:\Setup.exe not found!
echo Looking for setup.exe in \sources on DVD ISO
If exist %RAMdrive%\sources\setup.exe  (
%RAMdrive%
REM setup will use its path to find the install.wim
echo Launching %RAMdrive%\sources\setup.exe
%RAMdrive%\sources\setup.exe
goto :RBT
)


echo looking for setup in root of DVD ISO
If exist %RAMdrive%\setup.exe  (
%RAMdrive%
REM setup will use its path to find the install.wim
%RAMdrive%\setup.exe
goto :RBT
)


REM if not then just call setup in root of boot.wim and point it at install.wim

if exist X:\sources\Setup.exe X:\sources\setup.exe /installfrom:%RAMdrive%\sources\install.wim
if exist X:\Setup.exe X:\setup.exe /installfrom:%RAMdrive%\sources\install.wim
goto :RBT


:BAD
dir X:\ /b
echo Cannot find X:\Setup.exe !
@echo Press a key to reboot now...
pause

:RBT
wpeutil reboot
pause


 

 

The Code of the menu.lst in the grub4dos is

 

title INSTALL WINDOWS 7 FROM AN ISO\n You can choose an ISO from the same folder that contains\n the file \\_ISO\\choose_an_iso
# find the _ISO folder by looking for a marker file
debug off
# fill (rd) with 0's , 0x82d0 is rd-base mem address, Fn24 is memset - fill memory  <addr> <string> <size>
map (md)0x300+200 (rd) > nul ;; read 0x82d0  > nul ;; call Fn.24  %@retval% 0x20  102400  > nul
find --set-root /_ISO/choose_an_iso
clear
echo
# list all files in the /_ISO folder so the user can see them
ls ()/_ISO/
echo
echo
# Ask user which iso they want (name is converted to uppercase as /u is specified)
set /p /u ask=Enter iso filename WITH NO .ISO EXTENSION (e.g. Win7Pro32 ) :
if "%ask%"=="" echo No iso file specified! && configfile /menu.lst
clear
# check if user entered a valid filename with no ISO extension!
ls /_ISO/%ask%.iso || echo Cannot find /_ISO/%ask%.iso !!! && pause --wait=3 && configfile (bd)/menu.lst
echo Loading /_ISO/%ask%.iso - please wait ...
#set root drive to USB stick
find --set-root /_ISO/e2b/firadisk/loadiso.cmd
map --mem (md)0x800+4 (99)
dd if=()/_ISO/e2b/firadisk/au.xml of=()/AutoUnattend.xml
dd if=(rd)+1 of=()/_ISO/e2b/firadisk/ISONAME.CMD
write ()/_ISO/e2b/firadisk/ISONAME.CMD SET MYISO=\\_iso\\%ask%.iso\r\n
find --set-root /_ISO/%ask%.iso
# run the grub4dos map command and specify the iso file we want to load
map /_ISO/%ask%.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
# Specify the same iso file for when firadisk runs in winpe
find --set-root /_ISO/e2b/firadisk/loadiso.cmd
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/_ISO/%ask%.iso;\n\0
chainloader (0xff)/BOOTMGR || chainloader (0xff)
clear

Still am getting this screenshot

20131230_164723.jpg

As can be seen in the header bar of the screenshot it is not showing " LOAD WINDOWS ISO USING FIRADISK" which usually pops up when LOADISO.CMD is triggered. Here in this screenshot it shows "Mysetup.cmd" in the header bar of the windows console.

 

Thanks once again for all your help. :cheers:



#508 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 30 December 2013 - 03:02 PM

It looks like it has not found and run loadiso.cmd. I don't know why not, it should be on your E2B drive.



#509 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 30 December 2013 - 09:36 PM

For version 1.20, I am thinking of simplifying the folder structure I have used for the E2B download. At the moment I have pre-made some folders under the sub-menu folders (the folder names are arbitrary and can be any name and so do not dictate what type of files can be in them but many people don't realise this):

 

e.g. The \_ISO\MAINMENU folder has empty folders of:

 

\_ISO\MAINMENU\FREEDOS

\_ISO\MAINMENU\Linux

\_ISO\MAINMENU\MSDOS

\_ISO\MAINMENU\UTILITY

\_ISO\MAINMENU\WINDOWS

 

This is confusing some people and so I am thinking of replacing these with just one sub-folder:

\_ISO\MAINMENU\MNU

 

So payload files which do not need a .mnu file will go to \_ISO\xxxxxx and payload files which do need a mnu file can be placed at the \_ISO\xxxxxx\MNU level together with their payload files.

 

I will also change all sample .mnu files and instructions to use the new MNU folder and also the sub-menu folders for the other menu folders (\_ISO\ANTIVIRUS, etc.).

 

This does not prevent anyone from using their own folders and no code in E2B will be changed that will affects this. It only affects the pre-defined folders that the E2B download will ship with. If you update your E2B to v1.20, all your existing .mnu files and folders will still work.

 

If anyone objects to this, please let me know ASAP (with an explanation as to why you object).

Also, if you can think of a better name for the MNU folder please let me have you suggestions (e.g. FILES_MNU, USERFILES, SPECIAL, EXTRA, USER).


  • fms likes this

#510 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 31 December 2013 - 11:36 AM

Hi steve6375,

I managed to diagonise why the loadiso.cmd was not getting detected and was not running and subsequently why I was getting that screen shot error as shown in post #507.

On my laptop, I have a esata/usb 2.0 combo port and 2nos. USB 3.0 ports.

I connected the E2B pendrive to the esata/usb 2.0 port and the 8gb Helper pendrive to the usb 3.0 port.

 

And I think I read in one of the tutorials that Windows 7 will not load up if it is connected to USB 3.0 port because of no 3.0 drivers present. So that is why  Loadiso.cmd was not getting triggered. I even interchanged the pendrives ie I connected Helper flash drive to the esata/USB 2.0 and the E2B pendrive to the USB 3.0 port (and viceversa), but loadiso.cmd would not get triggered.

 

Finally I connected a 4 port 2.0 USB hub to the esata/usb port and connected both the pendrives (E2B pendrive as well as Helper USB pendrive) to the the 4 port 2.0 USB which in turn was connected to the esata/usb port of my laptop. After this Win 7 SP1 32 & 64, Vista SP1 32 & 64 all worked fine.

 

When I did the same procedure with the e2b pendrive and Helper USB HDD, it did not work at all (ie the e2b would not boot but the system was in a blank screen state, but that most probably is because connecting a USB HDD plus e2b pendrive to a 4 port usb hub which in turn is connected to a esata/usb port, is not technically acceptable as I feel the USB HDD is using all the power from the esata/usb port and hence the E2B pendrive is not getting detected, hence the blank screen before booting.

 

So the option remaining now is to buy another pendrive for the extra iso files.

 

Let me know your input in this.



#511 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 31 December 2013 - 11:44 AM

What do you mean 'e2b pendrive and Helper USB HDD'

The Helper drive must be a 'removable' drive. A USB HDD is not a removable drive and so will not work as a Helper drive.

 

You need an E2B HDD + USB removable Flash Helper drive.



#512 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 31 December 2013 - 12:08 PM

Yes I knew that it had to be a E2B HDD + USB removable Flash Helper Drive. But I was testing to see if I connected both the USB HDD + e2b pendrive if it would work (atleast boot) when connected to the 4 port hub. But I get a blank screen which most probably is because of whole power being taken by the USB HDD hence the e2b pendrive is not booting.



#513 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 31 December 2013 - 12:11 PM

Use a powered USB hub?



#514 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 31 December 2013 - 12:27 PM

Use a powered USB hub?

Sorry, but just trying to clarify, Are you saying that I should try to use a USB Hub with external power?



#515 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 31 December 2013 - 12:29 PM

There are two sorts of USB Hubs, powered and unpowered. The unpowered hub just uses the power from the host USB port, the powered hub has an external power adapter connected to it.



#516 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 31 December 2013 - 12:36 PM

Okay will have to buy one, as I don't have one at the moment.



#517 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 31 December 2013 - 12:40 PM

My 32gb pendrive has just arrived so I will be using e2b v1.19 on it. Was wondering when u upload e2b v 1.20 would I have to reformat the pendrive and redo everything to use e2b v1.20. Will everything get erased when I use RMPrep USB to get the e2b pendrive updated to v 1.20?



#518 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 31 December 2013 - 12:45 PM

No, you can just overwrite the files with v1.20.



#519 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 31 December 2013 - 12:50 PM

Would you be uploading any time sooner......just was wondering if I should wait for v1.20 to directly prepare my E2B on v1.20



#520 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 31 December 2013 - 12:51 PM

Maybe in a few hours...



#521 fms

fms

    Frequent Member

  • Advanced user
  • 141 posts
  •  
    United States

Posted 31 December 2013 - 01:12 PM

:clap: :bounce8: :yahoo:..take your time.



#522 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 31 December 2013 - 02:06 PM

v1.20 now at bottom of Tutorial 72a page for your convenience!

I will make a version with DPMS2 drivers available in a day or so.


  • fms likes this

#523 buyerninety

buyerninety

    Newbie

  • Validating
  • 10 posts

Posted 31 December 2013 - 03:24 PM

Ref previous Post#509, steve6375 said;
" e.g. The \_ISO\MAINMENU folder has empty folders of:
\_ISO\MAINMENU\FREEDOS
\_ISO\MAINMENU\Linux
\_ISO\MAINMENU\MSDOS
"...

" This is confusing some people and so I am thinking of replacing these
with just one sub-folder:
\_ISO\MAINMENU\MNU
"
suggest ;

\_ISO\MAINMENU\ANYISO1
\_ISO\MAINMENU\ANYISO2

etc...
\_ISO\MAINMENU\ISOneedMNU1
or ;

\_ISO\MAINMENU\ANYISO
and
\_ISO\MAINMENU\ISONEEDMNU
 

[I would prefer to have communicated this via PM, but it appears I have

exceeded my allowable grand total of one PM (per addressee?)per day....]


Edited by buyerninety, 31 December 2013 - 03:57 PM.


#524 steve6375

steve6375

    Platinum Member

  • Developer
  • 7157 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 31 December 2013 - 04:00 PM

Thanks but anyiso is not correct, the folder is for ISOs which require mnu files and not just ISOs but also other types such as .vhd, etc.

I thought of PAYLOAD_PLUS_MNU but in the end decided to use just MNU.

I have used MNU in v1.20 which is now available on the Tutorial 72a page (bottom of page).


  • fms likes this

#525 Levellak

Levellak

    Newbie

  • Members
  • 11 posts
  •  
    Czech_ Republic

Posted 04 January 2014 - 11:51 AM

Hi guys,
I found a mistake and I hope fix it in file dpms2.g4b
What was the problem? When booting windows xp, DPMS found two hdd drivers and this drivers set to (fd0)(fd1) drive but not set (firadiks, winvblock) driver and next BSOD. I was looking for in the code and found these lines.
 
 
Means :: FORCEFIRA this disk MUST be a ramdisk driver (fira or winvblock)
:: If we asked for winv and only one disk and this is firadisk then use Winv
if "% FIRA%" == "3" if "% 3" == "1" if / i "% def%" == "firadisk" set def = WinVBlock
:: If we ask for winv and 2 disks and this is the 2nd disk and is firadisk - change it winvblock
if "% FIRA%" == "3" if "% 3" == "2" if "% FORCEFIRA%" == "1" if / i "% def%" == "firadisk" set def = WinVBlock
:: Reset for next time
set FORCEFIRA =
 
I think the problem in the second condition, specifically
 

if / i "% def%" == "firadisk". 
 
that will never be satisfied because the variable %def% is the name of hdd drivers. (TESTING the display %def% value)
I  deleted this part and everything works fine for me.






Also tagged with one or more of these keywords: grub4dos, multiboot, multipass, usb boot, iso

2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users