Jump to content











Photo
- - - - -

Windows PE 5.x boot problem


  • Please log in to reply
85 replies to this topic

#51 paraglider

paraglider

    Gold Member

  • .script developer
  • 1717 posts
  • Location:NC,USA
  •  
    United States

Posted 29 May 2015 - 08:36 AM

When you start the ADK command prompt it will set that environment variable for you.



#52 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 01 June 2015 - 05:05 PM

Yes, it's part of script #42 already. The answer is 42 ;)


"%WinPERoot%\bfi.exe" -t=288 -f="%pe_32_64%\fwfiles\efisys.ima" "%pe_32_64%\fwfiles\floppy"
.
Extract is a good suggestion.
Added extract as preference to 7-zip.
Undocumented: 7-zip works still by chance to extract the file.

Within OS default files:
the builded DVD boots at BIOS x86/x64 and UEFI x64

Add addional programs to create BIOS x86/x64 and UEFI x86/x64:
extract http://www.winimage.com/extract.htmcopy extract.exe to %WinPERoot%
bfi http://www.nu2.nu/bfi/copy bfi.exe to %WinPERoot%

 

 

The create_fd_imdisk sub-procedure of the MakeWinPE3264_v02.cmd script is unnecessary because it is never called by the main procedure. Right?

 

Thanks

 

Bye



#53 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13803 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 01 June 2015 - 05:26 PM

The create_fd_imdisk sub-procedure of the MakeWinPE3264_v02.cmd script is unnecessary because it is never called by the main procedure. Right?

 

Sure :):

 

:create_fd_imdisk======================================================
rem obsolete, keep for further reference

 

you can remove the whole sub fine, but after all it takes up only 850 bytes or so, and maybe it can be useful to people that will have IMDISK installed anyway .... :unsure:

 

:duff:

Wonko



#54 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 02 June 2015 - 03:11 PM

If I wanted to download the extract.exe utility, where can I find it?

 

Thanks

 

Bye



#55 cdob

cdob

    Gold Member

  • Expert
  • 1351 posts

Posted 02 June 2015 - 03:32 PM

If I wanted to download the extract.exe utility, where can I find it?


extract http://www.winimage.com/extract.htm

ftp://ftp.winimage.com/extrac21.zip

#56 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 03 June 2015 - 09:14 AM

I copied all the utilities in the %WinPERoot% :

 

C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\DeploymentTools>dir
 the volume in drive C è Windows_8.1_Update_Enterprise_64
 Volume Serial Number: 88CE-32AE
 Directory of C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools
02/06/2015  19:20    <DIR>          .
02/06/2015  19:20    <DIR>          ..
30/05/2015  19:19    <DIR>          amd64
30/05/2015  19:19    <DIR>          arm64
01/11/2002  12:50            92.672 bfi.exe
30/11/2014  21:41             3.118 DandISetEnv.bat
19/08/1996  02:10            52.736 EXTRACT.EXE
30/05/2015  19:19    <DIR>          HelpIndexer
03/06/2015  09:32             5.761 MakeWinPE3264.cmd
30/05/2015  19:19    <DIR>          Samples
30/05/2015  19:18    <DIR>          SDKs
30/05/2015  19:19    <DIR>          WSIM
30/05/2015  19:18    <DIR>          x86
               4 File        154.287 byte
               9 Directory  35.839.864.832 byte free
 
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>

 

but, when I run the MakeWinPE3264_v02 script, the bfi.exe utility is not found:

 

create UEFI floppy image
        1 file copiati.
""C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\bfi.exe"" is not recognized as an internal or external command, executable program or batch file.
warning "C:\Users\Public\Downloads\Windows_PE\fwfiles\efisys.ima" not found, x64 UEFI mode only
Press any key to continue. . .
create ISO file C:\Users\Public\Downloads\Windows_PE\PE_3264.ISO
OSCDIMG 2.56 CD-ROM and DVD-ROM Premastering Utility
Copyright (C) Microsoft, 1993-2012. All rights reserved.
Licensed only for producing Microsoft authorized content.

Scanning source tree
Scanning source tree complete (191 files in 136 directories)
Computing directory information complete
Image file is 392953856 bytes (before optimization)
Writing 191 files in 136 directories to C:\Users\Public\Downloads\Windows_PE\PE_3264.ISO
100% complete
Storage optimization saved 12 files, 13922304 bytes (4% of image)
After optimization, image file is 379705344 bytes
Space saved because of embedding, sparseness or optimization = 13922304
Done.
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>

 

Why?

 

Thanks

 

Bye



#57 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13803 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 03 June 2015 - 09:53 AM

bfi.exe is (per your posted DIR) in:

"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\bfi.exe" whilst you have the error that it cannot be found in a DIFFERENT place:

"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\bfi.exe"

 

This means that your %WInPEroot% expands to:

C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\

as the line in the batch is:

"%WinPERoot%\bfi.exe" -t=288 -f="%pe_32_64%\fwfiles\efisys.ima" "%pe_32_64%\fwfiles\floppy"

 

Questions:

  1. How (EXACTLY) are you running the MakeWinPE3264.cmd?
  2. Which parameter are you using for target path (or if you prefer which value does %pe_32_64% expand to)?

 

 

:duff:

Wonko



#58 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 04 June 2015 - 05:11 PM

bfi.exe is (per your posted DIR) in:

"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\bfi.exe" whilst you have the error that it cannot be found in a DIFFERENT place:

"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\bfi.exe"

 

This means that your %WInPEroot% expands to:

C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\

as the line in the batch is:

"%WinPERoot%\bfi.exe" -t=288 -f="%pe_32_64%\fwfiles\efisys.ima" "%pe_32_64%\fwfiles\floppy"

 

Questions:

  1. How (EXACTLY) are you running the MakeWinPE3264.cmd?
  2. Which parameter are you using for target path (or if you prefer which value does %pe_32_64% expand to)?

 

 

:duff:

Wonko

 

Ok, now, the script works.

You have already tried this script with the latest preview of Windows 10?

 

Thanks

 

Bye



#59 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13803 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 04 June 2015 - 05:42 PM

You have already tried this script with the latest preview of Windows 10?

No.
In case of need:
http://homepage.ntlw...no-answers.html

:duff:
Wonko

#60 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 08 June 2015 - 07:46 AM

I can not understand this piece of the script:

rem Unify ramdisk options
BCDedit.exe %BCD_store% /create {ramdiskoptions}
BCDedit.exe %BCD_store% /set {ramdiskoptions} ramdisksdidevice boot
BCDedit.exe %BCD_store% /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi

In particular, why the ramdisksdidevice parameter, has the "boot" value and not the "partition=x" value?

 

Thanks

 

Bye
 


Edited by Balubeto Balubeto, 08 June 2015 - 07:47 AM.


#61 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13803 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 08 June 2015 - 09:25 AM

Are there partitions on a CD or DVD? :dubbio:

 

Read the BCDEdit guide by diddy:

http://diddy.boot-land.net/bcdedit/

particularly:

http://diddy.boot-la...iles/device.htm

http://diddy.boot-la..._ramdiskoptions

and around here:

http://reboot.pro/to...linux/?p=192138

 

Also (as a side note) do you have a clear idea of what actually is boot.sdi?

http://reboot.pro/to...im-and-ramdisk/

 

:duff:

Wonko



#62 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 09 June 2015 - 08:05 AM

Are there partitions on a CD or DVD? :dubbio:

 

Read the BCDEdit guide by diddy:

http://diddy.boot-land.net/bcdedit/

particularly:

http://diddy.boot-la...iles/device.htm

http://diddy.boot-la..._ramdiskoptions

and around here:

http://reboot.pro/to...linux/?p=192138

 

Also (as a side note) do you have a clear idea of what actually is boot.sdi?

http://reboot.pro/to...im-and-ramdisk/

 

:duff:

Wonko

The DVD does not have any partitions.

 

In practice, the "boot" value indicates the name of the ramdisk device and the "\boot\boot.sdi" value indicates the location where the boot file is located to load the RAM disk. Right?

 

Thanks

 

Bye



#63 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13803 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 09 June 2015 - 01:21 PM

In practice, the "boot" value indicates the name of the ramdisk device and the "\boot\boot.sdi" value indicates the location where the boot file is located to load the RAM disk. Right?

No, you are possibly still confused, more or less the "boot" in the line with ramdisksdidevice boot means "the whatever volume which was used to boot", i.e. where to look for the file "\boot\boot.sdi" specified in the line with  ramdisksdipath \boot\boot.sdi.

 

Try reading:

ramdiskdidevice as "ramdisk disk image device" or device on which the base disk image for the ramdisk is stored

and

ramdiskdipath as "ramdisk disk image path" or relative path to the base disk image for the ramdisk

 

You are creating with those lines the {ramdiskoptions} the boot.sdi is NOT the ramdisk, it is the (small) disk image used to mount the actual .wim (usually boot.wim) which will become the actual ramdisk, specified as "device" in lines like:

bcdedit /set {GUID} device ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions} 

bcdedit /set {GUID} device ramdisk=[C:]\Boot\boot.wim,{ramdiskoptions}

 

While a value such as "partition=x" or "partition=\Device\HarddiskVolume4" is "fixed" to the given partition, a value like "boot" is more "flexible".

 

More technically the value given to the ramdiskdidevice value is a storage "device", and "boot" is instead an alias for "any device from which the system was booted".

 

Try re-reading now where the "device" object is explained:

http://diddy.boot-la...iles/device.htm

it should become clearer.

 

:duff:

Wonko



#64 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 10 June 2015 - 04:48 PM

Looking these instructions:

 

BCDedit.exe %BCD_store% /set %guid% osdevice ramdisk=[boot]%1,{ramdiskoptions}
BCDedit.exe %BCD_store% /set %guid% device ramdisk=[boot]%1,{ramdiskoptions}

 

I can not understand the difference between the device and osdevice elements.

 

Someone could explain this difference?

 

Thanks

 

Bye



#65 cdob

cdob

    Gold Member

  • Expert
  • 1351 posts

Posted 11 June 2015 - 03:25 PM

how do I define the %WinPERoot% variable?

Do not define WinPERoot, use version from ADK command prompt.

Run at ADK command prompt to read the variable
echo %WinPERoot%
set
set W
set WinPERoot
.
 

I can not understand the difference between the device and osdevice elements.

The element <device> is the device to search for <path> "\windows\system32\boot\winload.*"
The element <osdevice> is the device to search for <systemroot> "\windows"

The elements device and osdevice are equal, because they refer to the same device.
Therefore there is no difference.

#66 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 17 June 2015 - 10:31 AM

Excuse me, but instead of using the EXTRACT.EXE utility to extract the BOOTX64.EFI file from efisys.bin file, it is enough to copy this efi file from the %WinPERoot%\amd64\Media\EFI\Boot directory to the %pe_32_64%\fwfiles\floppy\EFI\Boot directory. Right?
 

Thanks

 

Bye



#67 cdob

cdob

    Gold Member

  • Expert
  • 1351 posts

Posted 17 June 2015 - 06:20 PM

the BOOTX64.EFI file from efisys.bin file, it is enough to copy this efi file from the %WinPERoot%\amd64\Media\EFI\Boot


Compare the two file sizes. That's two different bootx64.efi files.
The OS manufactuer uses the version from efisys.bin at DVD boot. Follow or ignore this recommendation.

Read this thread again for more boot*.efi explanation.

#68 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 18 June 2015 - 07:34 AM

Compare the two file sizes. That's two different bootx64.efi files.
The OS manufactuer uses the version from efisys.bin at DVD boot. Follow or ignore this recommendation.

Read this thread again for more boot*.efi explanation.

 

The reason for my consideration is that, after the statement of the EXTRACT.EXE utility, there is this statement

copy "%WinPERoot%\x86\Media\EFI\Boot\bootia32.efi" "%pe_32_64%\fwfiles\floppy\EFI\Boot\"

that copies the bootia32.efi from the directory source. So, why can not I do the same thing with the BOOTX64.EFI?

 

Thanks

 

Bye



#69 cdob

cdob

    Gold Member

  • Expert
  • 1351 posts

Posted 18 June 2015 - 04:02 PM

So, why can not I do the same thing with the BOOTX64.EFI?

Current approach:

UEFI firmware is almost always amd64:
follow manufacturer DVD recommendation and use a known working approach

32bit UEFI is seldom: provide a work around
ignore manufacturer DVD recommendation and provide a work around

Yes, you can copy both boot*.efi from source files:
this ingores manufacturer recommendation twice: try the result at a lot of hardware
given different ADK version: this breaks the 2.88 MB size limit: remember the :create_fd_imdisk sub-procedure

#29

Yes, UEFI is 64 bit in most cases, hence 64 bit PE should be used as base and 32 bit added.
Extract files from a 64 bit ISO and add as less as possible.

Using a more common hardware device again:
2.88 MB floppy image efisys.ima add two files

<x64 floppy iamge efisys.bin>\efi\boot\bootx64.efi --> <IMA image efisys.ima>\efi\boot\bootx64.efi
<x86 DVD:>\efi\boot\bootia32.efi --> <IMA image efisys.ima>\efi\boot\bootia32.efi
<x64 DVD:>\bootmgr.efi --> <multi DVD:>\bootmgr.efi


#34

x64 DVD boot:
UEFI reads Eltorito EFI image and launches embedded \efi\boot\bootx64.efi.
and offers to press a key to continue PE booting
bootx64.efi chainloads \bootmgr.efi at DVD
bootmgr.efi reads the file bcd at DVD and present the menu.

x86 DVD boot:
UEFI reads Eltorito EFI image and launches embedded \efi\boot\bootia32.efi.
bootia32.efi reads the file bcd at DVD and present the menu.



#70 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 19 June 2015 - 07:44 AM

Current approach:

UEFI firmware is almost always amd64:
follow manufacturer DVD recommendation and use a known working approach

32bit UEFI is seldom: provide a work around
ignore manufacturer DVD recommendation and provide a work around

Yes, you can copy both boot*.efi from source files:
this ingores manufacturer recommendation twice: try the result at a lot of hardware
given different ADK version: this breaks the 2.88 MB size limit: remember the :create_fd_imdisk sub-procedure

#29

#34

 

So, if I copy the bootx64.efi and bootia32.efi files from the source files and, then, using the BFI utility, I create an efisys.ima single loader, which boots the 32/64 bit systems, how many odds I have that the CD, which I am creating, works on any computer?

 

Thanks

 

Bye



#71 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13803 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 19 June 2015 - 08:18 AM

how many odds I have that the CD, which I am creating, works on any computer?

 

Tricky :dubbio:, I would say that (excluded of course Wednesday and nights with full moon) you have around 87.65% of probability, with a variance around 84% in function of the specific *any* at hand. :frusty:

 

Idea :idea: try creating that §@ç#ing DVD, then try using it on the first 100 machines (without counting the ones that are the same model as one that was already tested) you have to install and count on how many it works and how many it fails, as always in statistics when you have a relatively small sample the issue is about it being representative of the whole, but to have a representative sample of a finite quantity like *any*, where *any* actually means *any decently recent machine, let's say manufactured no earlier than 2011* a random sample of 100 different models should be accurate enough.

 

:duff:

Wonko



#72 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 19 June 2015 - 09:16 AM

Tricky :dubbio:, I would say that (excluded of course Wednesday and nights with full moon) you have around 87.65% of probability, with a variance around 84% in function of the specific *any* at hand. :frusty:

 

Idea :idea: try creating that §@ç#ing DVD, then try using it on the first 100 machines (without counting the ones that are the same model as one that was already tested) you have to install and count on how many it works and how many it fails, as always in statistics when you have a relatively small sample the issue is about it being representative of the whole, but to have a representative sample of a finite quantity like *any*, where *any* actually means *any decently recent machine, let's say manufactured no earlier than 2011* a random sample of 100 different models should be accurate enough.

 

:duff:

Wonko

 

I already knew that, to create a CD 32/64 bit perfectly working on each system, it would be necessary to extract the bootia32.efi and bootx64.efi files respectively from the 32 bit and 64 bit efisys.bin files and then create an ima single loader with the BFI utility. Right?

 

Thanks

 

Bye



#73 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13803 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 19 June 2015 - 11:33 AM

Right?

Hmmm :dubbio:, you came here with a problem and cdob :worship: kindly provided a  working as much as possible solution.

 

The idea (loosely) is that:

  1. a standard "manufacturer" DVD for x64 UEFI works on 99.99% of x64 machines (which represents - say - 98%[1]of current UEFI machines).
  2. a standard manufacturer" DVD for x32 UEFI works on 99.99% of x32 machines (which represents - say - 2%[1] of current machines)

this more or less means that by combining the standard "manufacturer" solution for x64 machines with a non-standard solution for x32 will cover at least the same 99.99% of x64 machines and more generically the 99.99% of 98% of all UEFI machines, i.e. roughly 97.99% of ALL machines.

 

Even if the non-standard added solution for x32 has only a 50% hit rate (i.e. it works on one machine every 2) you still get a global 98.99% success.

 

What you are asking in a nutshell is how much probabilities to work properly has the non-standard solution for x64 (that the manufacturer for *some reasons* DECIDED TO NOT USE in the original x64 DVD's).

 

 It seems clear to me that whatever this percentage is (assuming that the manufacturer is not completely crazy, which BTW in the case of MS and of recent Windows OS may actually be the case ;)) it will be LOWER (possibly MUCH lower) than the solution the manufacturer chose to adopt.

 

As said, why don't you try both (the approach used by the manufacturer and suggested by cdob  and your new, freshly invented one) and compare results[2] ?

 

:duff:

Wonko

 

[1]Completely faked percentages, but still possibly representative of real world experience, of course if you only install to (usually stupidly underpowered) tablets the percentage of 2% for UEFI 32 bit will increase sensibly, whilst if you only install to desktops it will rapidly converge to 0%.

[2]As a side note, there are not valid statistic data because AFAIK noone that makes several installs on different machines has used a DVD (or a CD for that matters) to install the OS since around 2006 or 2007.



#74 cdob

cdob

    Gold Member

  • Expert
  • 1351 posts

Posted 19 June 2015 - 04:32 PM

I already knew that, to create a CD 32/64 bit perfectly working on each system, it would be necessary to extract the bootia32.efi and bootx64.efi files respectively from the 32 bit and 64 bit efisys.bin files and then create an ima single loader with the BFI utility. Right?

Right for 1/e seconds. https://it.wikipedia...nte_matematica)

bootia32.efi and bootx64.efi from efisys.bin loads a file named \bootmgr.efi next.
There is a 32 bit \bootmgr.efi file and a 64 bit \bootmgr.efi file.
bootia32.efi from efisys.bin works at a 32 bit \bootmgr.efi next.
bootix64.efi from efisys.bin works at a 64 bit \bootmgr.efi next.
There is a file name conflict.

#75 Balubeto Balubeto

Balubeto Balubeto

    Frequent Member

  • Advanced user
  • 130 posts
  •  
    Italy

Posted 19 June 2015 - 05:26 PM

Right for 1/e seconds. https://it.wikipedia...nte_matematica)

bootia32.efi and bootx64.efi from efisys.bin loads a file named \bootmgr.efi next.
There is a 32 bit \bootmgr.efi file and a 64 bit \bootmgr.efi file.
bootia32.efi from efisys.bin works at a 32 bit \bootmgr.efi next.
bootix64.efi from efisys.bin works at a 64 bit \bootmgr.efi next.
There is a file name conflict.

 

I no longer remember: The 32 bit and 64 bit bootmgr.efi file are identical? If so, my idea might also work?

 

Thanks

 

Bye






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users