Fedora 18 and Windows 8 UEFI – How To

Someday ago, my laptop died peacefully after only two years of services (HP high quality…). So I bought a new one : wonderful ASUS, beautiful screen, etc… BUT : Windows 8 and the wonderful UEFI. The first boot was great : new Windows UI with fancy effects. The problems started when I want to install Fedora. The UEFI is not really totally integrated by all distribution and using it can be really difficult. After long hours of research (the documentation is not ready neither), I finally found a way to boot both Fedora 18 and Windows 8 on the same laptop ! I will give you a small How-to hopping that will help you in any way.

Before everything, I will consider you have the same configuration than me. Please remember to adapt every command and path to your configuration !

Before starting, please be sure to have some basic knowledge on the way Linux works. I assume you know make some simple things like editing protected files, understand the partition table of your hard drive, etc… Also, ensure to read the entire article or to have the possibility to have access to it when you start the installation process.

Step 1 – Install Windows 8

You should start by installing Windows 8. Make the partitions as you want, but remember to keep free space for the futur Fedora installation. At this step, my partitions was like this :

  • /dev/sda1 – EFI partition
  • /dev/sda2 – Restore partition
  • /dev/sda3 – Windows 8
  • /dev/sda4 – Restore partition
  • + Free space

Step 2 – Install Fedora 18

Now, we will install Fedora 18. You just have to do it the classical way. But there is a strong difference : the way to boot it ! You have to boot it in EFI mode. To do it, before booting, you have to enter in the BIOS setup and select the order of the bootable device. Place the new line corresponding to your Fedora disk in the first position, then boot it.

I can’t give you the precise way to do it because it’s different for all BIOS.

Now you can make a classic install of Fedora. For the partition management, choose the Manual way and respect this schema (referring to the Step 1, adapt to your configuration) :

  • /dev/sda1 – EFI partition
  • /dev/sda2 – Restore partition
  • /dev/sda3 – Windows 8
  • /dev/sda4 – Restore partition
  • /dev/sda5 – EFI partition (wait next step before asking what is this)
  • /dev/sda6 – mount point for /
  • /dev/sda7 – mount point for /home

Step 3 – Booting Fedora 18

As you see in the previous step, we now have two EFI partition, both of them having a different booting procedure. Now, you have to go back in your BIOS setup and choose the correct EFI to boot on. You should have many lines here, do not choose the one linked to you CD/DVD reader, neither the one linked to the Windows EFI partition.


Now, you should be booting Fedora :) (good news, now you can make what you want of your computer…)

Step 4 – Get the UUID of the Windows’s EFI partition

In the next step, we will need the unique ID of the Windows’s EFI partition. Grub will need it to know which is the partition to use when we want to start Windows. To find this ID, you have to know which is the partition with the Windows EFI. In most cases, it should be /dev/sda1, but to be sure, run this command :

# gdisk -l /dev/sda

You should see a list like this :

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       571394047   272.2 GiB   0700  Basic data partition
   4       571394048       571803647   200.0 MiB   EF00  EFI System Partition
   5       571803648       572827647   500.0 MiB   0700  
   6       572827648      1465147391   425.5 GiB   8E00

As you can see, my first partition is an EFI partition. So now, we will find the UUID with this command (be sure to put the correct partition number) :

# blkid /dev/sda1

You should have something like this :

/dev/sda1: UUID="7412-3C11" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="9d8ef616-eba8-4201-812c-2970c61b5cc9"

Keep the UUID somewhere :)

Step 5 – Updating grub to enable dual-boot

After making the first launch configuration and all updates, you should update the grub configuration to enable Windows booting without choosing the EFI program in the BIOS setup at each boot.

So now, we will create a new grub configuration (which will detect Windows installation) then edit it to fix some problems.

You will have to write in the file /etc/grub.d/40_custom. We will manually add the entry for Windows. Put this at the end of the file (WRITE YOUR UUID !!) :

menuentry "Windows" {
        insmod part_gpt
        insmod fat
        insmod search_fs_uuid
        insmod chain
        search --fs-uuid --no-floppy --set=root INSERT HERE YOUR UUID
        chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi

Finally, we will generate the grub.cfg file. Open a terminal and type the following command to ensure you have what is needed :

# sudo yum install grub2-efi os-prober shim

Then, type this command to update the grub.cfg file

# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Now you have a grub.cfg file automaticaly generated, located at /boot/efi/EFI/fedora/grub.cfg. It includes the part you add into /etc/grub.d/40_custom.


EDIT – Thanks to Katsumi Yamaoka

Katsumi have a particular configuration. Actually, Windows is installed on a SSD mapped at /dev/sdb and Linux installed on a classic HDD mapped at /dev/sda. So he was unable to boot Windows, and he didn’t know how to tell Grub on which drive Windows is installed. After some test, he found this solution :

Instead of putting the previous given content in your /etc/grub.d/40_custom, put this one :

menuentry « Windows 8 Pro » –class windows {exit}

This way, Grub will exit if you choose Windows. Also, I think that you have to put the SSD at the second position in your boot order.

For details, see this comment and this one.

Step 6 – Reboot and try it out !

If you are back here with your Windows 8 and that everything is ok, feel free to comment :) Tell me if one part is not clear or if you simply like this small How to.

This Post Has 48 Comments

  1. Interesting… I have the same problem with my new laptop (Sony vaio)!! My last wonderful laptop (HP) died after 5 and half years of activity :-(.
    Next days I will try your tips with a little luck!


  2. Albin says:

    I made some updates. Please be sure to read them before trying out. With this new way, I resolve these problems :

    * Windows not detected by grub2-mkconfig (so, os-prober)
    * Windows won’t be anyway with some various error (impossible to read disk, didn’t find the partition, etc…)

    Please tell me if everything worked for you 😉

    • jayaram says:

      Hi Albin,

      I followed all steps, I installed fedora 19, I wanted a dual boot with Windows 8.
      On step 3, I don’t understand, I must go in boot, and choose on which EFI to boot on, but I only see UEFI or LEGACY boot.

      And UEFI correspond to Windows 8 one and the other is not Fedora’s one.
      What am I supposed to do ?

      Help please .. !!

      Thanks in advance,


      • Seefu says:


        Was having the same problem as you. I’m running a Gateway notebook, 64-bit Windows 8 pre-install, and was having trouble loading Fedora 20.

        My suggestion is to have your boot disc on a DVD-RW, and choose Legacy BIOS (I had the same option). Make sure to tell your boot manager to load from the DVD drive first, and it will detect it as a bootable object, and you should see Fedora’s boot screen.

        Unfortunately, I haven’t yet figured out how to get back to Windows… best of luck.

  3. Andrej Antonov says:

    string_1 “chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi”

    string_2 “chainloader /efi/Microsoft/Boot/bootmgfw.efi”

    will be works BOTH (string_1 or string_2)? …or need EXACTLY string_1?

    thanks for the explanation in advance!

  4. Lianne Rabjohn says:

    I just want to mention I’m new to blogging and site-building and truly enjoyed this web site. Probably I’m going to bookmark your blog post . You amazingly have fantastic well written articles. With thanks for sharing with us your website page.

  5. Katsumi Yamaoka says:

    First of all, thank you very much for the good guidance. I tried the recipe,
    however I haven’t succeeded in booting Windows 8 yet. PC I bought recently
    has a 128GB ssd in which Windows 8 (uefi) has been pre-installed, and a 3TB
    hdd; hdd is mapped to /dev/sda and ssd is mapped to /dev/sdb. I made 2TB of
    hdd free, and installed Fedora 18 there as an efi boot. It was successful.
    I guess the reason why it cannot boot Windows 8 is grub doesn’t know the drive
    where Windows 8 is. How I can tell it to grub? Or did I miss something?
    (Of course I know UUID of the efi boot section of Windows, that is in /dev/sdb.
    Though I cannot tell more about the PC precisely, since I’m not home now.)

    Thanks in advance.

  6. Katsumi Yamaoka says:

    I found a solution at last. In the grub menu, `c’ invokes the command-
    line interface. I knew the `exit’ command there finishes the grub menu
    and starts Windows (I don’t know why, though). Then, I tried the `exit’
    command in the menuentry:

    menuentry “Windows 8 Pro” –class windows {exit}

    That’s all. It works as expected. Fedora 18 works as well, of course.
    As for the ordinary menuentry, that doesn’t work, I suspect it may be
    due to something different in the Windows 8 installation in NEC’s PC.
    Since I’ll never alter the Windows installation anyway, I’ll be able to
    live along with this PC.

  7. nico says:

    Hi there, I’m having a problem in the step 5. I don’t have the file /efi/Microsoft/Boot/bootmgfw.efi. Actually all .efi files in my system are:


    Should I use any of them??

    Thank in advance for your reply.

    • Albin says:

      Hello Nico.

      Are you sure to have installed Windows in UEFI mode ? It seems that your installation doesn’t create any UEFI file… When you boot on the Windows installation DVD, be sure to boot in UEFI mode !

  8. Didicus says:

    My old HP has also died a few days ago after 5 or 6 years service, and now I’ve a Dell Insprion 15R. I installed Fedora 18 on it with success thanks to your instruction, very clear and very useful !
    With 2 comments :
    – to install the Fedora in EFI mode, I have to use an installation usb, I even bought a usb for this. I’ve tried to install from a live CD or a DVD, but that won’t work, even if the BIOS propose to boot from ROM under EFI mode.
    – After all the installation, I have to boot Fedora under EFI unsecure mode. Apparently the grub cannot start windows under the secured EFI mode. Errors may appear.

  9. NintenDECS says:

    emmm it gives me this error en step 5

    -bash: error sintáctico cerca del elemento inesperado `(‘

    it is on spanish no it translate to english like

    -bash: syntax error near to unexpected token `(‘

  10. connelhooley says:

    Hi, I have two options in my grub, Windows 8 and Windows Recovery. I have followed these steps but the new option for Windows does not appear in my Grub. What does “BE SURE TO FIT TO YOUR CONFIGURATION !” mean? Do I have to do something else to add it to my Grub list?

    • Albin says:


      I don’t really understand your problem. So you have one option for Windows 8 in your grub. Does it launch Windows ? What is the problem here ?

      You said you have two options, both of them for Windows. Don’t you have something for Linux ?

      About “fit your configuration”, it’s about some commands I give in the article. Some of them depend of your hard drive configuration (so, your hard drive number). You HAVE to use YOUR values and not mine. I give them only for example !

      Good luck anyway :)

      • connelhooley says:

        Hi, I have options for Windows 8, Windows Recovery and Fedora. Fedora boots fine but I cannot boot into either Windows entry as I’m getting the error I’ve described here:

        After following your guide I was expecting an entry called “Windows” to appear along side the two options I already have due to the “menuentry “Windows” {” line in step 5.

        • Albin says:

          I think there is a problem with your grub.cfg file, then.

          Are you sure to have used this command : grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg ?

          Then, when you typed it, no errors appeared ? If there is no “Windows” option in your grub.cfg file, but that you have correctly added in /etc/grub.d/40_custom, I think there is a problem during the creation of the grub.cfg file.

          Be sure to check this step 😉

          • connelhooley says:

            Thanks for your help :)
            I have edited the 40_custom file to include the windows entry like you stated (with the correct uuid):
            exec tail -n +3 $0
            # This file provides an easy way to add custom menu entries. Simply type the
            # menu entries you want to add after this comment. Be careful not to change
            # the ‘exec tail’ line above.

            menuentry “Windows” {
            insmod part_gpt
            insmod fat
            insmod search_fs_uuid
            insmod chain
            search –fs-uuid –no-floppy –set=root E883-1510
            chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi

            But for some reason the grub2-mkconfig isn’t picking it up:
            [connel@localhost ~]$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
            [sudo] password for connel:
            Generating grub.cfg …
            Found theme: /boot/grub2/themes/system/theme.txt
            Found linux image: /boot/vmlinuz-3.8.9-200.fc18.x86_64
            Found initrd image: /boot/initramfs-3.8.9-200.fc18.x86_64.img
            Found linux image: /boot/vmlinuz-3.6.10-4.fc18.x86_64
            Found initrd image: /boot/initramfs-3.6.10-4.fc18.x86_64.img
            Found linux image: /boot/vmlinuz-3.8.9-200.fc18.x86_64
            Found initrd image: /boot/initramfs-3.8.9-200.fc18.x86_64.img
            Found linux image: /boot/vmlinuz-3.6.10-4.fc18.x86_64
            Found initrd image: /boot/initramfs-3.6.10-4.fc18.x86_64.img
            Found Windows Recovery Environment (loader) on /dev/sda3
            Found Windows 8 (loader) on /dev/sda5

  11. Neoboard says:

    Thank you very much for your “how to” !

    I f*cked up UEFI boot on my ZenBook UX31A some weeks ago by switching Ubuntu for Fedora and this is the first tutorial I found which is really clear and worked fine (the most difficult thing was to get a UEFI compatible USB key of Windows 8. The only way I found was to get the ISO from the Upgrade Tool you can get on Windows’ web site, if it can help …).

    Thank you again !

  12. distel says:

    Thanks very much ! It worked for me on a Thinkpad Edge with default BIOS settings and pre-included UEFI install of Windows 8. However the Windows boot entry (as well as wireless) will only work if I set afterwards SecureBoot to Disabled in the BIOS.

    • jo,
      i have read your post and answer is simple : the computer is trying to tell you that you are booting with a uefi / gpt partitioned disk whereas you have a mbr partitioned disk. As i wrote in my post the 2 partitioning schema cannot coexist. Thus you must choose : windows 8 64 bit( uefi + gpt ) or windows 32 ( legacy + mbr ) . Choice of linux 32 / 64 bits depends on how your HD has been formatted / partitioned. Hope have helped.

  13. Hi to all, I’ve read all the posts you made, and I think that some points need to bet addressed more clearly. First Windows 8: Windows 8 ( and 7 and Vista ) comes into two flavors : 32 & 64 bit. Only the 64 bit versions boot from UEFI, 32 bit use standard ( legacy ) boot. This is why there are no /efi/Microsoft/boot ….So if you are 32 bit Windows will never start from UEFI and you have to start in legacy mode. Remember that legacy mode implies MBR partitioning while UEFI needs GPT and the two cannot coexist. Second : remember “secure boot” . Windows prefers to be booted in secure boot, so adjust your bios settings accordingly if it does not start from grub menu. Third : if it is just to add some code to grub.cfg , add it manually … so you do not have to run grub-mkconfig. Fourth : remember that the actual grub.cfg resides in the Fedora partition while the grub.cfg file in
    /EFI/Mint/grub.cfg is a mere stub that instructs grub to use the real grub.cfg in the filesystem. All the best to all.

    • Albin says:

      Hi Piter.
      Thank you very much for adding these informations. I am sure a lot of people will find them useful.
      Anyway, I think that writing modifications directly in grub.cfg is not a great idea. Actually, at each Fedora’s kernel updates, the grub.cfg will be re-written to add the new entry, and I am almost sure that your custom entry will be deleted too.

      Again, thank you very much anyway :)

  14. randomuser says:

    Why are you creating a separate EFI partition for Fedora? The EFI partition is intended to be shared, and the only reason you had to go through anything after Step 3 was because you were not using it as a shared partition.

    • Albin says:

      Hello randomuser.

      Some months ago, I came on the #fedora irc channel to ask how can I use Fedora and Windows on the same computer, with UEFI. At this moment, nobody answered me so I had to find a solution on my own. I spend a lot of time to find informations, as Fedora doesn’t provide any guide on how to do it (with dual boot !).

      After hours of research on the Internet, I finally succeed to install both Fedora and Windows. I think you are a Fedora worker/contributor, so feel free to link the official documentation of how to achieve this task or a way to understand how EFI works. Actually, it is not so easy for non-expert users to understand it and not much ressources were available when I wrote this article.

      I will be happy to edit it as soon as I have some informations about how to make a dual boot with Windows 8 and Fedora 😉

      • randomuser says:

        Hey Albin,

        Work on such a guide is currently in progress. Watch for the new guide in coming weeks. The UEFI Secure Boot Guide there might also put UEFI into context for you. In the meantime, thanks for sharing your solution!

  15. Hi Albin,
    I agree, my suggestion was to give my method a try, and if ok, then incorporate in the right place. Actually i do so because this is easier to implement and if something goes wrong you can anyway boot. This is because I own a Dell Precision M6700 which has a bad Bios implementation ( A09 ), and if grub-mkconfig has some problems in writing the whole machine becomes unbootable… :-((
    As of now i can boot : Windows 8 64 bit, Ubuntu & Fedora 64 bit as well as Slackware 64 bit…
    It took a lot of fiddling, but as latin said “gutta cavat lapidem” ….

  16. kaizoku says:

    Hi, i follow all step, I installed Korora19 based on fedora, I wanted a dual boot with Windows 8.
    Due to non-compatibility with my graphic card, I can only install Korora19 or I get ugly glitches.

    On step 3, I don’t understand, I must go in boot, and choose on which EFI to boot on, but I only see UEFI or CMS boot.

    And UEFI correspond to Windows 8 one and the other is not Fedora’s one.
    What am I supposed to do ?

    And when I want to check the UUID I only see “Basic partition”…

    Help please .. !!

    • jayaram says:

      HI rafa,

      I have done the exactly as mentioned as above specified by albin, can you please help me by sending the process you used.

      Thanks in advance.


  17. Aditya says:

    I have only one efi partition of 200mb
    i did the procedure but it is not working, the menuentry is done but at the time of boot when i click windows setup, it says unable to find command chainloader(hd0
    please help me with this.

    • Albin says:

      Hi Aditya.

      If you read the Step 2, I wrote a specific partition structure to use. If you only have one efi partition, maybe it’s because you do not make it this way. Please try again following exactly all the steps.

  18. zeb says:


    Thanks for this post.

    My windows efi part has no UUID, just an PART-UUID :

    sudo blkid
    /dev/sda1: LABEL=”RECOVERY” UUID=”4AC2D173C2D1642B” TYPE=”ntfs” PARTLABEL=”Basic data partition” PARTUUID=”952fff0c-51ff-49b6-9c9c-41014c4410e5″
    /dev/sda2: PARTUUID=”12993412-51c9-4322-9c22-3243bc6d39c4″
    /dev/sda3: PARTLABEL=”Microsoft reserved partition” PARTUUID=”0662a6c2-a0e5-4843-ab05-11beda0ca48e”
    /dev/sda4: LABEL=”ACER” UUID=”DAC8BC47C8BC2423″ TYPE=”ntfs” PARTLABEL=”Basic data partition” PARTUUID=”2e1e251c-13d4-482c-9b54-a9238830225a”
    /dev/sda5: LABEL=”Push Button Reset” UUID=”D0B6D520B6D5083C” TYPE=”ntfs” PARTLABEL=”Basic data partition” PARTUUID=”5da7e450-a048-4c86-acc1-7afc1a5988ab”
    /dev/sda6: UUID=”adf9c6ff-f459-4165-a7f2-5934f7358ee3″ TYPE=”ext4″ PARTUUID=”4a6c202f-04b0-460a-962c-e7d6ddef16b8″
    /dev/sda7: UUID=”F1AC-B9C9″ TYPE=”vfat” PARTUUID=”2effa5a9-8c9a-499b-97cd-016d8eab8ba7″
    /dev/sda8: UUID=”leKffy-MobN-VDde-KlfH-IppP-KYCJ-3HJkjf” TYPE=”LVM2_member” PARTUUID=”d302803a-2a5b-49f4-af66-9743b7ff9243″
    /dev/mapper/fedora-root: UUID=”c53c18e1-3ae4-4fc4-8513-3fc491eca048″ TYPE=”ext4″
    /dev/mapper/fedora-swap: UUID=”da1a1c3d-2981-43db-9e13-a7719e7734a5″ TYPE=”swap”
    /dev/mapper/fedora-home: UUID=”207bad77-7133-460b-be39-b8edce57edeb” TYPE=”ext4″

    sudo gdisk -l /dev/sda
    GPT fdisk (gdisk) version 0.8.7

    Partition table scan:
    MBR: protective
    BSD: not present
    APM: not present
    GPT: present

    Found valid GPT with protective MBR; using GPT.
    Disk /dev/sda: 976773168 sectors, 465.8 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 08CD267B-310D-4B25-9608-8FDD07EA3241
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 976773134
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 7403501 sectors (3.5 GiB)

    Number Start (sector) End (sector) Size Code Name
    1 2048 821247 400.0 MiB 2700 Basic data partition
    2 821248 823295 1024.0 KiB EF02
    3 1435648 1697791 128.0 MiB 0C01 Microsoft reserved part
    4 1697792 117954559 55.4 GiB 0700 Basic data partition
    5 937347072 976773119 18.8 GiB 2700 Basic data partition
    6 117954560 118978559 500.0 MiB 0700
    7 125767680 126799871 504.0 MiB EF00
    8 126799872 937347071 386.5 GiB 8E00

    Should I modify the sda2 part or change menuentry ?

      • zeb says:

        [solved] Thanks for the links it helped me find the good efi file :) And again thank for this post.

        There was a problem with the EFI partition, sda2 was not the right one (having no UUID is a clue!) , sda3 is, but it was destroyed (installing fedora in legacy bios mode (not EFI)). But I had copy of that partition so I restored it, so i can find the sda3 UUID, follow your instruction and solved the problem :)

        ( when i installed fedora with legacy bios, it resized sda3 and add a bios_grub partition. So i had to remove it, and create a new partition with the exact size of the backup image of sda3 (windows EFI partition)(thanks ‘parted’), then restore it ).

        my /etc/grub.d/40_custom is now :

        exec tail -n +3 $0
        # This file provides an easy way to add custom menu entries. Simply type the
        # menu entries you want to add after this comment. Be careful not to change
        # the ‘exec tail’ line above.
        menuentry “Windows 8″ {
        insmod part_gpt
        insmod fat
        insmod search_fs_uuid
        insmod chain
        search –fs-uuid –no-floppy –set=root F6D1-EEB9
        chainloader (${root})/EFI/Boot/bootx64.efi

        (windows 8 64 bit, Acer Aspire E1-531)

  19. says:

    Hello! This is my first visit to your blog! We are a collection
    of volunteers and starting a new project in a community in the same niche.
    Your blog provided us useful information to work on. You have done
    a marvellous job!

  20. egybayo says:

    I have a NTFS format disk and i got the UUID for the drive that carries my Windows 8 OS, and i changed the type in the editable lines you posted up in step 5 , but nothing really happened .. please if there’s another way around please tell me

    And also i have another problem, i cannot Mount any of the partitions which have the NTFS format, is there any solution for that ?!

  21. Necross89 says:

    Thanks Dude,
    now that I have understood the structure of this mess and together the information in this page I did it!!.

  22. An outstanding share! I have just forwarded this onto a co-worker who had
    been doing a little homework on this. And he actually bought me lunch because I found
    it for him… lol. So allow me to reword this…. Thank YOU for the meal!!
    But yeah, thanx for spending time to discuss this topic here on
    your web site.

  23. Anil says:

    I have been strugglign to do this for over 2 days now. I could get good instruction set to do it step by step. My learnings.

    -I think you cant do Linux in UEFI and then winodws. (May not be true) I ended up blowing Linux and first doing windows and then Linux. If you can do Linux first and then Windows, let me know.

    -Not sure, why two seperate EFI partitions are needed. Cant it be shared? If yes, how exactl? step-by-steo guide needed

    -With all these UEFI stugg, boot times are high. I have Asus Maximum Vi Hero and total boottime is 22 seconds. (including firmware.) Not sure what can be done to reduce it. Major time is taken by UEFI firmware.
    Startup finished in 10.394s (firmware) + 4.455s (loader) + 1.098s (kernel) + 941ms (initrd) + 1.828s (userspace) = 18.718s

    -With secure boot enabled, fedora does not boot,. It needs certain kernel-keys. Could not find step-by-step guide to do it.

    Thank you very much for the guide. I followed it and di not have single issue.

Leave A Reply