Non-bootable Windows ISOs
I was trying to create a pull request and somehow failed...
https://github.com/Mexit/MultiOS-USB/commit/63781e0a497c309f942cf56675899faab6752e2f
Added the ability to boot Windows PE ISO files that require locations of boot files to be specified ie Symantec_Ghost_BootCD_12.0.0_Win11_x64.iso and others.
# Windows PE ISO's that do not boot normally
iso_pattern="win-noboot/*Win1*.iso"
for isofile in $iso_dir/$iso_pattern; do
if [ -e "$isofile" ]; then
regexp --set=isoname "$iso_dir/(.*)" "$isofile"
menuentry "$isoname" "$isofile" --class=windows {
if [ "${grub_platform}" != "efi" ]; then
rmmod iso9660
drivemap -s (hd0) (hd1)
fi
echo Loading boot.wim... This may take some time
iso_path="$2"
save_env iso_path
LOOPBACK "$iso_path"
$wimboot_kernel /MultiOS-USB/tools/wimboot-*/wimboot.x86_64
$wimboot_initrd \
newc:BCD:(loop)/boot/bcd \
newc:boot.sdi:(loop)/boot/boot.sdi \
newc:boot.wim:(loop)/sources/boot.wim \
newc:mountIso.exe:/MultiOS-USB/tools/mountiso/mountiso64.exe \
newc:grubenv:($dev,1)/grub/grubenv
echo Loading boot.wim complete, booting...
}
fi
done
See the commit message for addition info. Feel free to cherry pick whatever you like.
Thanks! I will test as soon as I have the opportunity
Some thoughts on expanding this to fit in with the existing Windows ISO configuration file:
Grub has the test command (https://www.gnu.org/software/grub/manual/grub/html_node/test.html#test)
17.4.74 test Command: test expression Evaluate expression and return zero exit status if result is true, non zero status otherwise. expression is one of: ... -d file = file exists and is a directory -e file = file exists -f file = file exists and is not a directory -s file = file exists and has a size greater than zero ...
If script tests for the existence of the following files within boot.wim
/Windows/Boot/DVD/EFI/BCD
/Windows/Boot/DVD/EFI/boot.sdi
or
/Windows/Boot/DVD/PCAT/BCD
/Windows/Boot/DVD/PCAT/boot.sdi
then boot the WIM, else extract from the ISO as per OP.
Not sure how to look inside the .wim for a file.
This is untested: [ -s (loop)/sources/boot.wim/Windows/Boot/DVD/EFI/BCD ] - ie look for the BCD file within the wim within the iso.
Then one script can do both:
# Windows 10, Windows 11
# https://www.microsoft.com/software-download/
# Incuding Windows PE ISO's that boot from USB drive only
iso_pattern="*Win1*.iso"
for isofile in $iso_dir/$iso_pattern; do
if [ -e "$isofile" ]; then
regexp --set=isoname "$iso_dir/(.*)" "$isofile"
menuentry "$isoname" "$isofile" --class=windows {
if [ "${grub_platform}" != "efi" ]; then
rmmod iso9660
drivemap -s (hd0) (hd1)
fi
echo Loading boot.wim... This may take some time
iso_path="$2"
save_env iso_path
LOOPBACK "$iso_path"
$wimboot_kernel /MultiOS-USB/tools/wimboot-*/wimboot.x86_64
if [ -s (loop)/sources/boot.wim/Windows/Boot/DVD/EFI/BCD ] && [ -s (loop)/sources/boot.wim/Windows/Boot/DVD/EFI/boot.sdi ]; then
echo Loading bootable boot.wim...
$wimboot_initrd newc:boot.wim:(loop)/sources/boot.wim \
newc:mountIso.exe:/MultiOS-USB/tools/mountiso/mountiso64.exe \
newc:grubenv:($dev,1)/grub/grubenv \
newc:Winpeshl.ini:/MultiOS-USB/config/windows/Winpeshl.ini
else
echo Loading ISO assisted boot.wim...
$wimboot_initrd \
newc:BCD:(loop)/boot/bcd \
newc:boot.sdi:(loop)/boot/boot.sdi \
newc:boot.wim:(loop)/sources/boot.wim \
newc:mountIso.exe:/MultiOS-USB/tools/mountiso/mountiso64.exe \
newc:grubenv:($dev,1)/grub/grubenv
fi
echo Loading boot.wim complete, booting...
}
fi
done
Not sure how to look inside the
.wimfor a file.
As far as I know this is handled by wimboot.
This is untested: [ -s (loop)/sources/boot.wim/Windows/Boot/DVD/EFI/BCD ] - ie look for the BCD file within the wim within the iso.
Unfortunately, it doesn't work that way. From GRUB there is no access to the wim image.
Is see, so my original approach for now. If I get time then shall look at wimboot code and see if it is possible to make a grub module to list wim file content.
(I did not tried anything written in this issue. Because as far as I understand this issue is about Win PE. Please tell me if I should open a new bug.)
I tried:
Win11_24H2_english_international_x64.iso
But I got this error:
How much RAM in the device?
What happens once you press a key?
How much RAM in the device?
16 GB RAM & 8 CPU
I can open on same device the same Windows ISO via Ventoy.
What happens once you press a key?
It does not matter if I press a key or not.
nothing is happening. I can't do anything except force power off the machine. I waited more then 5 minutes on this screen. nothing happened.
@JonnyTech
I downloaded Win11_24H2_english_international_x64.iso and it booted instantly with my MultiOS-USB drive.
Have you checked that your file is not corrupted?
Which version of MultiOS-USB are you using?
What is the filesystem where the iso is located (ie NTFS)?
@JonnyTech
Have you checked that your file is not corrupted?
It worked with Ventoy few days ago from same ISO.
Which version of
MultiOS-USBare you using?
I dowloaded the "master" branch (source code) from Github 2-3 days ago.
I use Linux.
What is the filesystem where the iso is located (ie NTFS)?
USB is EXFAT. Because on this document writes that it boots fro EXFAT:
https://github.com/Mexit/MultiOS-USB/blob/master/docs/Supported_OS.md
I dowloaded the "master" branch (source code) from Github 2-3 days ago.
Please try the release build:
https://github.com/Mexit/MultiOS-USB/releases/download/v0.9.9/MultiOS-USB_linux_v0.9.9.tar.gz
and show (copy/paste to here) the steps that you use to create the drive.
@JonnyTech I tried the build which you mention. Same result. Is the any advanced log I can send you?
BTW Only curiosity: Can I try these on VM?
Is the any advanced log I can send you?
You have not even sent "basic" log:
show (copy/paste to here) the steps that you use to create the drive.
@JonnyTech
I format my USB via this command:
sudo ./multios-usb.sh -f exfat /dev/sdb 27G
Content of:
/run/media/user_name/MultiOS-USB/install.log file
Arguments: -f exfat /dev/sdb 27G
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Creating new GPT entries in memory.
The operation has completed successfully.
The operation has completed successfully.
/dev/sdb1: 8 bytes were erased at offset 0x00000036 (vfat): 46 41 54 31 36 20 20 20
/dev/sdb1: 1 byte was erased at offset 0x00000000 (vfat): eb
/dev/sdb1: 2 bytes were erased at offset 0x000001fe (vfat): 55 aa
/dev/sdb2: 8 bytes were erased at offset 0x00000003 (exfat): 45 58 46 41 54 20 20 20
/dev/sdb2: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
mkfs.fat: Warning: lowercase labels might not work properly on some systems
mkfs.fat 4.2 (2021-01-31)
exfatprogs version : 1.2.9
Creating exFAT filesystem(/dev/sdb2, cluster size=32768)
Writing volume boot record: done
Writing backup volume boot record: done
Fat table creation: done
Allocation bitmap creation: done
Upcase table creation: done
Writing root directory entry: done
Synchronizing...
exFAT format complete!
Thanks for the log. I see nothing unusual. This is mine. I also do a file system check and iso checksum check:
$ sudo ./multios-usb.sh -f exfat /dev/sdb 27G
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++ Are you absolutely sure you want to use the selected device? ++
++ THIS WILL DELETE ALL DATA ON THE DEVICE ++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Are you sure? Type 'YeS' to install MultiOS-USB on /dev/sdb: YeS
Creating partitions...
Formating partitions...
Copying files...
Installing bootloader...
MultiOS-USB has been successfully installed.
$ sudo fsck /dev/sdb2
fsck from util-linux 2.38.1
exfatprogs version : 1.2.0
/dev/sdb2: clean. directories 65, files 111
$ mkdir isos
$ sudo mount /dev/sdb2 isos
$ sudo cp Win11_24H2_EnglishInternational_x64.iso isos/ISOs/
$ sync
$ md5sum isos/ISOs/Win11_24H2_EnglishInternational_x64.iso
88d80a8363a57cf643afb69a625c3fc6 isos/ISOs/Win11_24H2_EnglishInternational_x64.iso
$ sudo reboot
When I reboot, I select the newly created drive, then the multi-usb menu appears, then I scan isos, select win11 and within seconds I have the windows setup screen.
The iso checksum agrees with https://files.rg-adguard.net/file/fa4628cf-59a5-28b4-3419-d5ae36e1b51e
I do hot have a log at /run/media/user_name/MultiOS-USB/install.log
Please do the checks too.
My below command output is exactly same with yours:
sudo ./multios-usb.sh -f exfat /dev/sdb 27G
sudo fsck /dev/sdb2
This is also same (clean) result. But I notice that the file numbers are different. On mine the numbers are:
directories 61, files 110
I sent you the "tree" command output (inside USB drive after formattted USB via multios-usb.sh 0.9.9 version):
├── ISOs
└── MultiOS-USB
├── config
│ ├── 4MLinux
│ │ └── 4MLinux.cfg
│ ├── Acronis_True_Image
│ │ └── Acronis_True_Image.cfg
│ ├── AntivirusLiveCD
│ │ └── AntivirusLiveCD.cfg
│ ├── antiX
│ │ ├── antiX_base_full.cfg
│ │ └── antiX_core_net.cfg
│ ├── archbang
│ │ └── archbang.cfg
│ ├── Archman
│ │ └── Archman.cfg
│ ├── athenaos
│ │ └── athenaos.cfg
│ ├── bluestar
│ │ ├── bluestar.cfg
│ │ └── bluestar.txt
│ ├── CentOS
│ │ └── CentOS.cfg
│ ├── clonezilla
│ │ ├── clonezilla.cfg
│ │ ├── clonezilla_eoan.cfg
│ │ └── clonezilla_focal.cfg
│ ├── config.version
│ ├── damnsmalllinux
│ │ └── damnsmalllinux.cfg
│ ├── debian
│ │ └── debian-mini.cfg
│ ├── devuan
│ │ ├── devuan_desktop-live.cfg
│ │ ├── devuan-install.cfg
│ │ └── devuan_minimal-live.cfg
│ ├── dr-parted-live
│ │ └── dr-parted-live.cfg
│ ├── endeavourOS
│ │ └── endeavourOS.cfg
│ ├── euroLinux
│ │ ├── EuroLinux.cfg
│ │ └── EuroLinux-desktop.cfg
│ ├── fedora
│ │ ├── fedora.cfg
│ │ └── fedora-live.cfg
│ ├── ferenos
│ │ └── ferenos.cfg
│ ├── gentoo
│ │ ├── gentoo.cfg
│ │ └── gentoo-gui.cfg
│ ├── gparted
│ │ └── gparted-live.cfg
│ ├── grub.config
│ ├── grub_loopback
│ │ └── loopback.cfg
│ ├── grub_netboot
│ │ ├── alpinelinux.cfgnet
│ │ ├── archlinux.cfgnet
│ │ ├── debian.cfgnet
│ │ ├── main.cfgnet
│ │ ├── openSUSE_Leap_15.1.cfgnet
│ │ ├── openSUSE_Leap_15.2.cfgnet
│ │ ├── openSUSE_Leap_15.3.cfgnet
│ │ ├── openSUSE_Tumbleweed.cfgnet
│ │ ├── slax11.2.0.cfgnet
│ │ ├── ubuntu_18.04.cfgnet
│ │ ├── ubuntu_19.10.cfgnet
│ │ └── ubuntu_20.04.cfgnet
│ ├── hbcd
│ │ ├── hbcd_wimboot.cfg
│ │ └── Winpeshl.ini
│ ├── KaOS
│ │ └── KaOS.cfg
│ ├── kaspersky
│ │ └── krd.cfg
│ ├── KDE_neon
│ │ └── neon-user.cfg
│ ├── Linuxfx
│ │ └── Linuxfx.cfg
│ ├── lwRescue
│ │ └── lwRescue.cfg
│ ├── Mageia
│ │ └── Mageia_netinstall.cfg
│ ├── mx
│ │ └── MX-19.cfg
│ ├── openSUSE
│ │ ├── openSUSE-DVD.cfg
│ │ └── openSUSE-NET.cfg
│ ├── oracleLinux
│ │ └── OracleLinux.cfg
│ ├── pclinuxos
│ │ └── pclinuxos.cfg
│ ├── ploplinux
│ │ └── ploplinux.cfg
│ ├── pmagic
│ │ └── pmagic.cfg
│ ├── qubes-os
│ │ └── qubes-os.cfg
│ ├── rescuezilla
│ │ └── rescuezilla.cfg
│ ├── rocky
│ │ └── Rocky.cfg
│ ├── salientos
│ │ ├── salientos.cfg
│ │ └── salientos.txt
│ ├── shredos
│ │ └── shredos.cfg
│ ├── slackware
│ │ ├── slackware_install.cfg
│ │ └── slackware_live.cfg
│ ├── slax
│ │ └── slax.cfg
│ ├── solus
│ │ └── Solus.cfg
│ ├── tails
│ │ └── tails.cfg
│ ├── ubuntu
│ │ ├── ubuntu_mini.cfg
│ │ └── ubuntu_netboot_x64.cfg
│ ├── void-linux
│ │ └── void-linux.cfg
│ └── windows
│ ├── info.txt
│ ├── wim_file.cfg
│ ├── windows11-bypass.reg
│ ├── windows_iso.cfg
│ └── Winpeshl.ini
├── config_priv
│ ├── examples
│ │ ├── lmde.cfg-example
│ │ └── shredos.cfg-example
│ └── README.md
├── install.log
├── LICENSE
├── MultiOS-USB.version
├── README.md
├── themes
│ └── MultiOS-USB
│ ├── background.png
│ ├── DejaVuSans10.pf2
│ ├── DejaVuSans12.pf2
│ ├── DejaVuSans-Bold14.pf2
│ ├── highlight_c.png
│ ├── slider_c.png
│ ├── slider_n.png
│ ├── slider_s.png
│ └── theme.txt
└── tools
├── efitools-1.9.2-2
│ ├── KeyTool.efi
│ └── ReadMe.txt
├── mountiso
│ ├── mountiso32.exe
│ ├── mountiso64.exe
│ ├── ReadMe.txt
│ └── SHA256SUMS
├── mt86plus_7.20
│ ├── memtest32.bin
│ ├── memtest32.efi
│ ├── memtest64.bin
│ ├── memtest64.efi
│ └── ReadMe.txt
├── syslinux-6.04-pre1
│ ├── memdisk
│ └── ReadMe.txt
└── wimboot-v2.8.0-1
├── ReadMe.txt
├── wimboot.i386
└── wimboot.x86_64
I check MD5. it is same. (I remember that I donwloaded it from official Microsoft web site)
For the log file which you did not see it:
I sent you my full path. It will not work for you. Please open your file manager, and then go to USB drive directory, and then go to:
/MultiOS-USB/install.log
@JonnyTech
But I notice that the file numbers are different.
Sorry, my bad, my script adds some additional bits.
I check MD5. it is same.
Great, thanks for confirming.
Going back to your original error:
Loading boot.wim... This may take some time error: couldn't find suitable memory target.
I really do think that is a memory or security issue with your computer as I have tested it on three different devices here with no issue.
What are the results of:
mokutil --sb-state
sudo dmidecode --type memory
Can you try:
Disable secure boot Perform a BIOS / CMOS reset
Also, let's see if you can boot the .wim file directly. From the .iso file, copy /sources/boot.wim to the multi-usb iso folder and try selecting that from the menu.
I tried:
Win11_24H2_english_international_x64.iso
But I got this error:
You need to disable SB during installation. This may change soon.
https://github.com/Mexit/MultiOS-USB/blob/a1da791555f3f0832e68acef4515396766a07889/README.md?plain=1#L15
@Mexit sory I missed that. Now I try with disabling secure boot. It worked. But after few screens later, when it comes to "searching drive" screen, it gives me this error:
I search on internet. I found this information somewhere:
often due to missing files or issues with the USB drive used for installation. To resolve it, ensure your USB drive is formatted to NTFS and recreate it using the official Media Creation Tool.
@Mexit sory I missed that. Now I try with disabling secure boot. It worked. But after few screens later, when it comes to "searching drive" screen, it gives me this error:
I search on internet. I found this information somewhere:
often due to missing files or issues with the USB drive used for installation. To resolve it, ensure your USB drive is formatted to NTFS and recreate it using the official Media Creation Tool.
Did you try formatting your drive with ntfs with this command :
sudo ./multios-usb.sh -f ntfs /dev/sdX
@michael10101
I have just installed Windows 11 24H2 using MultiOS-USB installed with the command:
sudo ./multios-usb.sh -f exfat /dev/sdX