0

I have a USB stick formatted with GPT partitions. Some of the partitions are ext2, some are ext4, some are custom and funky. However, there is also a standard EFI partition, and a standard vfat partition.

In Windows 7, both the EFI partition and the standard VFAT partition are visible and mount normally. But Windows 8.1 prompts to reformat the drive when it's inserted.

I'm not surprised if Win 8 hides the EFI partition, but I didn't expect it to prompt for reformatting. I want to leave existing partitions alone, but have a VFAT partition that Windows 7, 8, and 8.1 will mount and display normally.

Exactly how does Win 8 decide if a device needs to be formatted?

1 Answer 1

1

I have no personal experience with Windows 8. That said, Windows has long treated removable disks as "superfloppies," which in this context means any removable disk that's either unpartitioned or that has just one partition on it. If you put two FAT partitions on a USB flash drive, Windows (up to Windows 7) will let you mount the first partition, but will ignore the second one. My first guess is that Windows 8 (or maybe just 8.1) is taking this to the next level and is refusing to let you use a partitioned medium at all. If so, I don't know of an obvious workaround to this problem.

Another possibility is that you're running into partition type code issues. This could take either or both of two forms:

  • Your Linux partitions might have the wrong type code set. Until two years ago, Linux used the same type code as Windows to identify its filesystems on GPT disks, which creates the possibility of problems. Two years ago, though, a new GPT type code was created for Linux filesystems specifically. Unfortunately, the libparted project (which is used by parted, GParted, and most other Linux partitioning tools) has been slow in adopting support for this new type code. If you want to use it, the best bet is to use gdisk, sgdisk, or cgdisk to set the type code for your Linux partitions from 0700 to 8300. See this page for more on this topic.
  • Your FAT partition might have the wrong type code set. In gdisk, sgdisk, or cgdisk, ensure that its type code is set to 0700. (Unfortunately, parted, GParted, and other libparted-based tools don't give you sufficiently good control of this feature to even reliably know how it's set.)
1
  • I know that some of the Linux partitions are using the same code as vfat partitions, and thought that was the spec according to some of what I read. There are also some partitions that use legit, but very obscure partition types (ChromeOS specific values) which might be viewed as 'unknown'.
    – DonGar
    Commented Oct 31, 2013 at 19:06

You must log in to answer this question.

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