Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to do it because I want to install Windows 7 and my BIOS menu doesn't appear; it skips to grub2 menu at start, but that's another story... Is there a way to boot the Windows 7 installation iso directly from grub2?

share|improve this question
" my BIOS menu doesn't appear" But have you tried to get into the BIOS? – Mitch Oct 28 '13 at 7:12
What if i format the HDD? Will windows boot then? :) – user351688 Nov 24 '14 at 15:57

Yeah, you'd think something like this would work:

menuentry "Boot Windoze" {
  search -f "--set-root /Winblows.iso"
  drivemap "/Winblows.iso" '(hd32)'
  drivemap '--hook' ''
  set root='(hd32)'
  chainloader +1

But Windows will just balk at that.

If you happen to have at least 4GB RAM, you can opt to load the whole DVD iso in memdisk and boot off that. To do that, download SysLinux and extract the memdisk file into your boot directory. Then you need to add code to Grub2 something like this

menuentry "Boot Windoze" {
  search -f "--set-root /Winblows.iso"
  insmod memdisk
  linux16 /boot/memdisk iso
  initrd16 /Winblows.iso

However, I'm not going to even test the code, as putting 3+ GB of data into RAM is just plain wrong (from an idealogical standpoint). No, I really wanted what you want, but in the end I put the Windows install on a partition on a USB using the Windows 7 USB/DVD download tool and chainloaded to that. Sorry there doesn't seem to be any other way that I can see.

share|improve this answer
First code will boot windows but fail after sometime as windows don't know where the iso is mounted – totti Feb 18 '14 at 9:26
Second code may not work, as it will not work with iso of Ubuntu – totti Feb 18 '14 at 9:28
The OP is referring specifically to Windows 7. Been able to test that? – Warpspace Mar 14 '14 at 5:28
thank you for taking care to make direct answers. – n611x007 Jun 12 '14 at 10:06

Booting the actual ISO with grub legacy or grub2 probably won't work, but with older windows versions (i.e. XP) it was possible to unpack the i386 folder from the ISO to the USB stick, and then use grub4dos to call the bootloader:

title windows installer via setupldr.bin
find --set-root /i386/setupldr.bin
chainloader /i386/setupldr.bin


title windows installer via /bootsect.bin
find --set-root /i386/setupldr.bin
chainloader /bootsect.bin

I didn't test it with newer windows versions or with newer hardware.

With grub2 apparently something like this could work, again untested:

menuentry "Windows 7 (bootmgr)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    ### A: either use this line or the next one, but not both
    set root='(hd0,msdos1)' 
    ### B: 
    ### search --no-floppy --fs-uuid --set=root ____INSERT_PARTITION_UUID_HERE___
    ntldr ($root)/bootmgr

Option A assumes your bootable USB stick/HDD is the first device and has a msdos style partition table. Adjust to match your configuration. If your boot device has a GPT partition table, then most likely you'll need to use (hd0,gpt1).

Option B uses the drive's unique UUID, which can be seen on Linux with sudo blkid or on OSX with e.g. diskutil info disk0s1 (or Disk Utility > Info).

Update: a working entry for grub2 with the files from the installer DVD unpacked to the root directory of a USB stick formatted MBR/FAT32:

menuentry "Windows 7 installer" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    search --no-floppy --fs-uuid --set=root (UUID of usb stick)
    ntldr /bootmgr
share|improve this answer
Nice. I did use --set=root --fs-uuid UUIDHERE (changed order) instead, though (couldn't say whether it was required or not). Thanks – Jan Kyu Peblik Jul 26 at 0:15

Technically installing from windows's .iso file can't be possible. You can boot from the .iso using grub but after that Windows will loss contact with the mounted location or it is not capable of it. So both grub & Windows should aware of mount and boot. Currently Windows doesn't support.

So you need to extract/copy the content of .iso to root of a partition and then chain-load into it using grub.

share|improve this answer
good idea to share knowledge, but you could add directly answering the question in technical manner. namely reuse the current text as a disclaimer but then you could expand the "you can boot from the .iso" into menuentries or something. that way you'd make exact which method(s) you imagined to achieve what was asked, although which you know not to work for the assumed purpose. this would also disambiguate the count of solutions that you did consider. – n611x007 Jun 12 '14 at 9:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.