Install windows from grub4dos

This method allows you to directly boot from a number of different unmodified Windows Install 7/8/10 ISOs on a bootable USB drive AND then run Setup to install Windows to a system.

No files need to be extracted from the ISO – just copy the ISO file and boot!

  • Legacy, UEFI or PXE boot is supported.
  • The ISO is automatically mounted as a virtual drive so Setup can find and use the Install.wim\esd file.
  • 2GB or more RAM is required to be in the system (it may fail to work if not enough RAM is available).
  • The Windows Install ISO file does not need to be modified in any way.

I will describe here only the outline process so that you can see how it is done. Easy2Boot uses a similar (but not identical) process when MBR-booting.

Example grub2 menus are also provided (grub4dos only MBR boots, grub2 will MBR and UEFI32 and UEFI64 boot).

PROCESS IN OUTLINE:

  1. Add Windows Install ISO to a grub4dos or grub2 bootable USB drive
  2. Add a menu for grub4dos\grub2
  3. The menu uses wimboot to boot to files inside the ISO
  4. Add in a null.cfg file which contains the full path of the ISO (except for the drive letter)
  5. The menu also injects a startnet.bat file and winpeshl.ini file
  6. For MBR booting we swap BIOS device hd0 with hd1 so that Windows does not think the boot drive is the USB drive (it may refuse to install Windows to a Removable USB drive or Setup may install the Windows boot code to a USB hard disk if we don’t do this).
  7. When the grub2\grub4dos menu is picked, here is what happens…
    1. The ISO is mounted (by grub4dos as a CD device using map or by grub2 as a loop device)
    2. wimboot will load the boot.wim, boot.SDI and BCD from the mounted ISO into RAM
    3. wimboot injects into the boot.wim\X: RAM drive a null.cfg file which contains the file path of the ISO
    4. wimboot injects into the boot.wim\X: RAM drive a winpeshl.ini and startup.bat file
    5. The boot.wim file is booted to by wimboot via bootmgr+BCD and startup.bat runs
    6. startup.bat finds the USB drive and installs ImDisk (which is also located in a folder on the USB drive somewhere)
    7. startup.bat finds the null.cfg file in X:\Windows\System32 and from this we can determine the name of the ISO that we need to load
    8. startup.bat uses ImDisk to load the ISO as drive Y: from the USB drive
    9. startup.bat runs X:\Setup.exe which will now be able to find the \sources\install.wim file on the Y: virtual DVD drive mounted by ImDisk

If required, we can also inject an XML file into the X:\Windows\System32 folder and specify this as the unattend file when we run setup.exe. This will cause Setup to be automated.

For MBR-bootong, it is necessary to swap the BIOS drives 0 (USB drive) and 1 around so that Windows will think the ‘boot’ drive is the internal hard disk and not the USB drive – otherwise Windows will refuse to install the boot code (and the Windows OS) to the first internal hard disk.

Download files – see link at the bottom of this article.

You can use VBox+VMUB to test (see Tutorial 4) but the grub2 drivemap command can cause WinPE to hang and not boot in a VM.

Example grub2 MBR menu:

  • menuentry "WIN10 Install" --unrestricted --class Windows {
  • set isoname=win10.iso
  • loopback loop /$isoname
  • linux16 /wimboot/wimboot
  • initrd16 \
  • newc:bcd:(loop)/boot/bcd \
  • newc:null.cfg:/wimboot/null.cfg \
  • newc:winpeshl.ini:/wimboot/winpeshl.ini \
  • newc:startup.bat.sdi:/wimboot/startup.bat \
  • newc:boot.sdi:(loop)/boot/boot.sdi \
  • newc:boot.wim:(loop)/sources/boot.wim
  • drivemap -s hd0 hd1
  • boot
  • )

Note: filenames defined after newc: must not be bigger than 31 characters or wimboot will fail.

Also grub is case sensitive so beware! – e.g. /Boot/boot.sdi instead of /boot/boot.sdi.

wimboot will try to locate a suitable bootmgr or bootxxx.efi boot file, so you don’t usually need to specify one.

You can also add in bootmgr.exe or bootmgr or bootx64.efi/bootmgfw.efi files if the wim file does not contain a suitable file (copy the files to the \wimboot folder) add an extra @bootmgr=/bootmgr.exe entry (or /bootmgr (or /bootmgfw.efi if UEFI).

iPXE wimboot is used for MBR booting but a special grub2 (unsigned, non-secure) version of grub2 with wimboot.mod is required for UEFI-booting.

Example MBR grub4dos menu:

Use Grub4dos 2020-02-29.7z (note: shows as 2020-03-04 in command prompt)   (other versions may have bugs – so try this version first!)

Most files are in grub2_wimboot.zip (see end of page).

  • title Install Windows10x64UK_Oct_2018 using wimboot method
  • map /Windows10x64UK_Oct_2018.iso (0xff)
  • map --hook
  • root (0xff)
  • # the root path now points to the files inside the ISO file
  • # hd0,0 is the USB drive that we booted from
  • kernel (hd0,0)/wimboot/wimboot
  • initrd @null.cfg=(hd0,0)/wimboot/null.cfg @startup.bat=(hd0,0)/wimboot/startup.bat @winpeshl.ini=(hd0,0)/wimboot/winpeshl.ini @bcd=/boot/bcd @boot.sdi=/boot/boot.sdi @boot.wim=/sources/boot.wim
  • map (hd0) (hd1)
  • map (hd1) (hd0)
  • map --hook
  • boot

IMPORTANT: order of the files in the initrd line seems to be important, the bcd and .wim file should be the last files loaded for the MBR version of wimboot.

On our USB drive we have a \wimboot folder:

  • \wimboot\wimboot
  • \wimboot\winpeshl.ini
  • \wimboot\startup.bat
  • \wimboot\null.cfg (contains the line installiso=xxxxxxxxx where xxxxxxxxx is the path and filename of the ISO using forward slashes)
  • \wimboot\imdisk\(files from grub2_wimboot.zip)
  • \Windows10x64UK_Oct_2018.iso

Example winpeshl.ini

[LaunchApps]
startup.bat

See Easy2Boot’s \_ISO\e2b\docs\QRUN.g4b file (search for ‘wimboot’ to see how you can use grub4dos to change null.cfg contents, etc.

ADDING A ‘WINDOWS INSTALL FROM ISO’ MENU TO THE E2B GRUB2 MENU SYSTEM

Set up your E2B drive with a second partition and the E2B grub2 menu files FIRST, then switch to the .imgPTN23 file so that the first partition contains the standard grub2 boot menu system files and the second partition contains your grub2 menu folders (e.g. \_ISO\MAINMENU, etc.) and then…

The following windows_install.grub2 menu text file can be added to the \_ISO\MAINMENU folder on the 2nd partition.

  1. Download the grub2_wimboot files – extract it onto the root of the 2nd partition so you have a new \wimboot folder
  2. Download the windows_install.grub2 file and copy it to \_ISO\MAINMENU\grub2 folder on the 2nd E2B partition. Rename it as custom_menu.grub2 if using grub2 Beta 10 or later.
  3. Create a new \_ISO\MAINMENU\WINDOWS folder (must be in capital letters) on the 2nd partition and place all your Windows Install ISOs in that folder.

This is for MBR booting

2nd partition (additions)

  • \wimboot folder
  • \_ISO\MAINMENU\grub2\custom_menu.grub2
  • \_ISO\MAINMENU\WINDOWS\ (your windows isos here)

Note: E2B grub2 v10W.imgPTN already includes wimboot and a new Windows Install W menu (you just copy your ISOs to the 2nd partition!) – see next section below…

Add grub2 UEFI + wimboot (using a1ive grub2)

I suggest you use the latest E2B grub2 v10W .imgPTN file – see bottom of this page for instructions.

The following instructions are for the v10A E2B grub2 menu system and is more difficult to set up…

A1ive has added a wimboot grub2 module into his special version of grub2 (unsigned).

1. Download the grub2 UEFI zip file

2. Extract the files to the \EFI\BOOT folder on the first FAT32 partition (after switching in the E2B grub2 .imgPTN file)

3. Use the windows_install.grub2 menu file (copy to \_ISO\MAINMENU\grub2 folder)

4. Place all your Windows Install ISO files in the \_ISO\MAINMENU\WINDOWS folder – must end in .ISO or .iso.

5. Add this line into one of the customX_menu.grub2 files at the very bottom to add in the windows menu

source $isofpath/grub2/windows_install.grub2

The E2B grub2 menu system will automatically add-in any customX_menu.grub2 files but the source line is required so that it adds in the windows_install.grub2 menu (or rename it as custom3_menu.grub2 instead if you wish),

The Windows ISOs will be automatically added into the main grub2 menu when you boot. If you have placed Windows Install ISOs in the \_ISO\MAINMENU\WINDOWS folder, they should be listed in the grub2 menu when you boot.

The ISO filename can contain spaces. It must end in .ISO or .iso (case sensitive – so not .ISo for instance).

Standard Microsoft dual-architecture Install ISOs are supported, x64 will be used if the CPU is a 64-bit processor.

For MBR-booting, the menu may run bootmgr and then hang on a Virtual Machine due to the drivemap command – so test on a REAL SYSTEM if you have boot problems on a VM.

\_ISO\MAINMENU\grub2\windows_install.grub2

  • #WINDOWS INSTALL MENU
  • #$isofpath e.g. (hd0,msdos2)/_ISO/LINUX - use only in if [ -e tests
  • #$root2 e.g. (hd0,msdos2) partition containing payload files
  • #$root e.g. hd0,msdos1 boot partition with grub2 on it
  • #$root2uuid e.g. 1234-2123-33 (uuid of $root2)
  • #Special variables: MBR EFI MBR32 MBR64 EFI32 EFI64 BIT32 BIT64 FAT (true if filesystem on ptn2 is FAT)
  • #Examples:
  • #if $BIT32 ; then echo 32-bit ; fi
  • #if ! $BIT64 ; then echo not 64-bit ; fi
  • #if [ $BIT64 = true and $FAT = true ] ; then echo 64-bit MBR on FAT partititon ; fi
  • #if [ $BIT64 = true and $EFI = true ] ; then echo 64-bit EFI (same as \$EFI64) ; fi
  • #CHECK_MNU_FOLDER sets these variables on return - do not use filename and filenamex inside menuentry
  • #$ip e.g. /_ISO/LINUX
  • #$ipf e.g. (hd0,msdos2)/_ISO/LINUX
  • #$isofile e.g. /_ISO/LINUX/xxxx.iso
  • #supports filenames with spaces
  • function ListWimBoot {
  • echo Adding WINDOWS ISO files from $ifp/WINDOWS
  • for file in $ifp/WINDOWS/*.iso $ifp/WINDOWS/*.ISO; do
  • if ! test -f "$file"; then continue; fi
  • regexp -s filename "$ip/WINDOWS/(.*)" "$file"
  • regexp -s filenamex "$ip/WINDOWS/(.*)(.[iI][Ss][oO])" "$file"
  • # echo $file
  • menuentry "${filenamex}" "${filename}" {
  • #do not use $filename inside menuentry - use $isoname instead!
  • set isoname="$2" ; CHECK_MNU_FOLDER
  • #ip, ipf and isofile are now set correctly after CHECK_MNU_FOLDER
  • loopback loop "${ipf}/WINDOWS/${isoname}"
  • set pp=
  • if test -f (loop)/x64/sources/boot.wim; then set pp=/x64; fi
  • if $MBR32; then
  • if test -f (loop)/x86/sources/boot.wim; then set pp=/x86; fi
  • fi
  • echo Using ${pp}/sources/boot.wim...
  • set root=$root2
  • set installiso="${ip}/WINDOWS/${isoname}"
  • save_env -f /wimboot/null.cfg installiso
  • # cat /wimboot/null.cfg
  • # read
  • linux16 /wimboot/wimboot
  • initrd16 \
  • # newc:bootmgr:(loop)${pp}/bootmgr \
  • newc:winpeshl.ini:/wimboot/winpeshl.ini \
  • newc:null.cfg:/wimboot/null.cfg \
  • newc:startup.bat:/wimboot/startup.bat \
  • newc:boot.wim:(loop)${pp}/sources/boot.wim \
  • newc:bcd:(loop)${pp}/boot/bcd \
  • newc:boot.sdi:(loop)${pp}/boot/boot.sdi
  • #swap hd0 (USB) with hd1 (internal hdd) so 'boot disk' is internal hdd
  • #this means may only work on real system
  • drivemap -s hd0 hd1
  • boot
  • }
  • done
  • }
  • function ListWimBootEFI {
  • echo Adding WINDOWS ISO files from $ifp/WINDOWS/
  • for file in $ifp/WINDOWS/*.iso $ifp/WINDOWS/*.ISO; do
  • if ! test -f "$file"; then continue; fi
  • regexp -s filename "$ip/WINDOWS/(.*)" "$file"
  • regexp -s filenamex "$ip/WINDOWS/(.*)(.[iI][Ss][oO])" "$file"
  • # echo $file
  • menuentry "${filenamex} EFI" "${filename}" {
  • set isoname="$2" ; CHECK_MNU_FOLDER
  • #ip ipf and isofile are now set correctly after CHECK_MNU_FOLDER
  • loopback loop "${ipf}/WINDOWS/${isoname}"
  • set pp=
  • if test -f (loop)/x64/sources/boot.wim; then set pp=/x64; fi
  • set bootmg=bootia32.efi
  • if $EFI32; then
  • if test -f (loop)/x86/sources/boot.wim; then set pp=/x86; fi
  • set bootmg=bootx64.efi
  • fi
  • echo Using ${pp}/sources/boot.wim...
  • set root=$root2
  • set installiso="${ip}/WINDOWS/${isoname}"
  • save_env -f /wimboot/null.cfg installiso
  • # cat /wimboot/null.cfg
  • # read
  • #NOTE: ORDER IS IMPORTANT! May get 0xC000000f error if order is wrong! boot.wim should be first.
  • #use wimboot --pause to see any error ( also --rawbcd --rawwim --index=1 --gui )
  • wimboot \
  • @:startup.bat:/wimboot/startup.bat \
  • @:winpeshl.ini:/wimboot/winpeshl.ini \
  • @:null.cfg:/wimboot/null.cfg \
  • @:boot.wim:(loop)${pp}/sources/boot.wim \
  • # @:bootmgfw.efi:(loop)${pp}/efi/boot/$bootmg \
  • @:bcd:(loop)${pp}/efi/microsoft/boot/bcd \
  • @:boot.sdi:(loop)${pp}/boot/boot.sdi
  • boot
  • }
  • done
  • }
  • if ! $EFI ; then ListWimBoot; fi
  • if $EFI ; then ListWimBootEFI; fi

If wimboot uses an incorrect bootmgr/bootgmfw.efi file you may get a 0xc000000f unknown error BSOD – it is often better to not specify this file and let wimboot find it.

Note that the full path of the ISO is placed in null.cfg which is later picked up by startup.bat.

Example startup.bat file:

  • @echo off
  • TITLE %~dpnx0 (WIMBOOT startup.bat)
  • wpeinit.exe
  • REM prevent wpeinit from running again
  • ren X:\windows\system32\wpeinit.exe wpeinit.exe.old
  • 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:\wimboot\startup.bat set USBDRIVE=%%I:
  • IF "%USBDRIVE%"=="" (
  • echo ERROR - could not find \wimboot\startup.bat on any drive!
  • @echo on
  • 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:\wimboot\startup.bat set USBDRIVE=%%I:
  • pause
  • goto :EOF
  • )
  • color 1f
  • cls
  • @echo FOUND USB DRIVE AT DRIVE %USBDRIVE%
  • SET BIT=32
  • if "%PROCESSOR_ARCHITECTURE%"=="AMD64" SET BIT=64
  • FOR /L %%A IN (0,1,5000) DO ECHO NOTHING > nul
  • :: get path of the ISO into MYISO e.g. /_ISO/WINDOWS/WIN10/Windows10ProBoth.iso
  • cd /d %USBDRIVE%\
  • set MYISO=INVALID_ISO_NAME.ISO
  • echo Looking for X:\Windows\System32\null.cfg contents...
  • for /f "tokens=1,2 delims==" %%a in ('find "installiso=" X:\Windows\System32\null.cfg') do set isopath=%%b
  • REM change linux forward slash to Windows backslash
  • set string1=%isopath:/=\%
  • if exist "%USBDRIVE%%string1%" set MYISO=%string1%
  • if not exist "%USBDRIVE%%MYISO%" if exist X:\Windows\System32\null.cfg type X:\Windows\System32\null.cfg
  • if not exist "%USBDRIVE%%MYISO%" echo ERROR: Can't find %USBDRIVE%%MYISO% && pause && goto :EOF
  • if exist "%USBDRIVE%%MYISO%" echo Loading %USBDRIVE%%MYISO%...
  • REM Load ISO using ImDisk
  • TITLE LOAD WINDOWS ISO USING IMDISK
  • call \wimboot\imdisk\IMDISK_install.cmd
  • call \wimboot\imdisk\IMDISK_instiso.cmd
  • REM Find mounted DVD drive
  • set DVDDRIVE=
  • FOR %%D IN (A B 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 (
  • DIR %%D:\SOURCES\install.* > nul 2>&1 && (call set DVDDRIVE=%%D:) && echo FOUND %%D:\SOURCES\install.*
  • )
  • FOR %%D IN (A B 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 (
  • DIR %%D:\SOURCES\x86\install.* > nul 2>&1 && (call set DVDDRIVE=%%D:) && echo FOUND %%D:\SOURCES\x86\install.*
  • )
  • FOR %%D IN (A B 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 (
  • DIR %%D:\SOURCES\x64\install.* > nul 2>&1 && (call set DVDDRIVE=%%D:) && echo FOUND %%D:\SOURCES\x64\install.*
  • )
  • FOR %%D IN (A B 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 (
  • DIR %%D:\x86\SOURCES\install.* > nul 2>&1 && (call set DVDDRIVE=%%D:) && echo FOUND %%D:\x86\SOURCES\install.*
  • )
  • FOR %%D IN (A B 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 (
  • DIR %%D:\x64\SOURCES\install.* > nul 2>&1 && (call set DVDDRIVE=%%D:) && echo FOUND %%D:\x64\SOURCES\install.*
  • )
  • :ENDSEARCH
  • IF "%DVDDRIVE%"=="" echo WARNING: VIRTUAL DRIVE DRIVE NOT FOUND!
  • IF "%DVDDRIVE%"=="" echo WARNING: install.* not found on any mounted volume.
  • IF "%DVDDRIVE%"=="" pause
  • echo.
  • IF NOT "%DVDDRIVE%"=="" echo ISO FILE MOUNTED AS %DVDDRIVE%
  • REM startnet.cmd normally only contains wpeinit.exe, custom ISOs may contain other commands, so try to run them
  • if exist X:\WINDOWS\SYSTEM32\startnet.cmd call cmd /c X:\WINDOWS\SYSTEM32\startnet.cmd
  • if not exist X:\WINDOWS\SYSTEM32\startup.bat exit
  • IF "%DVDDRIVE%"=="" cmd
  • MODE CON COLS=30 LINES=2
  • echo DO NOT CLOSE THIS WINDOW
  • REM X:\Sources\setup.exe /Unattend:%E2BDRIVE%\AutoUnattend.xml
  • REM X:\Setup.exe will allow the repair option, X:\Sources\Setup.exe will directly run Setup
  • X:\setup.exe

THE BCD

You must use a standard Microsoft WinPE BCD which is usually already present in a standard Microsoft Windows Install ISO.

Special WinPE ISOs tend to contain non-standard BCDs which will give a BSOD.

If in doubt, make a new BCD file using BootIce and copy it to the \wimboot folder so you can use it with wimboot.

The files will be placed by wimboot into their standard locations inside the RAMDisk that it makes so you must use standard names and paths in the BCD.

For UEFI – BCD must be set to boot from \sources\boot.wim and use \boot\boot.sdi and boot file=\Windows\system32\boot\winload.efi

For MBR – BCD must be set to boot from \sources\boot.wim and use \boot\boot.sdi
and boot file=\Windows\system32\boot\winload.exe

If you get an error check that the winload file exists in the correct path inside the boot.wim by using 7Zip to open the ISO and \sources\boot.wim file.

Note: A solid black checkbox indicates ‘not defined in BCD’.

wimboot command line

wimboot will parse the following extra commands on the same line (e.g. linux16 /wimboot pause):

rawbcd Use raw (unpatched) BCD files

rawwim Use raw (unpatched) WIM files

gui Allow graphical output from bootmgr/bootmgfw

pause Pause before booting OS

pause=quiet Pause without displaying any prompt

index=n WIM boot index

initrdfile Ignored to allow to be used with syslinux

after processing the command line, the files in the initrd ramdrive will be loaded.

For UEFI:

wimboot [--gui] [--rawbcd] [--rawwim] [--pause] [--index=n] @:boot.wim:/path/to/test.wim @:bootmgfw.efi:/path/to/test.efi @:bcd:/path/to/bcd @:boot.sdi:/path/to/boot.sdi * params: * --gui or -g Display graphical boot messages. * --rawbcd or -b Disable rewriting .exe to .efi in the BCD file. * --rawwim or -w Disable patching the wim file. * --pause or -p * --index=n or -i n Use WIM image index n.

File Injection into \Windows\System32

Files named ‘BCD’, or ending in ‘.wim’ or ‘.sdi’ are ignored and are not injected into the X:\Windows\System32 folder.

All other files added using wimboot will be added to the X:\windows\system32 folder with the new name that you specify.

Make your own grub2 boot files

The bootx64.efi and bootia32.efi files are stub files which load grubx64.efi and grubia32.efi.

To build you own grub2 files, download a build from here.

C:\TEMP\builds-master\

  • .gitignore
  • build_grub.bat <<< run this
  • grub-install.exe
  • grub-mkimage.exe
  • README.md
  • +—arch
  • | +—arm64
  • | +—ia32
  • | +—legacy
  • | | \—ntboot
  • | | \—NTBOOT.MOD
  • | \—x64
  • +—i386-efi
  • +—i386-pc
  • +—locale
  • \—x86_64-efi

Double-click on build_grub.bat to make new core.img, grubx64.efi and grubia32.efi boot files.

The builtin.lst files under the arch folder contain a list of modules which will be added into grub2.

The EFI files will be unsigned and so will not Secure Boot.

EXAMPLE WINPE E2B .GRUB2 MENUS

Download custom2_menu.grub2 for WinPE files.

Create a .grub2 menu – e.g. \_ISO\MAINMENU\grub2\custom2_menu.grub2 in the 2nd E2B partition.

  • #WINDOWS PE EXAMPLES
  • # uses iPXE wimboot (2017-05-1) 30242 bytes http://ipxe.org/wimboot#download
  • # \wimboot folder on Partition 2 should contain wimboot, bootmgr, bootmgr.exe
  • # bootmgr.exe can be found in \Windows\Boot\PXE folder - copy it to the USB:\wimboot folder
  • #$isofpath e.g. (hd0,msdos2)/_ISO/LINUX - use only in if [ -e tests
  • #$root2 e.g. (hd0,msdos2) partition containing payload files
  • #$root e.g. hd0,msdos1 boot partition with grub2 on it
  • #$root2uuid e.g. 1234-2123-33 (uuid of $root2)
  • #Special variables: MBR EFI MBR32 MBR64 EFI32 EFI64 BIT32 BIT64 FAT (true if filesystem on ptn2 is FAT)
  • #Examples:
  • #if $BIT32 ; then echo 32-bit ; fi
  • #if ! $BIT64 ; then echo not 64-bit ; fi
  • #if [ $BIT64 = true and $FAT = true ] ; then echo 64-bit MBR on FAT partititon ; fi
  • #if [ $BIT64 = true and $EFI = true ] ; then echo 64-bit EFI (same as \$EFI64) ; fi
  • #CHECK_MNU_FOLDER sets these variables on return
  • #$ip e.g. /_ISO/LINUX
  • #$ifp e.g. (hd0,msdos2)/_ISO/LINUX
  • #$isofile e.g. /_ISO/LINUX/xxxx.iso
  • # ---------------------
  • function GetWimbootFiles {
  • #This function looks for files needed for iPXE WIMBOOT
  • #The filenames are case-sensitive, so we try to look for most likely ones!
  • set pp=
  • if test -f (loop)/x64/sources/boot.wim; then set pp=/x64; fi
  • if test -f (loop)/x64/Sources/boot.wim; then set pp=/x64; fi
  • if test -f (loop)/x64/Sources/Boot.wim; then set pp=/x64; fi
  • if test -f (loop)/x64/Sources/BOOT.wim; then set pp=/x64; fi
  • if test -f (loop)/x64/Sources/BOOT.WIM; then set pp=/x64; fi
  • if $BIT32; then
  • if test -f (loop)/x86/sources/boot.wim; then set pp=/x86; fi
  • if test -f (loop)/x86/Sources/boot.wim; then set pp=/x86; fi
  • if test -f (loop)/x86/Sources/Boot.wim; then set pp=/x86; fi
  • if test -f (loop)/x86/Sources/BOOT.wim; then set pp=/x86; fi
  • if test -f (loop)/x86/Sources/BOOT.WIM; then set pp=/x86; fi
  • fi
  • unset bme
  • if [ -e "/wimboot/bootmgr.exe" ]; then set bme=/wimboot/bootmgr.exe ; fi
  • if [ -e "(loop)/bootmgr.exe" ]; then set bme=(loop)/bootmgr.exe ; fi
  • if [ -e "(loop)/BOOTMGR.EXE" ]; then set bme=(loop)/BOOTMGR.EXE ; fi
  • if [ -e "(loop)/BOOTMGR.exe" ]; then set bme=(loop)/BOOTMGR.exe ; fi
  • if [ -e "(loop)/Bootmgr.exe" ]; then set bme=(loop)/Bootmgr.exe ; fi
  • unset bm1
  • if [ -e "/wimboot/bootmgr" ]; then set bm1=/wimboot/bootmgr ; fi
  • if [ -e "(loop)/bootmgr" ]; then set bm1=(loop)/bootmgr ; fi
  • if [ -e "(loop)/Bootmgr" ]; then set bm1=(loop)/Bootmgr ; fi
  • if [ -e "(loop)/BOOTMGR" ]; then set bm1=(loop)/BOOTMGR ; fi
  • unset bcd
  • if [ -e "(loop)${pp}/BOOT/BCD" ]; then set bcd=(loop)${pp}/BOOT/BCD ; fi
  • if [ -e "(loop)${pp}/BOOT/bcd" ]; then set bcd=(loop)${pp}/BOOT/bcd ; fi
  • if [ -e "(loop)${pp}/BOOT/Bcd" ]; then set bcd=(loop)${pp}/BOOT/bcd ; fi
  • if [ -e "(loop)${pp}/Boot/BCD" ]; then set bcd=(loop)${pp}/Boot/BCD ; fi
  • if [ -e "(loop)${pp}/Boot/bcd" ]; then set bcd=(loop)${pp}/Boot/bcd ; fi
  • if [ -e "(loop)${pp}/Boot/Bcd" ]; then set bcd=(loop)${pp}/Boot/bcd ; fi
  • if [ -e "(loop)${pp}/boot/BCD" ]; then set bcd=(loop)${pp}/boot/BCD ; fi
  • if [ -e "(loop)${pp}/boot/bcd" ]; then set bcd=(loop)${pp}/boot/bcd ; fi
  • if [ -e "(loop)${pp}/boot/Bcd" ]; then set bcd=(loop)${pp}/boot/bcd ; fi
  • unset sdi
  • if [ -e "(loop)${pp}/BOOT/BOOT.SDI" ]; then set sdi=(loop)${pp}/BOOT/BOOT.SDI ; fi
  • if [ -e "(loop)${pp}/BOOT/boot.sdi" ]; then set sdi=(loop)${pp}/BOOT/BOOT.SDI ; fi
  • if [ -e "(loop)${pp}/BOOT/Boot.sdi" ]; then set sdi=(loop)${pp}/BOOT/BOOT.SDI ; fi
  • if [ -e "(loop)${pp}/Boot/BOOT.SDI" ]; then set sdi=(loop)${pp}/Boot/BOOT.SDI ; fi
  • if [ -e "(loop)${pp}/Boot/boot.sdi" ]; then set sdi=(loop)${pp}/Boot/boot.sdi ; fi
  • if [ -e "(loop)${pp}/Boot/Boot.sdi" ]; then set sdi=(loop)${pp}/Boot/BOOT.SDI ; fi
  • if [ -e "(loop)${pp}/boot/BOOT.SDI" ]; then set sdi=(loop)${pp}/boot/BOOT.SDI ; fi
  • if [ -e "(loop)${pp}/boot/boot.sdi" ]; then set sdi=(loop)${pp}/boot/boot.sdi ; fi
  • if [ -e "(loop)${pp}/boot/Boot.sdi" ]; then set sdi=(loop)${pp}/boot/BOOT.sdi ; fi
  • unset wim
  • if [ -e "(loop)${pp}/sources/boot.wim" ]; then set wim=(loop)${pp}/sources/boot.wim ; fi
  • if [ -e "(loop)${pp}/Sources/boot.wim" ]; then set wim=(loop)${pp}/Sources/boot.wim ; fi
  • if [ -e "(loop)${pp}/Sources/Boot.wim" ]; then set wim=(loop)${pp}/Sources/Boot.wim ; fi
  • if [ -e "(loop)${pp}/SOURCES/boot.wim" ]; then set wim=(loop)${pp}/SOURCES/boot.wim ; fi
  • if [ -e "(loop)${pp}/SOURCES/Boot.wim" ]; then set wim=(loop)${pp}/SOURCES/Boot.wim ; fi
  • if [ -e "(loop)${pp}/SOURCES/BOOT.wim" ]; then set wim=(loop)${pp}/SOURCES/BOOT.wim ; fi
  • if [ -e "(loop)${pp}/SOURCES/BOOT.WIM" ]; then set wim=(loop)${pp}/SOURCES/BOOT.WIM ; fi
  • unset bmefi64
  • set t="(loop)${pp}/bootmgr.efi" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/EFI/BOOT/BOOTX64.EFI" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/EFI/BOOT/Bootx64.efi" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/EFI/BOOT/bootx64.efi" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/EFI/Boot/BOOTX64.EFI" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/EFI/Boot/Bootx64.efi" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/EFI/Boot/bootx64.efi" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/Efi/BOOT/BOOTX64.EFI" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/Efi/BOOT/Bootx64.efi" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/Efi/BOOT/bootx64.efi" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/efi/Boot/BOOTX64.EFI" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/efi/Boot/Bootx64.efi" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • set t="(loop)${pp}/efi/Boot/bootx64.efi" ; if [ -e "$t" ]; then set bmefi64="$t" ; fi
  • unset bmefi32
  • set t="(loop)${pp}/bootmgr.efi" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/EFI/BOOT/BOOTX64.EFI" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/EFI/BOOT/Bootx64.efi" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/EFI/BOOT/bootx64.efi" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/EFI/Boot/BOOTX64.EFI" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/EFI/Boot/Bootx64.efi" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/EFI/Boot/bootx64.efi" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/Efi/BOOT/BOOTX64.EFI" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/Efi/BOOT/Bootx64.efi" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/Efi/BOOT/bootx64.efi" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/efi/Boot/BOOTX64.EFI" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/efi/Boot/Bootx64.efi" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • set t="(loop)${pp}/efi/Boot/bootx64.efi" ; if [ -e "$t" ]; then set bmefi32="$t" ; fi
  • #either bootmgr.exe or bootmgr is required. It can be inside the boot.wim file
  • if ! [ -e /wimboot/wimboot ]; then echo ERROR: /wimboot/wimboot does not exist! Please add /wimboot folder to Partition 2 ; read ; fi
  • echo
  • if [ "$bme" = "" ]; then echo WARNING: bootmgr.exe not found ; fi
  • if [ "$bm1" = "" ]; then echo WARNING: bootmgr not found ; fi
  • if [ "$bme" = "" -a "$bm1" = "" ]; then set werr=1 ; fi
  • if [ "$bcd" = "" ]; then echo ERROR: BCD not found in ISO file ; set werr=1 ; fi
  • if [ "$sdi" = "" ]; then echo ERROR: boot.sdi not found in ISO file ; set werr=1 ; fi
  • if [ "$wim" = "" ]; then echo ERROR: boot.wim not found in ISO file ; set werr=1 ; fi
  • echo Using:
  • echo bm1=$bm1
  • echo bme=$bme
  • echo bcd=$bcd
  • echo sdi=$sdi
  • echo wim=$wim
  • echo bmefi64=$bmefi64
  • echo bmefi32=$bmefi32
  • echo --------
  • if [ "$werr" = "1" ]; then echo Possible error: Press a key to continue anyway... ; read ; fi
  • }
  • # ---------- Win10PESE_x64.ISO ------
  • if $MBR64; then
  • if [ -e "$isofpath/Win10PESE_x64.ISO" ]; then
  • menuentry "Win10PESE_x64.ISO (BIOS WIMBOOT)" --unrestricted --class windows {
  • set isoname=Win10PESE_x64.ISO ; CHECK_MNU_FOLDER
  • set root=$root2
  • loopback loop $isofile
  • GetWimbootFiles
  • linux16 /wimboot/wimboot pause
  • initrd16 \
  • # newc:bootmgr:$bm1 \
  • newc:boot.sdi:$sdi \
  • newc:boot.wim:$wim \
  • newc:bcd:$bcd
  • boot
  • }
  • fi
  • fi
  • #This menu will be shown for 32-bit and 64-bit CPUs
  • if $EFI; then
  • if [ -e "$isofpath/Win10PESE_x64.ISO" ]; then
  • menuentry "Win10PESE_x64.ISO (UEFI WIMBOOT)" --unrestricted --class windows {
  • set isoname=Win10PESE_x64.ISO ; CHECK_MNU_FOLDER
  • set root=$root2
  • loopback loop "$isofile"
  • # GetWimbootFiles
  • set pp=
  • if test -f (loop)/x64/sources/boot.wim; then set pp=/x64; fi
  • if $EFI32; then
  • if test -f (loop)/x86/sources/boot.wim; then set pp=/x86; fi
  • fi
  • echo Using ${pp}/sources/boot.wim...
  • wimboot --pause \
  • @:boot.sdi:(loop)${pp}/Boot/boot.sdi \
  • # @:bootmgfw.efi:(loop)${pp}/efi/boot/bootx64.efi \
  • @:boot.wim:(loop)${pp}/sources/boot.wim \
  • @:bcd:(loop)${pp}/efi/microsoft/boot/bcd
  • boot
  • }
  • fi
  • fi
  • # ------------- Win10XPE_X64.iso ----------------------
  • #WORKS (wimboot doesn't work)
  • if $MBR64; then
  • if [ -e "$isofpath/Win10XPE_x64.ISO" ]; then
  • menuentry "Win10XPE_x64 (BIOS MEMDISK)" --unrestricted --class windows {
  • set isoname=Win10XPE_x64.ISO ; CHECK_MNU_FOLDER
  • linux16 ($root)/boot/grub/memdisk iso raw
  • set root=$root2
  • initrd16 $isofile
  • # drivemap -s (hd0) (hd1)
  • boot
  • }
  • fi
  • fi
  • # ----------- ampe64.iso ------------------
  • if $MBR64; then
  • if [ -e "$isofpath/ampe64.iso" ]; then
  • menuentry "ampe64.iso WORKS (BIOS WIMBOOT)" --unrestricted --class windows {
  • set isoname=ampe64.iso ; CHECK_MNU_FOLDER
  • set root=$root2
  • loopback loop $isofile
  • GetWimbootFiles
  • linux16 /wimboot/wimboot pause
  • initrd16 \
  • # newc:bootmgr:$bm1 \
  • newc:boot.sdi:$sdi \
  • newc:boot.wim:$wim \
  • newc:bcd:$bcd
  • boot
  • }
  • fi
  • fi
  • #This menu will be shown for 32-bit and 64-bit CPUs
  • if $EFI; then
  • if [ -e "$isofpath/ampe64.iso" ]; then
  • menuentry "ampe64.iso (UEFI WIMBOOT)" --unrestricted --class windows {
  • set isoname=ampe64.iso ; CHECK_MNU_FOLDER
  • set root=$root2
  • loopback loop "$isofile"
  • GetWimbootFiles
  • if [ "$bmefi64" = "" ]; then echo ERROR: bootmgr EFI file not found ; fi
  • if [ "$sdi" = "" ]; then echo ERROR: boot.sdi file not found ; fi
  • if [ "$wim" = "" ]; then echo ERROR: boot.wim file not found ; fi
  • if [ "$bcd" = "" ]; then echo ERROR: BCD file not found ; fi
  • echo Using $wim...
  • wimboot --pause \
  • # @:bootmgfw.efi:$bmefi64 \
  • @:boot.sdi:$sdi \
  • @:boot.wim:$wim \
  • @:bcd:$bcd
  • echo boot...
  • read
  • boot
  • }
  • fi
  • fi
  • # Strelec WinPE TEST
  • # This menu will be shown for 32-bit and 64-bit CPUs
  • # Make strelec_BCD using BootIce - BCD must be set to boot from \sources\boot.wim and use \boot\boot.sdi and boot file=\Windows\system32\boot\winload.efi
  • # Need to obtain missing bootx64.efi from a standard Win10 ISO and add to \wimboot folder
  • # Once at Desktop, right-click on Strelec ISO in Explorer and MOUNT as Y: - then run MistAll from start menu
  • if $EFI64; then
  • if [ -e "$isofpath/WinPE10_8_Sergei_Strelec_x86_x64_2019.02.04_English.iso" ]; then
  • menuentry "TEST WinPE10_8_Sergei_Strelec_x86_x64_2019.02.04_English.iso (UEFI WINPE WIMBOOT)" --unrestricted --class windows {
  • set isoname=WinPE10_8_Sergei_Strelec_x86_x64_2019.02.04_English.iso ; CHECK_MNU_FOLDER
  • set root=$root2
  • loopback loop "$isofile"
  • wimboot --pause \
  • @:boot.sdi:(loop)/SSTR/boot.sdi \
  • @:bootmgfw.efi:/wimboot/bootx64.efi \
  • @:boot.wim:(loop)/SSTR/strelec10x64Eng.wim \
  • @:bcd:/wimboot/strelec64_BCD
  • boot
  • }
  • fi
  • fi

————————————————-

GRUB2 UEFI + WIMBOOT (IPXE)

You can use the iPXE environment instead of a grub2 environment

  • \boot.ipxe – config file run by iPXE
  • \ipxe64.efi – contains iPXE boot code (x64)
  • \ipxe32.efi – contains iPXE boot code (32-bit)
  • \wimboot – the wimboot code
  • \win\boot64.wim – \win folder contains your bootable wim file (any name)
  • \win\BCD2 – and name for BCD
  • \win\boot.sdi – generic boot.sdi

1. Go to the ROMMatic site and create a 64-bit and 32-bit .EFI file using – Advanced – EFI PXE bootstrap xx-bit (.efi)

and paste in the following script in the Embedded script box at the bottom:

#!ipxe
chain file:/boot.ipxe

then click on Proceed and wait (if you get a timeout – try again)

2. Now you should have a ipxe64.efi file and a ipxe32.efi file which you can load from grub2:

  • menuentry “iPXE wimboot” {
  • chainloader /ipxe64.efi
  • boot
  • }

3. Create the iPXE config file \boot.ipxe

  • #!ipxe
  • #use --name for UEFI when file has different name from default
  • #add second virtual name for MBR booting
  • #ensure BCD has standard \sources\boot.wim and \sources\boot.sdi paths
  • ifopen
  • kernel file:/wimboot
  • initrd --name bcd file:/win/bcd2 bcd
  • initrd --name boot.sdi file:/win/boot.sdi boot.sdi
  • initrd --name boot.wim file:/win/boot64.wim boot.wim
  • echo
  • echo Platform=${platform} BuildArch=${buildarch}
  • echo
  • imgstat
  • prompt --timeout 5000 Press a key... ||
  • boot

The same boot.sdi file can be used by all Windows 7/8/10 etc. AFAIK.

4. Use BootIce to ensure that the BCD2 file has standard file paths for the boot.wim and boot.sdi

If these paths are not ‘standard’, then you will get a BSOD 0xc000000f error!

See iPXE wimboot description for more details.

The big problem with this method is that the boot.ipxe configuration file cannot be passed the path of the boot.wim file by grub. Once grub chainloads the .efi boot file, all connections with grub are lost.

This means that you can only boot to one boot.wim OR you must prompt the user to enter path of the boot.wim file by adding scripting into the boot.ipxe file,

e.g.

  • echo Please enter the full path of the boot.wim file...
  • read wimboot
  • and then use
  • initrd --name boot.wim file:$wimboot boot.wim

in the boot.iPXE menuentry…

  • #!ipxe
  • #use --name for UEFI when file has different name from default
  • #add second virtual name for MBR booting
  • #ensure BCD has standard \sources\boot.wim and \sources\boot.sdi paths
  • ifopen
  • :getwim
  • imgfree
  • echo
  • echo
  • echo Please enter the full path of the boot.wim file...
  • echo Press ENTER for /win/boot64.wim
  • clear wimboot
  • echo
  • read wimboot
  • isset ${wimboot} || set wimboot /win/boot64.wim
  • echo wimboot=${wimboot}
  • #check file exists
  • imgfetch file:${wimboot} || goto getwim
  • read ask
  • kernel file:/wimboot
  • initrd --name bcd file:/win/bcd2 bcd
  • initrd --name boot.sdi file:/win/boot.sdi boot.sdi
  • initrd --name boot.wim file:${wimboot} boot.wim
  • echo
  • echo Platform=${platform} BuildArch=${buildarch}
  • echo
  • imgstat
  • prompt --timeout 5000 Press a key... || boot

Download files

Click here (OneDrive folder) if you cannot find any file mentioned in the articles on this site or Contact Me.

Category:

  • Компьютеры
  • Cancel

Есть у меня нетбук Asus n10j(вроде так зовется), все в нем хорошо и подарков к нему много дали (включая внешний usb dvd привод). Но так же есть огромнейший минус это жутко не правильная ОС Windows Vista, жил я с ней ~0.5 года, как то терпел да и времени не было, дипломы всякие… Недавно 2 голубых экрана смерти на пустом месте, не сраслось что то с обновлениями системы которые она так верно и упорно каждый день качала. Вообщем кончелось терпение и решил я поставить Windows XP, все таки терпимая еще система и в игрушки всякие онлайн поиграться хочется(зае*ал корейский GameGuard). Все было бы просто будь у меня болванка сие дива 2001 года.
Выбора не было, пришлось ставить с флешки. В интернете миллионы геморойных не понятных статей, где что то надо делать, что то распаковывать вообщем и еще половина не работает. Нашел единственный приемствинный для меня вариант использовать grub4dos.
Всю нужную мне информацию я нашел на сайте http://greenflash.su/ и форуме http://www.msfn.org/.

Описываю все пошагово.
1. Идем http://clsv.livejournal.com/7278.html выполняем начальные пункты 1-7.
2. Далее закидываем образ нашего Windows XP на флешку, допустим XP.iso в корень.
3. Качаем данный файл http://narod.ru/disk/15721401000/firadisk.IMA.html(это образ дискеты) и закидываем его на флешку, допустим тоже в корень.
4. Открываем файл на флешки MENU.LST, он находится в корне и добавляем туда строки:
title Windows XP Install
map —mem /firadisk.IMA (fd0)
map —mem /XP.iso (0xFF)
map (hd0) (hd1)
map (hd1) (hd0)
map —hook
chainloader (0xFF)

сохраняем наше творение.

Теперь далее объясняю примерный механизм работы.
После выбора Windows XP Install происходит следующие «загружается образ дискеты firadisk.IMA в ОЗУ

после этого создается виртуальный диск и так же в ОЗУ загружается образ Windows XP.

Анонимус в комментах описал правильный механизм работы
Образ дискеты firadisk.IMA действительно загружается в ОЗУ, после этого остаётся мирно лежать там, куда его загрузили. Никакого виртуального диска, он не создаёт.
Виртуальный диск создаёт команда map —mem /XP.iso (0xFF). С этого диска собственно потом и происходит загрузка установщика Windows.
Однако с образом, созданным этой командой установщик способен работать только до определённого этапа. До этапа окончания загрузки если точнее. После образ перестаёт быть виден, как бывает например с SATA винтами. Как и в случае с нестандартным винчестером, для того, чтобы нормально продолжать работу с виртуальным диском, системе нужны драйвера. Эти драйвера можно переписать на дискету и отдать установщику. Он кстати на определённом этапе так и пишет — Нажмите F6 если хотите загрузить дополнительные драйвера с дискеты. Если дискета уже вставлена, то он просто возьмёт их оттуда самостоятельно.
А внутри образа дискеты firadisk.IMA находятся как раз драйвера для работы с виртуальным диском. При желании их можно попросту интегрировать в iso и тогда необходимость в команде map —mem /firadisk.IMA (fd0) логичным образом пропадёт.
На моем нетбуке загрузка происходила не более 5 минут, при том что флешка хорошенько убита.

Установка Windows XP.
1.После загрузки образа в ОЗУ надо успеть нажать «ANY KEY» что бы запустился инсталлер.
2.Указываем куда ставим винду.
3.Перезагружаемся и опять ждем когда образ загрузится в ОЗУ но ничего не нажимаем.
4.Загружается GUI installer и все постандарту.
5.Перезагрузка, все можно грузиться с hdd и устанавливать всякие дрова антивирусы и прочий софт.

Всем удачи кому что не понятно задавайте вопросы в комментах всем, отвечу.
P.S. На всякий пожарный прикладываю файл menu.lst http://narod.ru/disk/15721782000/menu.lst.html

UPD(19.03.2010) Используйте оригинальные образы, а не какие нибудь убогие сборки!

Installing Windows with USB is not only simple and convenient, but also significantly reduces potential issues that arise when using a disk. However, creating a USB to install Windows is a method that not many people are familiar with. This article will guide you through creating a USB Boot using Grub4Dos.

Download Grub4Dos

To create USB Boot using Grub4Dos, you will also need:

  • Hiren’s BootCD
  • ISO file of the Windows operating system you want to install.

Useful Links:

  1. Download Hiren’s BootCD
  2. Download Windows 10 ISO file
  3. Download Windows 7, ISO Windows XP from Microsoft

Understanding the Requirements

Reinstalling a computer using a disk has become outdated thanks to various software and tools that simplify the Windows installation process. One of the most popular methods nowadays is USB Boot installation.

Necessary Conditions:

  • At least an 8GB USB flash drive.
  • Grub4dos installer.
  • Hiren’s BootCD file.
  • Windows ISO file for USB creation.
Step Description
Step 1 Connect the USB drive to the computer. Right-click its icon and select Format…
Format USB Drive

Step 2 A window will appear. Format the USB as NTFS or FAT32 as preferred. Click Start.
Step 3 Download the required tools if not already present.
Download Required Tools

Step 4 Extract the Grub4dos files (right-click and choose Extract files).
Extracting Grub4Dos

Step 5 Locate grubinst_gui, right-click, and select Run as administrator.
Running Grub4Dos

Step 6 On the main interface, select the appropriate disk options, refresh, and click Install.
Step 7 Copy grldr and menu.lst from the Grub4Dos folder to the USB.
Copy grldr and menu.lst to USB

Step 8 Extract Hiren’s Boot file and copy all files to the USB.
Hiren's Boot Extraction

Step 9 Similarly, extract the ISO file of Windows, and copy those files to the USB.
Windows ISO Extraction

Your USB is Ready!

After completing all steps, your USB should be ready for use. Restart your computer to install Windows from USB Boot using Grub4Dos. You can install various versions of Windows using this method, just by changing the Windows ISO file.

Пользовательского поиска

Среда, 14.05.2025, 21:26
Приветствую Вас Гость | RSS
Главная | Установка Windows 8 с помощью grub4dos — Форум | Регистрация | Вход
Меню Проекта
  • Главная страница
  • Руководство по Grub4Dos
  • Руководство по Syslinux
  • Каталог статей
  • Склад
  • Форум
  • GfxMenu
  • Книга Жалоб и Предложений
  • Cкачать?!
  • Информация о Проекте
  • Обратная связь
Мнение Общественности

Оценка Проекта

1. Отлично :-D

2. Хорошо :-)

3. Неплохо :-/

4. Очень плохо }:->

5. Ниочём :-(

Всего ответов: 2941

Статистика

Установка Windows 8 с помощью grub4dos

bodryjj Дата: Пятница, 02.12.2011, 16:33 | Сообщение # 1

Неизвестный

Группа: Пользователи

Сообщений: 2

Репутация: 0

Статус: Отсутствует

Здравствуйте.
Кто нибуть пробовал создать загрузочную флешку с виндой 8?
Если Да, то опишите как это можно сделать.

 
Sh1td0wn Дата: Пятница, 02.12.2011, 21:09 | Сообщение # 2

Программист

Группа: Модераторы

Сообщений: 3829

Репутация: 210

Статус: Отсутствует

bodryjj, попробуйте всё в корень ФС и chainloader /bootmgr, как и Seven. Информации о значительных изменениях загрузчика в Windows 8 мне найти не удалось.


НАЖМИ МЕНЯ, прежде чем что-либо написать

 
bodryjj Дата: Воскресенье, 04.12.2011, 14:00 | Сообщение # 3

Неизвестный

Группа: Пользователи

Сообщений: 2

Репутация: 0

Статус: Отсутствует

Сделал как Вы написали, в menu.lst дописал

Code

  title Setup Windows 8
map —unmap=0:0xff
map —unhook
root (hd0,0)
chainloader /bootmgr

Загрузка началась, выбор языка прошла, но выскачила ошибка по поводу привода (на картинке (делал телефоном, т.к. MobaLiveUSB_0.2 не поддерживает x64)). Похоже таже проблема, что и в семёрке, нужно прикручивать виртуальный привод и т.д.

 
van4ik Дата: Пятница, 03.02.2012, 12:27 | Сообщение # 4

Неизвестный

Группа: Пользователи

Сообщений: 10

Репутация: 0

Статус: Отсутствует

установка win 7 и 8 из grub4dos отличаться не будет. Я (не помню по какому рецепту) сразу пробовал инструкцию по установке семерки применить на восьмерку получалось.


мне помогло для win 7

 
ajm Дата: Пятница, 02.03.2012, 13:26 | Сообщение # 5

Неизвестный

Группа: Пользователи

Сообщений: 3

Репутация: 0

Статус: Отсутствует

Вчера устанавливал — все отлично работает

Code

title Windows 8 x64
root (hd0,0)
chainloader /bootmgr

 
ScriptMakeR Дата: Воскресенье, 16.12.2012, 14:01 | Сообщение # 6

Неизвестный

Группа: Пользователи

Сообщений: 1

Репутация: 0

Статус: Отсутствует

Подскажите, пожалуйста, можно ли сделать такое же, но только с выбором 32, или 64?

 
Atlant Дата: Воскресенье, 16.12.2012, 15:05 | Сообщение # 7

Эксперт

Группа: Проверенные

Сообщений: 2210

Репутация: 221

Статус: Отсутствует

bodryjj, Вместо обрезка MobaLiveUSB используй полноценную виртуалку — VMware Workstation v9.0.1.

ScriptMakeR, Здесь инструкция как установить из образа от висты и старше, включительно с 8 х86. А 8 х64 ставим из россыпи файлов:

Quote

title Windows 8 x64
chainloader /bootmgr

И не пишите root (hd0,0) — если флешка определится как флоп то меню станет не рабочим, пользы олт этой команды все равно ни какой.
Есть еще вариант с редактированием установочных файлов и созданием отдельных папок установщиками ОС, как по мне здесь больше гемора чем с образами.

 
npu3pak Дата: Вторник, 18.12.2012, 03:04 | Сообщение # 8

Профессионал

Группа: Проверенные

Сообщений: 314

Репутация: 12

Статус: Отсутствует

Мда…. может это кому-то и не понравится, но задам свой любимый вопрос. А зачем? Винда 8 сырая, нормально пользоваться можно будет после SP1, а до этого зачем она нужна?


Взаимный фонд Меркурий

 
Barba Дата: Вторник, 18.12.2012, 11:39 | Сообщение # 9

Экспериментатор

Группа: Проверенные

Сообщений: 121

Репутация: 13

Статус: Отсутствует

Сразу извиняюсь за 0FFF-топ, но прочитав сегодня множество постов npu3pak‘а, почему то решил, что оказался на чьей то кухне, а не на техническом форуме

 
npu3pak Дата: Вторник, 18.12.2012, 12:02 | Сообщение # 10

Профессионал

Группа: Проверенные

Сообщений: 314

Репутация: 12

Статус: Отсутствует

Barba, ну я тут давно не был, а вчера меня чет понесло + Где вы предлагаете задавать такие вопросы? Просто я сам занимаюсь ремонтами + работаю сисадмином, и множество вещей, которые тут обсуждаются, на практике не нужны вообще, вот и стало интересно, а где это все используются.
Если найдете мои старые сообщения, то поймете что я тоже стремился сделать загрузочную флешку со всем и вся… но в итоге все сократилось до 6 образов, которых хватает на все.


Взаимный фонд Меркурий

 
Atlant Дата: Вторник, 18.12.2012, 16:23 | Сообщение # 11

Эксперт

Группа: Проверенные

Сообщений: 2210

Репутация: 221

Статус: Отсутствует

Quote

А зачем? Винда 8 сырая, нормально пользоваться можно будет после SP1, а до этого зачем она нужна?

Лично мне она не удобна и ничего интересеного в ней не вижу, только новые неудобства и проблемы. А на счет сервиспаков — их больше не будет, судя по всему вообще. Так как приходится выпускать заплатки для самих сервиспаков, после их выхода, таково заявление майкрософта на счет 7 сп2. Плюс видел новость что через 1-2 года будет новая ОС, что заменит собой 8. В итоге при выходе новой ОС каждые 2-3 года создавать сервиспаки не целесообразно.

 
npu3pak Дата: Вторник, 18.12.2012, 18:17 | Сообщение # 12

Профессионал

Группа: Проверенные

Сообщений: 314

Репутация: 12

Статус: Отсутствует

Quote (Atlant)

А на счет сервиспаков — их больше не будет, судя по всему вообще

Ну значит я не увижу нормально 8 вянду. Хотя мне это и не надо ))) уже больше полугода полностью работаю в Убунте. Людям всем ставлю винду 7. Никто не против, почти всем плевать на новую версию. Люди хотят чтобы у них просто все работало


Взаимный фонд Меркурий

 
mronegin Дата: Воскресенье, 13.01.2013, 07:10 | Сообщение # 13

Специалист

Группа: Проверенные

Сообщений: 256

Репутация: 29

Статус: Отсутствует

npu3pak, сервиспак = куча обновлений за определенное время и какая разница, установите вы их сразу или нудным методом windows update? Linux сам по себе крут, но с приходом android’a, линь все больше привлекает внимание хацкеров…. короче говоря, и до линя потихоньку добираются плохие дядьки!
и напоследок анекдот:

Цитата

Начальник — секретарю:
— Катенька, дорогая, перепиши месячную отчетность нашим партнерам,
они сейчас к тебе подойдут.

— Добрый день, это вам переписать oтчетность?
— Добрый день, да, будьте так любезны, вот чистая дискета, можно на нее.
— Да, конечно.

Вставляет в дисковод. И….

# mkfs -t vfat -c /dev/fd0h1440
# mount -t vfat -o iocharset=koi8-r,codepage=866 /dev/fd0 /mnt/floppy
# find / -noleaf -type f -name Otchet_april. [a-zA-Z «> -exec cp ‘{ }’; /mnt/floppy \;
# ls -la /mnt/floppy/Otchet_april. [a-z «>[A-Z «> && sync && sleep 3

— Возьмите пожалуйста!
Партнеры.
— Них.. себе!!!

— Что такое?!… Я опять отмонтировать забыла?!

 
npu3pak Дата: Воскресенье, 13.01.2013, 13:07 | Сообщение # 14

Профессионал

Группа: Проверенные

Сообщений: 314

Репутация: 12

Статус: Отсутствует

mronegin, дело в том, что я не пользуюсь уже виндой (как писал об этом в прошлом посте). А тем, кому ставлю — не у всех есть инет для обновлений. Да и никто сильно не заморачивается.

Цитата (mronegin)

до линя потихоньку добираются плохие дядьки

На хакеров плевать. Я сам себя взламывал несколько раз и устранил основные лазейки. А по поводу вирусни….. если все настроить правильно — они не страшны. Хотя для линукса распространять вирусы легче. Надо просто сказать «Вот вирус для линя» и дать ссылку )))
И да, дядьки обратили внимание не на сам линукс, а именно на Андроид. Но… большинство вирусов задействуют такую маленькую программу как SMSReg. Она у меня удаленна в прошивке, поэтому этого тоже не опасаюсь.

ЗЫ. Долго смеялся с анекдота


Взаимный фонд Меркурий

 
AsassinC Дата: Вторник, 12.03.2013, 08:56 | Сообщение # 15

Неизвестный

Группа: Пользователи

Сообщений: 9

Репутация: 0

Статус: Отсутствует

Код

title Установка Microsoft Windows 8 x64
find —set-root/ImDisk/myiso.cmd
dd if=()/ImDisk/au.xml of=()/AutoUnattend.xml
dd if=()/ImDisk/cr.txt of=()/ImDisk/myiso.cmd
write ()/ImDIsk/myiso.cmd SET MYISO=\\8\\Windows8x64.iso\r\n
map /8/Windows8x64.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map —hook
chainloader (0xff)

 
  • Страница 1 из 2
  • 1
  • 2
  • »

Copyright GreenFlash © 2025

Время на прочтение8 мин

Количество просмотров560K

Про сам grub, загрузочные флешки и особенно специальные утилиты для создания дисков написано уже не мало, но выглядят они узко направленными. Например только для создания флешки Windows 7, различные PEtoUSB, есть более универсальные как в этом топике. Куча утилит по сути устанавливают загрузчик grub, isolinux (реже BCDW или lilo, еще реже свой как Win7), и затем раскладывают предложенные ему файлы (Windows7,WindowsXP, Ubuntu и т.д.) по папкам. От сюда и требовательность к образам (как писали в комментариях к этому топику).

А между тем абсолютное большинство выложенных в интернете дисков (особенно USB) как раз и используют isolinux и grub, что мешает их просто объединять? да ничего!

Я постараюсь с примерами рассказать, как сделать загрузочную, установочную и просто Live флешку, причем все в одном без заточенных под конкретный дистрибутив утилит. И иметь возможность, при необходимости, легко добавить на флешку еще что-то, без очередного ее переформатирования.

(С) Картинка оттуда

Демонстрация

Для пользователей Linux нет необходимости объяснять, как пользоваться командой grub-install /dev/sdb, да и преимущества grub им очевидны. Предвидя комментарии типа dd, хочу сказать, что статья нацелена в первую очередь на Windows пользователей.
Пользователям Windows я постараюсь объяснить преимущества grub, и надеюсь смогу убедить, что grub нужно держать если не первым, то вторым загрузчиком точно (флешку с grub иметь точно необходимо).
Для начала можно попробовать без затирания MBR. Достаточно прописать grub в boot.ini:
Нам понадобятся файлы из архива GRUB4DOS, копируем их в корень C:\, не обязательно что бы это был FAT, у меня работает и на NTFS:
default
grldr
grldr.mbr
menu.lst

Для Windows XP в boot.ini добавляем c:\grldr="GRUB4DOS". Все.
Либо запустить GRUB\install.bat из файла в приложении (файл install.bat взят из установщика xPUD ©, и только добавляет grub, ничего не копирует).

Для пользователей Vista и 7 установка несколько сложнее, чем в XP — делается это чрез bcdedit:

делаем резервную копию
bcdedit.exe /export "C:\BCD.bak"
bcdedit.exe /create /d "GRUB4DOS" /application bootsector
запоминаем GUID вида «{1a5b5afd-0469-110d-9a85-000103005000}», и далее заменяем в команде GUID на эту строку

bcdedit.exe /set GUID device boot
bcdedit.exe /set GUID device partition=%SYSTEMDRIVE%
bcdedit.exe /set GUID path \grldr.mbr
bcdedit.exe /displayorder GUID /addlast

Либо так же запустить GRUB\install.bat из файла в приложении.

В общем то на этом установка закончена, и можно уже перезагружаться и поиграться с командной строкой (нажать С после появления меню grub).

Например, можно начать загрузку с дисковода:
chainloader (fd0)+1
rootnoverify (fd0)
boot

С привода компакт дисков:
cdrom --init
map --hook
chainloader (cd0)
boot

Перезагрузиться:
reboot

Выключить компьютер:
halt

Можно загрузиться с заранее вставленной флешки (если конечно там есть какой то загрузчик):
map (hd1) (hd0)
map (hd0) (hd1)
root (hd1,0)
chainloader +1
boot

А можно начать установку Windows 7, образ которой до этого просто разархивировали на флешку (и сама флешка не загрузочная):
root (hd1,0)
chainloader /bootmgr
boot

Напомню, что все это мы делали из режима командной строки. Но 1 в 1 (удалив только последнюю команду boot), эти команды можно прописать и в menu.lst, и они будут работать из меню.

Случай из жизни: Cлетел MBR первого диска, и по этому BIOS загрузил сразу grub со второго диска. Увидев привычный синий экран, я смекнул что MBR, после очередных экспериментов, повреждена и требуется восстановление. Все что потребовалось мне, это перейти в режим командной строки ( С ) и ввести:
root (hd0,0)
chainloader /bootmgr
boot

И началась загрузка Windows7 После загрузки выполнил bootsect /nt60 c: /mbr И все (!)
Никакого безопасного режима или режима восстановления, ни каких 2-3 перезагрузок, и тем более ни каких дисков восстановления (да и нет у меня CD привода на нетбуке). После процедуры даже не понадобилось лишний раз перезагружаться, Windows загрузилась уже в штатном режиме (одно время я неделю ее так запускал, забывал восстановить MBR после загрузки).
Так же в архиве GRUB4DOS есть примеры автоматического поиска Windows XP и Windows 7/Vista, и даже если вы не знаете где у вас установлена Windows — все равно можно загрузиться при слетевшей MBR.

Установка

И так, Вы прониклись и хотите сделать себе такую флешку, но у Вас уже есть флешка на 16Гб и форматировать ее крайне не желательно, а большинство распространенных утилит (и инструкций) для изготовления бут-флешек предлагают ее предварительно отформатировать, что бы, полагаю, убедиться, что на создаваемой флешке точно файловая система FAT32. А потом устанавливают туда опять же grub или isolinux.

Установить grub можно без форматирования (при условии, конечно, что у вас уже FAT32, коих абсолютное большинство). Есть утилитка Winrub (любителям GUI), а в архиве GRUB4DOS есть bootlace.com. Рассмотрим вариант WinGrub. Раньше это был sfx архив, который сам себя распаковывает в %programfiles% и создавал ярлык на рабочем столе, что мне не нравилось. Достаточно было его самостоятельно распаковать, запустив потом grubinst_gui.exe. Когда писал статью, скачал последнюю версию, там уже инсталятор более менее полноценный. Качаем, ставим. Либо смотрим приложенный файл в конце статьи, я выложу свой комплект для сборки архивом. Запускаем, далее выбираем флешку (ориентируясь по размеру), и в partition list выбираем MBR или Whole disk. Жмем Install. Появляется окно консоли «The MBR/BS has been successfully installed«, с предложением нажать Enter, После нажатия которого — оно закрывается. В случае если написал «grubinst: Should be a disk image» поставьте галочку «Floppy image» и повторно нажмите Install

Теперь GRUB4DOS прописан в MBR.
После (хотя можно и ДО), копируем файлы из архива GRUB4DOS в корень флешки:
default
grldr
grldr.mbr
menu.lst

И редактируем menu.lst по желанию, параллельно наполняем флешку (часть пунктов уже можно посмотреть в статье выше, да и сам архив содержит примеры).

Наполняем

1. Alkid live
В полной раздаче есть архив multiboot.7z, где есть пример файла для grub, от туда его и возьмем, а сам ISO просто разархивируем в корень. Переименовываем i386 в minint, если забудем то не запустится, но скажет что не найден minint (что и стало столь не очевидной подсказкой).
Добавляем в menu.lst
title Alkid Live CD
root (hd0,0)
chainloader (hd0,0)/minint/setuplns.bin

В папке programs можно удалить лишнее, если флешка не сильно большая. А так же обновить базы антивирусов до актуального состояния.

2. Hiren’s BootCD
Открываем ISO и видим, что в папке HBCD лежит конфиг загрузчика isolinux.
Разархивируем папку HBCD в корень флешки, открываем isolinux.cfg:
menu label Start BootCD
kernel /HBCD/memdisk
append initrd=/HBCD/boot.gz

что легко преобразуется в синтаксис grub
title Start BootCD
root (hd0,0)
kernel /HBCD/memdisk
initrd /HBCD/boot.gz

добавляем и его в menu.lst
Установка закончена.

3. Некоторые мелкие утилиты уже есть готовые в интернете. обычно это образ дискеты с memtest, Ghost, DOS, PQMagic. Грузиться с них так же не составляет труда. Прописываем в menu.lst:
title Ghost 11
map --mem /Ghost.ima (fd0)
map --floppies=1
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

У меня EEEPC без CD привода и когда вдруг встала необходимость восстановить его, я даже не задумался где взять внешний привод. Переписал Ghost образ с DVD дсика на флешку на «большом» компе, загрузился с флешки и восстановил.

4. Запуск дистрибутива. Возьмем для примера образ Parted Magic. Качаем образ для USB. Он уже на grub и имеет очень большое меню различных вариантов загрузки. Для его установки распаковываем архив, папка pmagic должна оказаться в корне, и из boot\grub файл menu.lst копируем в \pmagic, а в наш груб добавляем:
title PМagic
configfile /pmagic/menu.lst

Эта команда загрузит меню из родного menu.lst от pmagic, и нам не придется вообще ничего изобретать. Разве что добавить в \pmagic\menu.lst пункт для возврата обратно в наше:
title <<main menu
configfile /menu.lst

В последней версии PМagic добавилась еще куча утилит, в т.ч. memtest, восстановление grub, hardware analyzer. Рекомендую самостоятельно потренироваться в «переселении» их на свою флешку, подглядывая в п.3 или menu.lst.

5. Запуск Live Ubuntu. У меня лежал «ubuntu-9.10-desktop-i386.iso«, на его примере и рассмотрим. Так же, разархивируем в корень. В папке isolinux (ее после можно удалить), в файле text.cfg находм как запускается Live режим, и соответственно добавляем свои строки в menu.lst (сравните что там было и что получилось)
title Try Ubuntu without any change to your computer
root (hd0,0)
kernel /casper/vmlinuz file=/preseed/ubuntu.seed boot=casper
initrd /casper/initrd.lz

6. Установка Debian (точно так же ставится и Ubuntu):
Для этого нам понадобится файлы HD-Media (или графический инсталятор) из репозитория, и ISO образ DVD1. Складываем все это в корень, а в grub добавляем:
title Debian Install
kernel /vmlinuz
init /initrd.gz

После начала установки будет найден образ ISO DVD1 и продолжится установка без сети, без CD приводов.

7. Установка на флешку Антивирусов сильно сложнее, например установку Dr.Web Live CD я расписывал тут.

Образы антивирусов не все удалось нормально «подселить» на флешку, если кто то сможет и поделится опытом буду рад (сам давно их не качал, возможно в последних версиях это уже делается сильно проще). В образе от Dr.Web, например, лежит даже инструкция по установке на флешки.
Для справки Live образы антивирусов:
Dr.Web
BitDefender
Avast! уже платный :(
Symantec NAV
Panda
Avira

8. DOS. Тут стоит разделить, если нам нужен ДОС для какой то серьезной работы, то имеет смысл найти DOS-Live образы, например этот, и грузить как в п.3. Мы же запускаем DOS что бы потом из него запустить установку Windows XP. От ДОСа нам понадобятся:
AUTOEXEC.BAT
COMMAND.COM
CONFIG.SYS
EMM386.EXE
HIMEM.SYS
IO.SYS
SMARTDRV.EXE

желательно, но не обязательно:
Mouse.com
MOUSE.INI
OAKCDROM.SYS

Копируем все это в корень флешки, а в menu.lst добавляем
title DOS (Install WinXP?)
root (hd0,0)
makeactive
chainloader /io.sys

Тут можно либо насладиться DOS, либо заранее в AUTOEXEC.BAT прописать (файл ответов конечно по желанию):
smartdrv
cd \WinXP\i386
winnt /U:\WinXP\i386\winnt.sif

9. Установка Windows 7. Как уже писал выше достаточно разархивировать ISO в корень флешки, а в menu.lst добавить (уже с hd0,0)
root (hd0,0)
chainloader /bootmgr
boot

10. Ну и для ровного счета расскажу еще об одном типе утилит. Некоторые (не все!) ISO образы могут быть загружены прямо из grub. Среди таких у меня нашлись: Acronis True Image, Acronis Disk Director, Active Password Changer. Это особым образом подготовленные образы (не простой слепок с CD), их загружать следующим образом:
title Active Password Changer
map (hd0,0)/Pwdchanger.iso (hd32)
map --hook
chainloader (hd32)

Удаление

Что делать если случайно установили grub в MBR основного диска, а не флешки, либо нужно удалить с флешки? Можно воспользоваться утилитой bootsect.exe как я писал выше.
В случае если еще не перезагрузились (если перезагрузились, то при помощи grub загрузите Windows, способом описанным выше), и запустите bootsect.exe
Для восстановления Windows XP bootsect /nt52 c: /mbr
Для восстановления Windows Vista/7 bootsect /nt60 c: /mbr
bootsect находится в папке boot диска Windows, а так же есть в моем выложенном архиве в конце статьи.
Флешку же достаточно просто отформатировать.

Заключение

Надеюсь что примеры помогут кому то разобраться, а кому то заинтересоваться данным загрузчиком, а утилиты для создания загрузочных флешек будут вызывать улыбку (ни кого не хочу обидеть, уважаю всех разработчиков, больше того сам с таких утилит начинал). Ну и конечно же очень рекомендую изучить подробнее сам grub, и GRUB4DOS, например вот русское руководство по последнему.
Перед добавлением очередного дистрибутива или утилитки, следите что бы папки не совпадали. Часть Linux дистрибутивов, при определенной сноровке и хорошем владении grub, позволяет безболезненно переименовать свою папку. Особенно не большие, на подобии pmagic, puppy, xpud.
В общем, не бойтесь экспериментировать, и удачи!

Так же ресурсы, которые могут быть полезны тем, кто хочет создать свою загрузочную флешку:
greenflash.su
flashboot.ru
lexapass.narod.ru

Приложение — мой архивчик со всем необходимым: bootsect, DOS, grub install скипт, WINGRUB, grub4dos. А так же список файлов на моей флешке c описаниями (некоторые просили).

UPD:

  • Форум где обсуждают варианты создания и загрузки ISO-образов.
  • В этой статье, от savvateev, он расказывается как решить некоторые возникающие проблемы, в том числе и фрагментацию образов ISO.
  • Статья «Программа для быстрого теста загрузочных дисков». С помощью описанной в статье утилиты загрузочную флешку можно тестировать мгновенно и без перезагрузки компьютера.
  • Скрипт для создания LiveLinux из любого дистрибутива.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Seamonkey для windows xp 32 bit
  • Auto update windows exe
  • Epson stylus cx7300 сканер драйвера windows 10
  • Когда придет обновление до windows 11
  • Шредер файлов windows 10