3

Currently I have Arch Linux installed as my primary OS, and wish to install Windows 8.1 as a secondary so I may utilize certain special hardware (a capture card which has no Linux drivers at the moment) without abandoning my main OS.

I have an EFI partition formatted as FAT32 as my first partition, which is mounted in Arch as /boot and is where GRUB and the proper EFI boot files are installed. There is 477MB of free space on that partition, so I would imagine Windows 8.1 would be able to reuse that partition to store its own EFI files, and simply register a new entry with the UEFI firmware.

Regardless of whether it does reuse that partition or not, I have ~750GB of unallocated space on my hard drive which I will be giving to Windows 8.1. When I go to install Windows 8.1 to this unallocated space, I enter my product key, select custom installation, then select the unallocated space to install Windows to. It begins installation briefly, but then an error pops up claiming that my EFI partition is formatted as NTFS. This is false, I know for a fact that it is formatted as FAT32.

A quick google search suggested that perhaps the USB installation medium I am using is formatted as NTFS, so I double checked that and it is indeed formatted as FAT32. I have no idea what I am doing wrong or why it thinks my EFI partition is formatted as FAT32 when it is not.

EDIT: Here is the output of gdisk, as requested

gdisk -l /dev/sda  
GPT fdisk (gdisk) version 0.8.10  

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

Found valid GPT with protective MBR; using GPT.  
Disk /dev/sda: 3907029168 sectors, 1.8 TiB  
Logical sector size: 512 bytes  
Disk identifier (GUID): EB7B1BE6-5D74-44D9-81FD-616FCC19F20C  
Partition table holds up to 128 entries  
First usable sector is 34, last usable sector is 3907029134  
Partitions will be aligned on 2048-sector boundaries  
Total free space is 1674610797 sectors (798.5 GiB)  

Number  Start (sector)    End (sector)  Size       Code  Name  
   1            2048         1050623   512.0 MiB   EF00  EFI System  
   2         1050624        68159487   32.0 GiB    8300  Linux filesystem  
   3        68159488       135268351   32.0 GiB    8300  Linux filesystem  
   4       135268352      2232420351   1000.0 GiB  8300  Linux filesystem  

It does not output the filesystems. If you want that, here is a screenshot of GParted's results for /dev/sda

4
  • Could you update the post with the output of gdisk -l /dev/sda to make sure? Commented Oct 1, 2014 at 9:52
  • Done. The post now has the full output of gdisk along with a screenshot of gparted's output.
    – OniLink
    Commented Oct 1, 2014 at 9:57
  • 1
    In case you do not resolve this, have you tried a VM? I still use a W98 VM for an old, but good laser printer whose drivers were never updated to W2000 and beyond. It works perfectly in the VM, even though there is no host support.
    – AFH
    Commented Oct 1, 2014 at 10:33
  • @AFH I have not attempted a virtual machine of Windows 8.1. That is a good idea, if all else fails. Thanks for the suggestion.
    – OniLink
    Commented Oct 2, 2014 at 0:58

1 Answer 1

0

EFI partition should be mounted on /boot/efi, not /boot. This is where GRUB puts EFI loader. /boot is for kernel image and initrd. I am not convinced you are actually booting in EFI mode... Check /sys/firmware/efi exists.

Not sure what Windows wants from you, but try the following:

  • mkdir /boot.NEW, move everything from /boot to /boot.NEW
  • umount /boot
  • rmdir /boot
  • mv /boot.NEW /boot
  • mkfs.msdos -F 32 /dev/sda1
  • mkdir /boot/efi
  • mount /dev/sda1 /boot/efi
  • apt-get install --reinstall grub-efi-amd64

Check that EFI entry is installed: sudo efibootmgr

Reboot in EFI mode; if successful, go on with Windows installation.

You must be in EFI mode for GRUB to install EFI image. If you are not (/sys/firmware/efi/ does not exist), you have to boot from EFI stick or CDROM in EFI mode and then chroot before you do the above, like

mount /dev/sda2 /mnt
cp /etc/resolv.conf /mnt/etc/
mount -B /dev /mnt/dev
mount -B /proc /mnt/proc
mount -B /sys /mnt/sys
mount -B /dev/pts /mnt/dev/pts
chroot /mnt
6
  • /sys/firmware/efi does exist and efibootmgr functions perfectly fine. The EFI files are stored in /boot/EFI/arch_grub, but the whole partition is mounted at /boot. I will attempt this and get back to you.
    – OniLink
    Commented Oct 1, 2014 at 17:51
  • This did exactly nothing to fix the problem, unfortunately. Still the same exact error, even after following the instructions exactly with one adapted to work on Arch.
    – OniLink
    Commented Oct 1, 2014 at 22:35
  • At least your kernel and initrd are now on the root partition, not on EFI partition, which is where they belong... How about...deleting EFI partition altogether and letting Windows 8 to create it from the scratch the way they want it. Then you can add Linux boot entry as above, having booted from Live stick.
    – ArunasR
    Commented Oct 2, 2014 at 8:04
  • Tried that. That seems like it should work. It makes complete sense after all. If Windows is detecting the EFI partition and detecting it incorrectly, getting rid of the falsely detected partition should fix it, you'd think. Nope. Same exact error. Windows confounds me.
    – OniLink
    Commented Oct 2, 2014 at 10:10
  • I assume you have seen this. Try allocating and assigning all the required partitions manually in "custom setup" screen. Unfortunately I did it the other way around - installed Linux after Windows 8, and they live together happily. I cannot provide definite recipe how to install Windows after Linux.
    – ArunasR
    Commented Oct 2, 2014 at 10:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .