2

I carry an USB thumbdrive with me. It contains a data partition, an Ubuntu Linux installation and an EFI System Partition. It uses a hybrid MBR so I can boot from it on modern EFI-only and legacy BIOS systems. In both partition tables, the same partitions are defined. I use this utility thumbdrive as a tool and it came in handy many times.

Occasionally, I also use the data partition simply to store files. Unfortunately, I recently ran into problems regarding compatibility with newer versions Windows. On Windows 7 and older, everything works fine. On Windows 8 and Windows 10, the drive is recognized by the system, shows up properly in Windows Disk Management, but it cannot be mounted. If I try to assign a drive letter, Windows shows the error "The system cannot find the file specified".

Is Windows 8 and onwards incompatible with hybrid MBR? Is there a trick I need to do in order to make my thumbdrive work with newer versions of Windows? Is this a known issue or a problem with my particular setup?

Please note the difference to other questions here at SU: I do not desire to install Windows on a disk with hybrid MBR, I only want to mount a partition from a removable disk with hybrid MBR.

EDIT: More information about the partition scheme I use.

► Information as presented by gdisk:

GPT:

Disk /dev/sdc: 124822487 sectors, 59.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 3D561713-2A88-4C74-B924-990DF55B667B
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 124822453
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048       107632639   51.3 GiB    0700  Microsoft basic data
   2       107632640       124411903   8.0 GiB     8300  Linux filesystem
   3       124411904       124822453   200.5 MiB   EF00  EFI System

MBR:

Disk size is 124822487 sectors (59.5 GiB)
MBR disk identifier: 0x00000000
MBR partitions:
Number  Boot  Start Sector   End Sector   Status      Code
   1                  2048    107632639   primary     0x07
   2             107632640    124411903   primary     0x83
   3             124411904    124822453   primary     0xEF

► Screenshots illustrating the problem in Windows 8.

  1. Trying to add a drive letter in diskmgmt.msc
  2. Error message "system cannot find the file specified"

Sorry for german localization.

Trying to assign a drive letter with diskpart, diskpart states more information regarding the error is to be found in the system logs. Unfortunately, I cannot find a single relevant entry.

► Output of diskpart's list partition:

Partition ###  Typ               Größe    Offset
-------------  ----------------  -------  -------
Partition 1    Primär              51 GB  1024 KB
Partition 0    Primär               8 GB    51 GB
Partition 0    Primär             200 MB    59 GB

As you can see, there is something weird going on here. But how can I stop that? And why does it work with Windows 7? It looks like Windows does not treat any of the partitions as a volume.

EDIT: More information as requested.

► Output of udisks-part-id /dev/sdc:

using device_file=/dev/sdc syspath=/sys/devices/(...)/block/sdc, offset=0 ao=0 and number=0 for /dev/sdc
Entering MS-DOS parser (offset=0, size=63909113344)
MSDOS_MAGIC found
looking at part 0 (offset 1048576, size 55106863104, type 0x07)
new part entry
looking at part 1 (offset 55107911680, size 8590983168, type 0x83)
new part entry
looking at part 2 (offset 63698894848, size 210201600, type 0xef)
new part entry
looking at part 3 (offset 0, size 0, type 0x00)
new part entry
Exiting MS-DOS parser
MSDOS partition table detected
UDISKS_PARTITION_TABLE=1
UDISKS_PARTITION_TABLE_SCHEME=mbr
UDISKS_PARTITION_TABLE_COUNT=3
Hermann
  • 223
  • 2
  • 8
  • On Ubuntu live session type: sudo /lib/udev/udisks-part-id /dev/sdX , and give the output – GAD3R Feb 23 '16 at 11:48
  • 1
    I don't have a direct answer, but I would advise against using hybrid MBRs, because they're ugly and *dangerous.* Their main purpose is to enable booting in BIOS mode on Macs. If you're booting Linux from the drive in this way, you might instead want to install an EFI-mode boot loader for Linux. Switching from GPT with a hybrid MBR to a legal GPT might or might not make any difference in Windows, but you can test it pretty easily and, if it doesn't help and you need the hybrid MBR for some reason, re-create it. – Rod Smith Feb 23 '16 at 16:48
  • 1
    @RodSmith Since I define the same partitions in both tables, I do not really see the danger in the hybrid MBR. However, the above mentioned problem remains. Therefore, I decided to ditch support for Windows XP and other MBR-only systems. I switched to GPT with protective MBR. Now the data partition is available from Windows 7 and newer and I can still boot on machines with UEFI and legacy BIOS. – Hermann Mar 02 '16 at 13:31

1 Answers1

1

The MBR does not interfere with the partition mounting in the Operating System.

It only affect if you want the BIOS or UEFI to boot from this device.

Check that the usb stick is correctly detected in the Drive Manager and that the partitions are seen.

nex84
  • 633
  • 3
  • 8
  • You are right. In theory, the type of partition table should not affect mounting in this way. In practice however, Windows 8 begs to differ, I am afraid. I updated the question with screenshots illustrating the problem. – Hermann Feb 23 '16 at 14:44