Jump to content











Photo
- - - - -

Change path from (BOOTMGR -> \Boot\BCD) to (WIM9MGR -> \Boot\WIM) / (WIM9MGR -> \WIM)

bootmgr bcd boot zbootmgr

  • Please log in to reply
48 replies to this topic

#26 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 29 July 2014 - 06:38 PM

Good.

You have to understand that a filename (and/or an extension) means NOTHING unless a given convention is in use.

 

http://en.wikipedia...._smell_as_sweet

 

Naming a floppy image with a .ima extension (right[*]) or with a .img extension (wrong[*]) or  with a .imgPTN (Steve6375's "own" extension used for Easy2boot[*], that actually is normally applied NOT to a floppy image, but rather to a ParTitioN image[1], i.e. a particular form of "superfloppy") does not alter in any way the actual contents or the "essence" of the file at hand.

 

And there are a number of confusing terms in use in technical literature/knowledge (on which a few people, including Olof, Steve, erwan.l, dencorso, a few other members and of course yours truly) debate since years :w00t:, like device/disk/disc/drive/partition/volume/floppy/superfloppy/filesystem that are often used - if not improperly - loosely and that need to be attentively evaluated and understood in the context they are cited.

 

A "floppy" image is a volume with size/characteristics compatible with "existing" real hardware floppy disks. <- this is the image of a non partitioned "real" device with Sectors Before=0 in the BPB (and should have IMHO .ima extension for historical reasons, as the extensions was used by the early programs such as Winimage since the dawn of time)

A "superfloppy" image is a volume as the above but usually larger and either corresponding  (as an example LS-120 or ZIP disk image are "superfloppy" images corresponding to  "real" superfloppy devices) or not corresponding to real hardware (as an example the 5760 Kb floppy) <- since these are still - essentially - (bigger) images of non partitioned devices (Sectors Before=0 in the BPB) they should also have the .ima extension

A "hard disk image" is the image of a partitioned device containing one or more volumes <- this - traditionally - had the .img extension.

 

A number of programs/tools use for the above indifferently the .img extension which helps in the confusion[*].

 

A "partition image" (as Steve6375 defined it[1]) is actually an image of a primary partition, i.e. the image of a volume on a hard disk, conceptually it is also a "superfloppy" BUT it is actually IMHO a very good thing that he found a suitable extension to "identify" and distinguish this type of images, which - by definition - have NOT Sectors Before=0 in the BPB (at least when "applied")

As well as the n extensions he "invented" :ph34r: are a good thing :):

http://www.easy2boot...ognised-by-e2b/

because they provide an easy way to know "which is which" by the extension, AND provided a documented convention, but you cannot expect any other tool (or Author) to follow that same (partially arbitrary) convention.

 

:duff:

Wonko

 

 

[*] "right" or "wrong" only depends on the conventions used or not used, it is common to find more extensions used for floppy images.

 

[1] References:

http://rmprepusb.blo...evelopment.html

http://www.easy2boot.../makepartimage/



#27 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 29 July 2014 - 07:59 PM

map --mem /Win8.1U1_Installer.img (fd0)
map --hook
root (fd0)
chainloader /bootmgr
boot

How to create floppy images from bootmgr and \boot\bcd ?


Open a command prompt, change directory to bcd file,
run
 
bcdedit /store bcd /enum all
Read the output.
Change boot to the (virtual)fixed USB drive letter.

A Windows 8 bcd example at USB letter E:
bcdedit /store bcd /set {default}   device ramdisk=[E:]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store bcd /set {default} osdevice ramdisk=[E:]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store bcd /set {default} description "Floppy image boot: Windows Setup"
bcdedit /store bcd /set {default} bootmenupolicy Legacy
bcdedit /store bcd /set {7619dcc8-fafe-11d9-b411-000476eba25f} ramdisksdidevice partition=E:

title BIOS: Windows 8 Setup x86 - \\sources\\BOOT.WIM
set fd_ima=/boot/BOOT.ima
#load boot floppy image
find --set-root --devices=h %fd_ima%
map %fd_ima% (fd0)
map --hook
root (fd0)
chainloader /bootmgr

There is no need to add bootmgr to the floppy image. You may read this from USB drive too.
title BIOS: Windows 8 Setup x86 - \\sources\\BOOT.WIM - read /boot/bootmgr from USB disk
set fd_ima=/boot/BOOT.ima
#load boot floppy image
find --set-root --devices=h %fd_ima%
#read /boot/bootmgr from USB disk
chainloader /boot/bootmgr
map %fd_ima% (fd0)
map --hook
root (fd0)
boot
\boot\bcd is at floppy image only. A 360kb floppy image holds the data.
  • devdevadev likes this

#28 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 29 July 2014 - 09:37 PM

\boot\bcd is at floppy image only. A 360kb floppy image holds the data.

BCD can be trimmed further.
 
Reg.exe load HKLM\BCD_HIVE BCD
Reg.exe save HKLM\BCD_HIVE BCD.small
Reg.exe unload HKLM\BCD_HIVE
del bcd && ren BCD.small bcd
The result matches a 45kb floppy image
http://bootcd.narod.ru/images_e.htm

#29 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 30 July 2014 - 07:37 PM

How to create floppy images from bootmgr and \boot\bcd ?

And another approach:
Several bcd files are stored at USB disk, no need to wrap this files to a floppy image.
bootmgr and boot.sdi is read from USB disk too.
 

\boot\bootmgr
\boot\boot.sdi
\boot\fd.gz
\boot\bcd_PE8_x86
\boot\bcd_PE81SE_x64
\sources\boot8x86.wim
\sources\BOOT81SE_x64.wim


\boot\fd.gz is a floppy image with a dummy \boot\bcd file. The bcd file size 256 kb, current windows 8 bcd file size. Use a own bcd file up to 256 kb.
At grub4dos\boot\fd.gz is expanded to (fd0). And \boot\bcd_PE8_x86 is copied to (fd0)\boot\bcd

mk_pe_part.cmd
@ECHO OFF
path ..;%path%
REM experimental, under construction
Rem Create BCD (boot configuration data) for Windows

rem mk_pe_part.cmd bcd_PE8_x86    \sources\BOOT8_x86.WIM    "BIOS: Windows 8 Setup x86"
rem mk_pe_part.cmd bcd_PE81SE_x64 \sources\BOOT81SE_x64.WIM "BIOS: Windows Win8.1 SE x64"

set BCD=%~1
set boot_wim=%~2
set description=%~3
set partition=%~4
if %partition%.==. set partition=%~d0
set GUID={7619dcc9-fafe-11d9-b411-000476eba25f}

IF EXIST "%BCD%" del "%BCD%"
BCDedit.exe /createstore "%BCD%"

BCDedit.exe /store "%BCD%" /create {bootmgr} /d "Windows Boot Manager"
rem BCDedit.exe /store "%BCD%" /set {bootmgr} 5
BCDedit.exe /store "%BCD%" /set {bootmgr} nointegritychecks Yes

BCDedit.exe /store "%BCD%" /create {ramdiskoptions}
BCDedit.exe /store "%BCD%" /set {ramdiskoptions} ramdisksdidevice partition=%partition%
BCDedit.exe /store "%BCD%" /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi

BCDedit.exe /store "%BCD%" /create %guid% /application OSLOADER
BCDedit.exe /store "%BCD%" /displayorder %guid% /addlast
BCDedit.exe /store "%BCD%" /set %guid% description "%description%"
BCDedit.exe /store "%BCD%" /set %guid%   device ramdisk=[%partition%]%boot_wim%,{ramdiskoptions}
BCDedit.exe /store "%BCD%" /set %guid% osdevice ramdisk=[%partition%]%boot_wim%,{ramdiskoptions}
BCDedit.exe /store "%BCD%" /set %guid% systemroot \windows
BCDedit.exe /store "%BCD%" /set %guid% path \windows\system32\boot\winload.exe
BCDedit.exe /store "%BCD%" /set %guid% detecthal Yes
BCDedit.exe /store "%BCD%" /set %guid% winpe Yes
BCDedit.exe /store "%BCD%" /set %guid% ems No
BCDedit.exe /store "%BCD%" /set %guid% bootmenupolicy legacy

BCDedit.exe /store "%BCD%" /enum all

Reg.exe load HKLM\BCD_HIVE "%BCD%"
Reg.exe save HKLM\BCD_HIVE "%BCD%.small"
Reg.exe unload HKLM\BCD_HIVE
del "%BCD%" && ren "%BCD%.small" "%BCD%"
Usage examples:
mk_pe_part.cmd bcd_PE8_x86 \sources\BOOT8_x86.WIM "BIOS: Windows 8 Setup x86"
mk_pe_part.cmd bcd_PE81SE_x64 \sources\BOOT81SE_x64.WIM "BIOS: Windows Win8.1 SE x64" E:


menu.lst
title BIOS: Windows 8 Setup x86 \nread /boot/bootmgr from USB disk\nand read bcd file from USB disk 
set fd_ima=/boot/fd.gz
cat --length=0 %fd_ima% > nul || find --set-root --devices=h %fd_ima%
#read /boot/bootmgr from USB disk
chainloader /boot/bootmgr
map --mem %fd_ima% (fd0)
map --hook
dd if=(bd)/boot/bcd_PE8_x86 of=(fd0)/boot/bcd
root (fd0)
boot

title BIOS: Windows Win8.1 SE x64 \nread /boot/bootmgr from USB disk\nand read bcd file from USB disk 
set fd_ima=/boot/fd.gz
cat --length=0 %fd_ima% > nul || find --set-root --devices=h %fd_ima%
#read /boot/bootmgr from USB disk
chainloader /boot/bootmgr
map --mem %fd_ima% (fd0)
map --hook
dd if=(bd)/boot/bcd_PE81SE_x64 of=(fd0)/boot/bcd
root (fd0)
boot

Attached Files

  • Attached File  fd.gz   984bytes   858 downloads

  • devdevadev likes this

#30 devdevadev

devdevadev

    Silver Member

  • Advanced user
  • 540 posts
  •  
    India

Posted 31 July 2014 - 02:16 AM

Awesome discovery 'cdob'. Lots of thanks for your help and support.

 

Your new approach is looking very useful for me. AFAIU, "mk_pe_part.cmd" should create 'bcd_PE8_x86' and 'bcd_PE81SE_x64'But when I paste two lines of 'Usage Example' in CMD prompt, then it gives error. Should I have to use these lines after putting all files into USB drive. I think something is missing which I could not understood about "mk_pe_part.cmd". Will I have to edit something (path ..;%path%) in "mk_pe_part.cmd".

 

Can you please tell me about "How to use "mk_pe_part.cmd" and why" ? So that I can use it properly without confusing. Is "mk_pe_part.cmd" under construction ?

 

Actually I never create BCD's through commands. I always use 'Bootice\BCDEdit' in order to create and edit BCD's.

I can create 'bcd_PE8_x86' and 'bcd_PE81SE_x64' with the help of 'Bootice\BCDEdit'. But what will be the advantage

if I use "mk_pe_part.cmd" instead of 'Bootice\BCDEdit' in order to create 'bcd_PE8_x86' and 'bcd_PE81SE_x64' ?

 

Regards........



#31 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 31 July 2014 - 03:53 AM

But when I paste two lines of 'Usage Example' in CMD prompt, then it gives error.

Which error do you get?
Which OS do you use?
 

How to use "mk_pe_part.cmd"

One case: copy mk_pe_part.cmd to the USB drive \boot.
Open a command prompt, change directory to USB drive \boot. Run the command.
The USB drive has to be a fixed drive one, hence use a filter driver like cfadisk at a removable USB flash.
 

I always use 'Bootice\BCDEdit' in order to create and edit BCD's.

Feel free to use Bootice still.
Does BCDEdit set the disk and partition at a PE boot?
Does a partition refers to boot.sdi and boot.wim?

#32 devdevadev

devdevadev

    Silver Member

  • Advanced user
  • 540 posts
  •  
    India

Posted 31 July 2014 - 07:25 AM

Which error do you get?
Which OS do you use?

That was the syntax error because of not copying 'mk_pe_part.cmd' to the USB drive \boot.. Now I got it correctly.
 

Does BCDEdit set the disk and partition at a PE boot?
Does a partition refers to boot.sdi and boot.wim?

Yes, I always use " Bootice\BCDEdit\Easy Mode " in order to set 'disk' and 'partition' as well as relocate to boot.sdi , boot.wim and VHDX.
 

As I say earlier that I will keep 'boot.sdi', 'boot.wim' , 'Win8.1U1SE_x64_boot.wim' and 'WIMBoot.vhdx' in 'ptn3' of my USB drive as follows-

 

ptn3:\boot\boot.sdi

ptn3:\sources\boot.wim                                    (Injected with 'cfadisk' drive and taken form 64-bit 'Win 8.1 U1')

ptn3:\sources\Win8.1U1SE_x64_boot.wim     (Injected with 'cfadisk' drive and taken form 64-bit 'Win8.1SE.iso')

ptn3:\WIMBoot.vhdx

ptn3:\sources\setup.exe
ptn3:\sources\install.wim                                     (taken form 32-bit 'Win 8.1 U1')
ptn3:\BOOTNXT

 

and will keep BCD's within 'ptn2' as follows-

 

ptn2:\_ISO\MAINMENU\Win8.1U1_(x64_Installer + SE_x64_boot.WIM + WIMBoot ).mnu

ptn2:\boot\bootmgr

ptn2:\boot\bcd_Win8.1U1_x64_Installer        (Relocated to ptn3:\boot\boot.sdi and ptn3:\sources\boot.wim)

ptn2:\boot\bcd_Win8.1U1SE_x64_boot          (Relocated to ptn3:\boot\boot.sdi and ptn3:\sources\Win8.1U1SE_x64_boot.wim)

ptn2:\boot\bcd_WIMBoot                                  (Relocated to ptn3:\WIMBoot.vhdx

 

Where content of "Win8.1U1_(x64_Installer + SE_x64_boot.WIM + WIMBoot ).mnu" will be as follows -

title Win8.1U1_x64_Installer 
#read /boot/bootmgr from USB disk
cat --length=0 /boot/bootmgr > nul || find --set-root --devices=h /boot/bootmgr
chainloader /boot/bootmgr
map --mem --heads=2 --sectors-per-track=9 (md)0x6000+720 (fd0)
map --hook
#create a 360kb floppy with a 336kb file \boot\bcd
write (fd0) \xEB\x3C\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x20\x01\x00\x01\x10\x00\xD0\x02\xFD\x01\x00\x09\x00\x02
write --offset=0x1FE (fd0) \x55\xAA\xFD\xFF\xFF\xFF\x4F\x00\x05\x60\x00\x07\x80\x00\x09\xA0\x00\x0B
write --offset=0x210 (fd0) \xC0\x00\x0D\xE0\x00\x0F\x00\x01\x11\x20\x01\x13\x40\x01\x15\x60\x01\x17\xF0\xFF
write --offset=0x400 (fd0) BOOT\x20\x20\x20\x20\x20\x20\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02
write --offset=0x600 (fd0) .\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02
write --offset=0x620 (fd0) ..\x20\x20\x20\x20\x20\x20\x20\x20\x20\x10
write --offset=0x640 (fd0) BCD\x20\x20\x20\x20\x20\x20\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x40\x05
#
#write --offset=0x59FFD (fd0) END
#cat --hex --skip=0x59F00 (fd0)+720
#pause
#
dd if=(bd)/boot/bcd_Win8.1U1_x64_Installer of=(fd0)/boot/bcd
root (fd0)
boot


title Win8.1U1SE_x64_boot-WIM
#read /boot/bootmgr from USB disk
cat --length=0 /boot/bootmgr > nul || find --set-root --devices=h /boot/bootmgr
chainloader /boot/bootmgr
map --mem --heads=2 --sectors-per-track=9 (md)0x6000+720 (fd0)
map --hook
#create a 360kb floppy with a 336kb file \boot\bcd
write (fd0) \xEB\x3C\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x20\x01\x00\x01\x10\x00\xD0\x02\xFD\x01\x00\x09\x00\x02
write --offset=0x1FE (fd0) \x55\xAA\xFD\xFF\xFF\xFF\x4F\x00\x05\x60\x00\x07\x80\x00\x09\xA0\x00\x0B
write --offset=0x210 (fd0) \xC0\x00\x0D\xE0\x00\x0F\x00\x01\x11\x20\x01\x13\x40\x01\x15\x60\x01\x17\xF0\xFF
write --offset=0x400 (fd0) BOOT\x20\x20\x20\x20\x20\x20\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02
write --offset=0x600 (fd0) .\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02
write --offset=0x620 (fd0) ..\x20\x20\x20\x20\x20\x20\x20\x20\x20\x10
write --offset=0x640 (fd0) BCD\x20\x20\x20\x20\x20\x20\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x40\x05
#
#write --offset=0x59FFD (fd0) END
#cat --hex --skip=0x59F00 (fd0)+720
#pause
#
dd if=(bd)/bcd_Win8.1U1SE_x64_boot of=(fd0)/boot/bcd
root (fd0)
boot


title WIMBoot 
#read /boot/bootmgr from USB disk
cat --length=0 /boot/bootmgr > nul || find --set-root --devices=h /boot/bootmgr
chainloader /boot/bootmgr
map --mem --heads=2 --sectors-per-track=9 (md)0x6000+720 (fd0)
map --hook
#create a 360kb floppy with a 336kb file \boot\bcd
write (fd0) \xEB\x3C\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x20\x01\x00\x01\x10\x00\xD0\x02\xFD\x01\x00\x09\x00\x02
write --offset=0x1FE (fd0) \x55\xAA\xFD\xFF\xFF\xFF\x4F\x00\x05\x60\x00\x07\x80\x00\x09\xA0\x00\x0B
write --offset=0x210 (fd0) \xC0\x00\x0D\xE0\x00\x0F\x00\x01\x11\x20\x01\x13\x40\x01\x15\x60\x01\x17\xF0\xFF
write --offset=0x400 (fd0) BOOT\x20\x20\x20\x20\x20\x20\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02
write --offset=0x600 (fd0) .\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02
write --offset=0x620 (fd0) ..\x20\x20\x20\x20\x20\x20\x20\x20\x20\x10
write --offset=0x640 (fd0) BCD\x20\x20\x20\x20\x20\x20\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x40\x05
#
#write --offset=0x59FFD (fd0) END
#cat --hex --skip=0x59F00 (fd0)+720
#pause
#
dd if=(bd)/boot/bcd_WIMBoot of=(fd0)/boot/bcd
root (fd0)
boot

The Screenshots of the BCD's Settings are given as follow-

USB Partition Table-
post-65263-0-51698900-1406801983.png

 

                             post-65263-0-85969400-1406801998.png

 

1- bcd_Win8.1U1_x64_Installer
post-65263-0-67793000-1406802027.png


2- bcd_Win8.1U1SE_x64_boot
post-65263-0-12559300-1406802055.png


3- bcd_WIMBoot
post-65263-0-80599400-1406802079.png

Note- After modifying BCD's settings according to above screenshots don't forget to click 'Save current System' and 'Save Globals' buttons at the bottom of the 'Bootice\BCDEdit\Easy Mode' dialog box. 'disk' and 'partition' entries of the BCD's will be shown only when we attached same USB drive in the system otherwise 'disk' and 'partition' area will shown as blank.

 

Regards......

Attached Thumbnails

  • USB Partition Table.png
  • Partition Selection.png
  • 1- bcd_Win8.1U1_x64_Installer.png
  • 2- bcd_Win8.1U1SE_x64_boot.png
  • 3- bcd_WIMBoot.png


#33 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 31 July 2014 - 08:46 AM

Still speaking about "conventions", it's interesting :dubbio: how the tool in the screenshot (just like grub4dos) numbers partitions (or partition entries) from 0 to 3 and you name them PTN1, PTN2, PTN3 (and I presume a fourth partition would be PTN4), another small step into complexity and probability -before or later - to get the "wrong" number :ph34r:, just like the good Linux guys decided that GRUB2 uses 1-4 instead of 0-3.

 

@cdob

Do you have an idea how the chainloaded BOOTMGR looks for a \boot\BCD?

Is first floppy disk always seeked first? Or it depends by the fact that you establish root on the floppy? I mean, what happens when a \boot\BCD actually exists in any other connected and accessible device? :unsure:

 

Though I like your approach :), I would still like better (at the cost of a somewhat slower boot) the approach with keeping the boot floppy monolithic (i.e. with a BOOTMGR in it) as it would be IMHO more "portable"/"manageable".

 

Back to the "on-the-fly" copy of the chosen \boot\BCD to floppy, what about using the fat grub4dos tool?

Would it allow to have a completely blank floppy?

Would doing something *like*a:

insmod fat

fat copy (bd)/boot/bcd_PE81SE_x64 (fd0)/boot/bcd

work and/or provide any advantage (or disadvantage)? :unsure:

 

Another random (but not much) idea, loosely connected to the COSMIAS approach - just a couple references before I forget about it (again):

http://reboot.pro/to...brided/?p=86679

http://www.msfn.org/...ation/?p=971170

 

:duff:

Wonko



#34 devdevadev

devdevadev

    Silver Member

  • Advanced user
  • 540 posts
  •  
    India

Posted 31 July 2014 - 09:10 AM

Still speaking about "conventions", it's interesting :dubbio: how the tool in the screenshot (just like grub4dos) numbers partitions (or partition entries) from 0 to 3 and you name them PTN1, PTN2, PTN3 (and I presume a fourth partition would be PTN4), another small step into complexity and probability -before or later - to get the "wrong" number :ph34r:, just like the good Linux guys decided that GRUB2 uses 1-4 instead of 0-3.

 

 

You mean I should use  'PTN0, PTN1, PTN2' instead of PTN1, PTN2, PTN3  ?

 

Actually Convention PTN1, PTN2, PTN3 are the result of BAD habit which I learn from 'RMPrepUSB' . And now I am also using 'Bootice' along with 'RMPrepUSB' since some weeks. I was also thinking that I should have to use 'PTN0, PTN1, PTN2' instead of PTN1, PTN2, PTN3  but it will take some time in order to use it in regular practice.

 

Regards......



#35 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 31 July 2014 - 10:03 AM

No :), anything goes, it was just a way to highlight how it is needed to explicit (and take into account) the conventions used, for all it matters, one can call the partitions:

  • MickeyMouse
  • Minnie
  • Goofy
  • Pluto

Personally, since we are talking of Partitions (and not of anything else) three out of four letters used are unneeded :w00t:, i.e. calling them:

  • 1st
  • 2nd
  • 3rd
  • 4th

would make (to me) more sense/create less confusion, as it is easier to understand/remember using ordinals that the numbering is starting from 1
http://en.wikipedia....r_(linguistics)

  • 1st - is First partition entry corresponding in grub4dos to (hdn,0), i.e. to the partition entry at offset 0 or the one that has 0 partition entries before
  • 2nd - is Second partition entry corresponding in grub4dos to (hdn,1)
  • 3rd - is Third partition entry corresponding in grub4dos to (hdn,2)
  • 4th - is Fourth partition entry corresponding in grub4dos to (hdn,3)

If you want to really overdo it :w00t: this is unlikely to create misunderstandings/mistakes:

  • 1st_entry_0
  • 2nd_entry_1
  • 3rd_entry_2
  • 4th_entry_3  

while still being within the 11 characters length compatible with *anything*.

 
:duff:
Wonko



#36 devdevadev

devdevadev

    Silver Member

  • Advanced user
  • 540 posts
  •  
    India

Posted 31 July 2014 - 02:15 PM

Though I like your approach :), I would still like better (at the cost of a somewhat slower boot) the approach with keeping the boot floppy monolithic (i.e. with a BOOTMGR in it) as it would be IMHO more "portable"/"manageable".

 

You mean if we also add a 'BOOTMGR' within floppy image ( \boot\fd.gz ) along with a dummy \boot\bcd file. then it will be more better than previous ?

 

Regards.........



#37 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 31 July 2014 - 02:51 PM

Do you have an idea how the chainloaded BOOTMGR looks for a \boot\BCD?
Is first floppy disk always seeked first? Or it depends by the fact that you establish root on the floppy? I mean, what happens when a \boot\BCD actually exists in any other connected and accessible device? :unsure:

The "root (fd0)" is importand.
Without "root (fd0)": bootmgr searches and reads \boot\BCD at USB drive. If the file is missing, there is a error message \boot\BCD missing or corrupt.
 

Though I like your approach :), I would still like better (at the cost of a somewhat slower boot) the approach with keeping the boot floppy monolithic (i.e. with a BOOTMGR in it) as it would be IMHO more "portable"/"manageable".

The approach is not "portable" anymore because the fixed letters (actually MBR signature and partition offset at bcd).
And \boot\bootmgr is at a special folder, mixing with another version is less likely.
I don't see a real benefit to include bootmgr to the floppy.
 

Back to the "on-the-fly" copy of the chosen \boot\BCD to floppy, what about using the fat grub4dos tool?
Would it allow to have a completely blank floppy?

From chenall's dpms.bat
 echo $[0107]######## $[0102]Auto SCSI/RAID/SATA Driver for NT5.X by chenall $[0107]#########
insmod FAT

map --mem=0x10000 (md)+2880 (rd)
fat mkfs (rd) > (md)0x300+1,1
map --mem (rd)+1 (fd0)
map --hook

fat copy /o %sysfile% (rd)
Well, drawback a addional fat module is required. Is it's worth?

Any idea to do this at plain grub4dos grldr?
A special floppy image: 360 kb, one FAT, one directory in root, one file, 64 kb cluster?
No idea if bootmgr reads such a beast.


We may dd from USB drive to USB drive too.
Enhances writing to USB.
\boot\bcd could match a internal hard disk by accident.

#38 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 31 July 2014 - 02:51 PM

@devdevadev

No, not "more better" (which would probably mean "best" ;)), only that I would personally like it better, just like I would like better to remove all the complexities from menu.lst to a COSMIAS grub4dos batch, i.e. replace an entry *like*:

 

title Win8.1U1_x64_Installer
set fd_ima=/boot/fd.gz
cat --length=0 %fd_ima% > nul || find --set-root --devices=h %fd_ima%
#read /boot/bootmgr from USB disk
chainloader /boot/bootmgr
map --mem %fd_ima% (fd0)
map --hook
dd if=(bd)/boot/bcd_Win8.1U1_x64_Installer of=(fd0)/boot/bcd
root (fd0)
boot

 

 

With an entry *like*:

iftitle [find /boot/fd.gz] Win8.1U1_x64_Installer

/boot/fd.gz Win8.1U1_x64_Installer

 

 

but it is just a matter of "tastes".

 

The "easy2boot" approach of making an extremely complex menu.lst is a very good one :) because it is intended to be used with pre-existing images and without modifying them at all, if not by renaming them with a suitable extension.

 

If one is going to use anyway a "custom" external file (such as the \boot\fd.gz in this case) I find it easier to shift the complexities to this "custom" file and keep the menu.lst more readable, but seemingly it is just me.

 

@cdob

the fat module is only 26 Kb and with it you would avoid the need for an image, as you would build it on-the-fly.

Worth it?

I don't know, as I said before is someone is OK with having a number of BOOTMGR's hexedited to point on some renamed BCD's, he can also live fine with a number of custom floppy images, each containing either BOTH BOOTMGR and a \boot\BCD or just the \boot\BCD, removing all the complexities of copying/overwriting files.

I.e.:

 

title Win8.1U1_x64_Installer
set fd_ima=/boot/Win8.1U1_x64_Installer.gz
cat --length=0 %fd_ima% > nul || find --set-root --devices=h %fd_ima%
#read /boot/bootmgr from USB disk
chainloader /boot/bootmgr
map --mem %fd_ima% (fd0)
map --hook
root (fd0)
boot

 

or

title Win8.1U1_x64_Installer
set fd_ima=/boot/Win8.1U1_x64_Installer.gz
cat --length=0 %fd_ima% > nul || find --set-root --devices=h %fd_ima%
map --mem %fd_ima% (fd0)
map --hook
root (fd0)

chainloader /bootmgr
boot

 

 

:duff:

Wonko



#39 devdevadev

devdevadev

    Silver Member

  • Advanced user
  • 540 posts
  •  
    India

Posted 31 July 2014 - 03:52 PM

@cdob
 

Is there any advantage of using 'mk_pe_part.cmd' over 'Bootice\BCDEdit\Easy Mode' in order to create BCD's

'bcd_Win8.1U1_x64_Installer', 'bcd_Win8.1U1SE_x64_boot', 'bcd_WIMBoot' ) ?

 
Regards....


#40 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 31 July 2014 - 07:23 PM

The "root (fd0)" is importand.
Without "root (fd0)": bootmgr searches and reads \boot\BCD at USB drive. If the file is missing, there is a error message \boot\BCD missing or corrupt.
 

I don't know. :unsure:

 

There is seemingly the usual "black magic" or "voodoo" that we can expect from MS booting  :wodoo:

 

Experiment in Qemu.

First floppy device (fd0) floppy containing (bootable) grub4dos.

Second floppy device (fd1) floppy containing BOOTMGR+\boot\BCD (+also a good ol' NTLDR+BOOT.INI)

 

root (fd1)

chainloader /bootmgr

boot

 

 

FAILURE (not found \boot\BCD 0x0000000e) :(

 

root (fd1)

chainloader /ntldr

boot

 

 

FAILURE (reboot) :(

 

map (fd0) (fd1)

map (fd1) (fd0)

map --hook

root (fd0)

chainloader /bootmgr

boot

 

 

SUCCESS (boot\BCD found and loaded) :)

 

map (fd0) (fd1)

map (fd1) (fd0)

map --hook

root (fd0)

chainloader /ntldr

boot

 

 

SUCCESS (\boot.ini found and loaded) :)

 

BUT :w00t:

 

map (fd0) (fd1)

map (fd1) (fd0)

map --hook

root (fd1)

chainloader (fd0)/bootmgr

boot

 

SUCCESS (boot\BCD found and loaded) :)

 

map (fd0) (fd1)

map (fd1) (fd0)

map --hook

root (fd1)

chainloader (fd0)/ntldr

boot

 

SUCCESS (\boot.ini found and loaded) :)

 

Will do some further experiments with BOOTMGR on hard disk devices and \boot\BCD *somewhere* else but it seems like the established root is only part of the story. :dubbio:

 

:duff:

Wonko



#41 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 31 July 2014 - 10:28 PM

the fat module is only 26 Kb and with it you would avoid the need for an image, as you would build it on-the-fly.
Worth it?

Well, well. Yes, a known working module is the proper approach.
Luckily I'm partly insane: a new approach is much more fun. In real life I earn money at development.

A trimmed floppy image, core base with mkfs.vfat and trimmed at hex editor
000: EB 3C 90 00 00 00 00 00 00 00 00 00 02 40 01 00
010: 01 10 00 D0 02 FD 01 00 09 00 02 00 00 00 00 00
1F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
200: FD FF FF FF 4F 00 05 60 00 07 80 00 09 A0 00 FF
400: 42 4F 4F 54 20 20 20 20 20 20 20 10 00 00 00 00
410: 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00
600: 2E 20 20 20 20 20 20 20 20 20 20 10 00 00 00 00
610: 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00
620: 2E 2E 20 20 20 20 20 20 20 20 20 10 00 00 00 00
630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
640: 42 43 44 20 20 20 20 20 20 20 20 20 00 00 00 00
650: 00 00 00 00 00 00 00 00 00 00 03 00 00 00 05 00
Grub4dos, imdisk, 7-zip and bootmgr accepts this.

Some grub4dos writes should create this floppy image on the fly.
 

I don't know, as I said before is someone is OK with having a number of BOOTMGR's hexedited to point on some renamed BCD's, he can also live fine with a number of custom floppy images, each containing either BOTH BOOTMGR and a \boot\BCD or just the \boot\BCD, removing all the complexities of copying/overwriting files.

Well, I understand: hexedited bootmgr are borrowed and not self created. And it's new to create floppy images. And bootice edits bcd files.
 

Is there any advantage of using 'mk_pe_part.cmd' over 'Bootice\BCDEdit\Easy Mode' in order to create BCD's

No, there is no advantage. Use bootice.
 
 

There is seemingly the usual "black magic" or "voodoo" that we can expect from MS booting  :wodoo:

That's more fun.

#42 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 01 August 2014 - 12:35 PM

I guess you just invented the "underfloppy" :thumbsup: (or what it could be a name for the opposite of a "superfloppy"? :w00t:).
 

Grub4dos, imdisk, 7-zip and bootmgr accepts this.

Not here (yet ;)).
There are a couple issues.
Imdisk is OK.
Grub4dos attempts to tune heads/sectors (but then works OK)
7-zip (9.32) and Winimage have issues ( with the "truncated image" I created initially :dubbio: but I suspect that some data needs to be changed/corrected), though they *somewhat* work with the full size image.
 
I am not sure to understand the reason/need/whatever for 64 sectors/cluster. :unsure:
 
I will do a few more tests, in the meantime (and temporarily) this will make an underfloppy.txt file (hex text that can be pasted in - say - TinyHexer "as new"):

::000: EB 3C 90 00 00 00 00 00 00 00 00 00 02 40 01 00
::010: 01 10 00 D0 02 FD 01 00 09 00 02 00 00 00 00 00
::1F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
::200: FD FF FF FF 4F 00 05 60 00 07 80 00 09 A0 00 FF
::400: 42 4F 4F 54 20 20 20 20 20 20 20 10 00 00 00 00
::410: 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00
::600: 2E 20 20 20 20 20 20 20 20 20 20 10 00 00 00 00
::610: 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00
::620: 2E 2E 20 20 20 20 20 20 20 20 20 10 00 00 00 00
::630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
::640: 42 43 44 20 20 20 20 20 20 20 20 20 00 00 00 00
::650: 00 00 00 00 00 00 00 00 00 00 03 00 00 00 05 00 FIND "error" size of BCD is 327,680 instead of "normal" 262,144
::650: 00 00 00 00 00 00 00 00 00 00 03 00 00 00 04 00

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
IF EXIST underfloppy.txt DEL underfloppy.txt
FOR /F "tokens=1,2 delims=:" %%A IN ('Type %~dpnx0 ^| FIND "::" ^| FIND /V "FIND"') DO (
SET /A Offset=0x%%A
SET Line_!offset!=%%B
)

SET Empty_Line= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SET /A Max_loop=0x%Line_16:~13,2%%Line_16:~10,2%*512



FOR /L %%A IN (0,16,%Max_loop%) DO (
IF DEFINED Line_%%A (
ECHO !Line_%%A!>>underfloppy.txt
) ELSE (
ECHO !Empty_Line!>>underfloppy.txt
)
)
dir underfloppy.txt
:duff:
Wonko

P.S.: Found what may be part of the problem, corrected the batch.

#43 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 01 August 2014 - 09:43 PM

I am not sure to understand the reason/need/whatever for 64 sectors/cluster. :unsure:

The idea was to shrink the FAT table.
And I'm at testing mode: what works against any specification?
Bootmgr reads a FAT12 128 sectors/cluster floppy. Finally I'm using 32 sectors/cluster.

Files at USB:

\boot\bootmgr
\boot\boot.sdi
\boot\bcd_PE8_x86
\boot\bcd_PE81SE_x64
\sources\boot8x86.wim
\sources\BOOT81SE_x64.wim

No floppy image anymore.


Create a 360kb floppy with a 336kb file \boot\bcd on the fly:
title BIOS: Windows Win8.1 SE x64 \nread /boot/bootmgr from USB disk\nand read bcd file from USB disk 
#read /boot/bootmgr from USB disk
cat --length=0 /boot/bootmgr > nul || find --set-root --devices=h /boot/bootmgr
chainloader /boot/bootmgr
map --mem --heads=2 --sectors-per-track=9 (md)0x6000+720 (fd0)
map --hook
#create a 360kb floppy with a 336kb file \boot\bcd
write (fd0) \xEB\x3C\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x20\x01\x00\x01\x10\x00\xD0\x02\xFD\x01\x00\x09\x00\x02
write --offset=0x1FE (fd0) \x55\xAA\xFD\xFF\xFF\xFF\x4F\x00\x05\x60\x00\x07\x80\x00\x09\xA0\x00\x0B
write --offset=0x210 (fd0) \xC0\x00\x0D\xE0\x00\x0F\x00\x01\x11\x20\x01\x13\x40\x01\x15\x60\x01\x17\xF0\xFF
write --offset=0x400 (fd0) BOOT\x20\x20\x20\x20\x20\x20\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02
write --offset=0x600 (fd0) .\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02
write --offset=0x620 (fd0) ..\x20\x20\x20\x20\x20\x20\x20\x20\x20\x10
write --offset=0x640 (fd0) BCD\x20\x20\x20\x20\x20\x20\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x40\x05
#
#write --offset=0x59FFD (fd0) END
#cat --hex --skip=0x59F00 (fd0)+720
#pause
#
dd if=(bd)/boot/bcd_PE81SE_x64 of=(fd0)/boot/bcd
root (fd0)
boot

  • devdevadev likes this

#44 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 02 August 2014 - 09:40 AM

I thought that the 262,144 bytes BCD was "exactly what needed" :unsure:
Is the Windows 8 \boot\BCD larger than 262,144 bytes?

I know that two bytes are two bytes, but you should be able to have E9 or EB instead of EB3C90.
http://www.msfn.org/...mages/?p=987482
and following.
You can also remove the Magic Bytes :w00t: (though it has to be tested with BOOTMGR if it works) :
7-zip won't like it, but IMDISK and grub4dos have seemingly no issues with this.

It remains *strange* that one needs to force the 2 sides/9 sectors (which is otherwise the "standard" geometry for a 360 Kb floppy), possibly it is a little "quirk" in grub4dos.

:duff:
Wonko

#45 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 02 August 2014 - 12:50 PM

I thought that the 262,144 bytes BCD was "exactly what needed" :unsure:
Is the Windows 8 \boot\BCD larger than 262,144 bytes?

Yes, Windows 8 \boot\BCD file size is 262,144 bytes.
It's a database with some obsolete data: reg load and reg save result to a file bcd 16,384 bytes

Given a file system file size bcd 336kb:
Insert a 262,144 bytes BCD, following are zeros: bootmgr reads the file bcd
Insert a 16,384 bytes BCD, following are zeros: bootmgr reads the file bcd

Any bcd file size up to 336kb works at given conditions.
A 360kb floppy was the smallest commonly used floppy matching windows 8 default bcd size.
 

I know that two bytes are two bytes, but you should be able to have E9 or EB instead of EB3C90.

You can also remove the Magic Bytes :w00t: (though it has to be tested with BOOTMGR if it works) :
7-zip won't like it, but IMDISK and grub4dos have seemingly no issues with this.

The virtual floppy written to a file:
dd if=(fd0) of=(bd)/boot/temp.ima

EB 00 90 : bootmgr does find the file \boot\bcd; 7-zip dosn't open the image
EB 00 00 : bootmgr dosn't find the file \boot\bcd
E9 00 00 : bootmgr does find the file \boot\bcd; 7-zip dosn't open the image

Magic bytes 55 AA reomved: bootmgr does find the file \boot\bcd; 7-zip dosn't open the image

Overall I like a general working approach, this includes 7-zip: a fast possibility to read the image.
Hence I like to keep EB 3C 90; 55 AA.
 

It remains *strange* that one needs to force the 2 sides/9 sectors (which is otherwise the "standard" geometry for a 360 Kb floppy), possibly it is a little "quirk" in grub4dos.

No, sides and sectors are not required. Grub4dos assumes this geometry for a 360 Kb floppy image. I like to set this explicitly.
And another special, yes 'boot' is not required here. Makes menu.lst more humanly readable.

I'm unsure about the memory drive (md). I recogniced this the first time http://reboot.pro/to...ge-2#entry77011
(fd0) contains zero only after machine boot, cold boot and reboot. Bug or feature?
Do I have to zero (fd0) myself?

#46 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 02 August 2014 - 04:08 PM

Yep, the EB3C90 replaced by E90000 and the 55AA removal was just for the fun of it.

 

It is however a good confirmation of theories exposed in the mentioned post, some tools (namely FreeDOS and 7-zip, though I do understand how a "generic" archive manager might need to detect those in order to use the right parser) are "more royalist than the king".

 

I highly suspect that the situation of the (md) drive will be (to say the least), "shaky" and assuming it will be all 00's before you write to it is prone to errors.

 

The full image "as is" (i.e. with the \boot\BCD made of 00's) will gzip compress to less than 600 bytes, so all in all I would still find "safer" using an image mapped to the floppy and dd the "real" BCD to it..

 

By calling it underfloppy, I was thinking of testing a few "non existing in real world" floppy formats, using a  "tweaked/reduced" \boot\BCD\ we should get away with an image made of:

+1 bootsector

+1 Fat table

+1 Root directory with the \boot\ dir entry

+1 with the \. \.. and \boot\BCD file entry

+ from 16,384/512=32 to 262,144/512=512 sectors for the actual space used by the BCD

 

Once gzipped this image might become smaller than 512 bytes and thus able to be be stored in a "single sector" within *some* file.

 

On the other hand, in practice, what you put together is essentially a 4 sectors "header" that can be dded just like the actual BCD, and I wouldn't find (even if I count each and every single byte ;)) it such a waste of space to have this header as a self standing file on the USB stick, not even if you added this header to each of the various BCD's.

 

As a matter of fact (hint ;)) it seems to me that a "standard" \boot\BCD has a number of "unused" sectors between the first sector (the one with "regf" incipit) and the one with the "hbin" incipit that is where the data actually is. 

 

:duff:

Wonko

 

P.S.: For no apparent reason, a suitable gzipped to one sector image is attached.

Attached Files



#47 milindsmart

milindsmart

    Frequent Member

  • Advanced user
  • 201 posts
  • Location:Bangalore
  •  
    India

Posted 11 August 2014 - 09:00 AM

Why not use wimboot like i've done in the other thread? on the fly spoofing disk is the best.


Edited by milindsmart, 11 August 2014 - 09:00 AM.


#48 milindsmart

milindsmart

    Frequent Member

  • Advanced user
  • 201 posts
  • Location:Bangalore
  •  
    India

Posted 10 September 2014 - 02:09 PM

Will do some further experiments with BOOTMGR on hard disk devices and \boot\BCD *somewhere* else but it seems like the established root is only part of the story. :dubbio:


The "root (fd0)" is importand.
Without "root (fd0)": bootmgr searches and reads \boot\BCD at USB drive. If the file is missing, there is a error message \boot\BCD missing or corrupt.


Any resolution for this contradiction? @cdob, can you do similar experiments like Wonko and map all the cases? If you have time, that is, else I'll eventually get around to it myself.

#49 Wonko the Sane

Wonko the Sane

    The Finder

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

Posted 10 September 2014 - 03:27 PM

Any resolution for this contradiction? @cdob, can you do similar experiments like Wonko and map all the cases? If you have time, that is, else I'll eventually get around to it myself.

There is not IMHO any "contradiction".

 

There are two different test scenarios.

  1. cdob has done a test in a setup booted from a USB device (stick or hard disk) that is (hd0) and a "virtual" grub4dos floppy (fd0)
  2. I did a test (in a VM) with only two floppy disks (fd0) and (fd1) where the BOOTMGR and \boot\BCD are on (fd1)

And there are two different results:

  1. Results of cdob's experiment are that if root to (fd0) is not established the chainloaded BOOTMGR on (hdx,y) cannot find a \boot\BCD on (fd0)
  2. Results of my experiment are that even if root to (fd0) is not established, the chainloaded BOOTMGR on (fd1) - once remapped to (fd0) - tries to find \boot\BCD on (fd0) and succeeds, BUT a chainloaded BOOTMGR on (fd1) cannot find a \boot\BCD on (fd1) even if the root to (fd1) is established.

These result are thus not contradicting one another, they are IMHO complementary.

 

The "net" sum of this is that *anyway* the BOOTMGR will find a \boot\BCD on the floppy only if the floppy is (fd0) and establishing the root to (fd0) is only needed if the chainloaded BOOTMGR does not also resides on (fd0).

 

This is also seemingly not contradicting your experiment with the hard disk volume where the disk containing the volume *needs* to be mapped as (hd0).

 

In other words it seems like there is a need for the \boot\BCD to be residing on "first floppy device" (fd0) or in a volume on "first hard disk device (hd0,n) AND in case the currently chainloaded BOOTMGR is not residing on the same volume, to establish root to that volume.

 

Still, more tests in different scenarios are needed to confirm the behaviour.

 

:duff:

Wonko


  • milindsmart likes this





Also tagged with one or more of these keywords: bootmgr, bcd, boot, zbootmgr

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users