UEFI + Dual Boot Windows 7 / SuSE Install Procedure

I finally got my dual boot Windows 7 / openSuSE 12.2 system up and running with UEFI bios, and a working GRUB2 boot menu. I thought I’d throw it up here because I never found any good write ups, and anything I did find was unnecessarily long.

  1. Boot GParted on a USB or CD. One can use Linux Live USB (google search) burn the boot iso from the gparted website.

    • Use GParted to delete any partitions on the dive you want to put both windows and suse on.
    • Select ‘create new’, and click partition table. Drop down the advanced menu and select ‘GPT’.
    • Create your windows partition size, and select the file system to be NTFS.
    • Create a SWAP partition.
    • Create a EXT4 root partition ( I did 15 GB).
    • Create a EXT4 home partition (I did the remaining space, but left 5 GB unallocated).
    • Leave 3-5 GB unallocated.
  2. Reboot with the Windows DVD in, hit the boot menu, and make sure to select ‘UEFI: DVD-RAM’, and not just ‘DVD-RAM’. You need the UEFI version.

  • Install windows on the NTFS partition described above. There should be no error, and it should automatically just install with no problems.
  • It should boot into windows when it’s done.
  • Shut down.
  1. Boot with the openSuSE DVD in. Select boot menu, and make sure to again, select ‘UEFI: DVD-RAM’, and no the regular ‘DVD-RAM’.
  • When it gets to the disk to install. It will propose format your HOME and ROOT and a new partition called BOOT ( FAT16 file system).
  • We don’t want it to format the BOOT partition, or else won’t be able to boot into windows easily.
  • Select ‘edit partition setup’.
  • Right click the boot partition, and select ‘do not format partition’. Make sure the mount point says ‘/boot/efi’.
  • Click finish, and continue.
  1. It should now boot into SuSE with a GRUB2 menu with only openSuSE and openSuSE advanced options menu entries.

  2. Open a terminal, get super user, and type :

 blkid 
  • Look for the output that says ‘TYPE=“vfat”’. You need the UUID. Copy this to your keyboard or write it down.
  1. edit /etc/grub.d/40_custom as super user ( I used VI).
  • Add the following lines:
menuentry "Windows 7" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root 080F-E6DA
chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
}

  • replace the 080F-E6DA in the above code with whatever your UUID was for your boot partition.
  1. run the following commands:
 grub2-efi-mkconfig -o /boot/grub2-efi/grub.cfg 
  • This will recompile your grub2 menu settings.
  1. Reboot and you should now have an option for ‘Windows 7’ in your GRUB2 boot menu.

Hope this helps or saves some people some time when installing windows and linux on a UEFI bootloader.

Good info. I might ask if you look at my grub2cmd bash script if there is anything one would add to it to help? I know that you must do a lot of things before openSUSE is up and running, but if I can add some help, I would love to do so.
GNU Grub2 Command Listing Helper with --help & Input - Blogs - openSUSE Forums

Thank You,

It’s my first post on this forum, so I’d like to say “Hi”. I’m trying dual boot Windows 7 and new openSUSE 12.3 (both x64). I have a new Lenovo y580 laptop with SSD disk. I did as it was adviced here: installed Win 7, shrank partition via Gparted Live CD, installed openSUSE 12.3 with grub2-efi and /boot/efi mounting point (all from DVD in UEFI mode). I checked that after shrinking partition Windows started without problems. After 12.3 installation there was automatically created Windows entry in Grub, but it didn’t work. So I did as is suggested in this thread: Checked

# grub2-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi E820-BB5D

and edited 40_custom file in /etc/grub.d with new entry (excacly the same as in post above)

menuentry 'Windows 7' {   insmod part_gpt   insmod fat   insmod search_fs_uuid   insmod chain  search --fs-uuid --no-floppy --set=root E820-BB5D   chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi  }
Then I updated Grub settings with command   
grub2-efi-mkconfig -o /boot/grub2-efi/grub.cfg

After that new entry exists while starting computer, but don’t work. There appear smaller black window (like while starting opensuse) but nothing happens. I have to power off computer. Note that Windows starts when I choose in UEFI bootloader. I’ve read that previous versions of opensuse sometimes created hybrid MBR partition. As I understand mine seems to be appropriate

# fdisk -l  WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.  Disk /dev/sda: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xb41f121f     Device Boot      Start         End      Blocks   Id  System /dev/sda1               1   234441647   117220823+  ee  GPT
 What I'm doing wrong? Do you have any idea how to make Grub to load Windows?

And a “Hi” back to you. Welcome aboard.

It is generally best to start your own thread, rather than try to discuss your problem in a thread started for a different purpose.

As best I can tell, you have done everything correctly. You have bumped into Bug 809038

It might be useful to post the output of


# gdisk -l

For now, either boot with the UEFI boot manager, or disable secure boot. Once a good fix comes out for that bug, it will start working with secure boot enabled.

Thank you for reply. Printout you asked for

 # gdisk -l /dev/sda GPT fdisk (gdisk) version 0.8.5  Partition table scan:   MBR: protective   BSD: not present   APM: not present   GPT: present  Found valid GPT with protective MBR; using GPT. Disk /dev/sda: 234441648 sectors, 111.8 GiB Logical sector size: 512 bytes Disk identifier (GUID): A5F48343-58DF-4482-8BAC-CBD7FBC97C12 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 234441614 Partitions will be aligned on 2048-sector boundaries Total free space is 2925 sectors (1.4 MiB)  Number  Start (sector)    End (sector)  Size       Code  Name    1            2048          206847   100.0 MiB   EF00  EFI system partition    2          206848          468991   128.0 MiB   0C01  Microsoft reserved part    3          468992       202983423   96.6 GiB    0700  Basic data partition    4       202983424       234440703   15.0 GiB    0700   

But I have Windows 7. I thought secure boot concern Win 8. Am I correct? (because I didn’t mark “enable secure boot” in grub settings). PS

As there is a few similar threads on the forum I intentionally wanted to attach one of them. If moderator think it’s better to section my question off, please do (sorry for a problem).

I don’t know what Win7 does with secure boot, if anything. The main concern is with Win8, which mandates secure boot support.

On my system, the grub menu item worked for Windows 8 with secure-boot disabled, but not with it enabled. You might have a different problem.

Hi piotrekk, sorry I didn’t see your reply earlier. You said you ‘shrank’ your windows partition … the way I did it was to first boot up with GParted and delete EVERYTHING, and reformat the drive as a GPT type in the ‘advanced’ options.

I think this step is crucial to get it working correctly. Did you do this?

Also post the output of ‘blkid’.

  • lotus360

Hi Lotus360. Many thanks indeed for clear and helpful advice. Couldn’t be better. Will try it tonight.
I assume that once done and provided I have included a spare partition or two I should be able to add other operating systems and have them show on Grub2 menu. Am I right and are there any potential problems to doing this?

You’re welcome. I had to come back here because I am upgrading to 13.1 tonight, and wanted to review what I had to do to get everything working correctly.

Sorry I did not see your reply earlier, I’ve been so busy with school, and need to turn on my email notifications (I will do this now).

I’m sure you’ve figured out your question by now, but I don’t foresee any problems with adding different menu entries for other partions/operating systems, as long as they are also UEFI / GPT partition style setups.

Hi all,

I would like to get dual boot Win7/64 + OpenSUSE 13.1 on my ASUS Zenbook UX31A (SSD disc 256MB). I completely deleted preinstalled Win8 by using Gparted (all partitions was canceled), created
GPT partition table and followed your mini HowTo. But If I want to install Win I get Error "Windows cannot be installed to this disk. The selected disk is of the GPT partition style."
I tried to change to MBR, but in this case I cannot learn my Grub2 to run Windows after selection this OS during the boot. Can you help me, pls. Thx for advice

Are you sure you booted the Windows DVD in UEFI mode and not regular?

It should give you multiple options, something like:
DVD-RAM or UEFI DVD-RAM.

If you don’t use Windows for games it is much better to run Windows in a virtual machine. I recommend Virtual Box but there are many possible solutions.

Hi all and thanks for replies! I am sorry, I did big mistake during the preparing of USB installation media for Win7. I used Rufus software
with GPT partition scheme for UEFI computer and then used howto from first post of this topic and it works. And btw, I need Win because
of CS Global Offensive :-). Thx again