MultiOS-USB icon indicating copy to clipboard operation
MultiOS-USB copied to clipboard

Boot Windows directly from the ISO

Open a1ive opened this issue 2 years ago • 8 comments

Nice project. I see on windows_support.md that it says

Currently, you have to extract the files from the ISO image. In the future, we plan to run Windows directly from the ISO image.

How are you going to implement it? Any good ideas? I might be able to help you.

a1ive avatar Oct 23 '21 11:10 a1ive

I was thinking of wimboot and pure grub2 with patches (wimboot, secure boot etc). I would be very happy if you have any information, tips.

Mexit avatar Oct 24 '21 09:10 Mexit

I was thinking of wimboot and pure grub2 with patches (wimboot, secure boot etc).

We need to patch to either GRUB2 or wimboot. I've noticed that you are using OpenSUSE fork of GRUB2. If we add additional patches to it, it may conflict with future OpenSUSE commits. As for wimboot, this won't cause too much trouble as it has a relatively small amount of code.

a1ive avatar Oct 24 '21 11:10 a1ive

I've noticed that you are using OpenSUSE fork of GRUB2.

I am currently using grub2 from Ubuntu. The one from openSUSE is just a source code repo.

It is more complicated than I thought. I need some time to familiarise myself with it all.

Mexit avatar Oct 24 '21 19:10 Mexit

I have ported wimboot to gnu grub 2.06 (x86_64-efi), and grub2-ubuntu may work without modification. ~~wimboot.tar.gz~~ wimboot.tar.gz mv wimboot.tar.gz grub-core/ tar -xf wimboot.tar.gz then edit grub-core/Makefile.core.def, and add the following content:

module = {
  name = wimboot;
  common = wimboot/main.c;
  efi = wimboot/efiboot.c;
  common = wimboot/huffman.c;
  common = wimboot/lzx.c;
  common = wimboot/vdisk.c;
  common = wimboot/wim.c;
  common = wimboot/wimfile.c;
  common = wimboot/wimpatch.c;
  common = wimboot/xpress.c;
  enable = x86_64_efi;
  enable = i386_efi;
  cflags = '-fshort-wchar';
  cppflags = '-I$(srcdir)/wimboot';
};

usage:

menuentry "wimboot" {
  wimboot @boot.wim=/wim/pe.wim \
          @bootmgfw.efi=/wim/bootmgfw.efi \
          @bcd=/wim/bcd \
          @boot.sdi=/wim/boot.sdi
}

a1ive avatar Feb 27 '22 02:02 a1ive

Thank you very much. I will test it in the coming days.

Mexit avatar Mar 01 '22 18:03 Mexit

@Mexit any comments on my solution?

a1ive avatar Mar 31 '22 12:03 a1ive

any comments on my solution?

It works!

At this moment I tested your solution with GRUB without any modifications.

Can your solution work in the BIOS version as well?

Mexit avatar Apr 03 '22 21:04 Mexit

Can your solution work in the BIOS version as well?

No. We can only use linux16 /wimboot; initrd16 ....

a1ive avatar Apr 04 '22 00:04 a1ive