1

I have an old Boot Camp installation of Win XP on an old iMac (2006). I can boot into either Mac OS or Win XP. I cloned the Win XP partition to a USB drive using the dd command in Terminal. This is supposed to result in a byte-for-byte copy.

I'd like to boot my MacBook Pro from this drive. Although all the contents of the Win XP partition seem to be present, I can't boot from the USB drive. Mac OS doesn't recognize it as a bootable drive and it isn't shown as a choice when restarting with the option key held down.

I installed the rEFInd boot manager as suggested here but that didn't help, although I am not exactly clear about what to do to get rEFInd to "sync my GPT and PMBR".

I also used Paragon Hard Disk Manager and ran all the repairs suggested for a Boot Camp partition. Still nothing. rEFInd sees the Windows system and presents it as an option, but choosing it gives a message saying "No bootable devices found..."

This prof was able to do this by first creating a Boot Camp partition with Boot Camp Assistant and then cloning the partition onto it using dd in the command line. My version of BCA will only install back to Win 7 and asks for the install disk before partitioning the target drive, so that's not an option. I'm not sure whether I could find an older version of BCA, and get that to work.

So I thought I'd ask the question here: Isn't there some simple way to make a partition bootable? The partition is formatted as Fat32. Thanks in advance.

1

Macs can only boot from drives that use the relatively modern GUID Partition Table (GPT) as their partition table format. Here I'm referring only to the first few blocks of the drive that tells the computer where the rest of the partitions are, and what types/formats they are.

Unfortunately, most USB flash drives, in my experience, come from the factory using the ancient "Master Boot Record" (MBR) format. So the first thing to check is to make sure your USB flash drive is using GPT and not MBR.

Note that for backwards-compatibility reasons, some GPT drives have a kind of fake MBR called a "Protective MBR", which helps prevent ancient software that only knows about MBR from messing up the drive thinking it's blank. Don't let the presence of a PMBR confuse you. If you use an old tool that only knows about MBRs to dump your partition table, it'll find the PMBR and dump that and not be any wiser. You need to use a tool that knows about GPT, such as macOS's "Disk Utility" app (in /Applications/Utilities) or macOS's diskutil command-line tool.

If your drive doesn't have a GPT, you'll need to […first back it up if necessary and then…] reformat it to use a GPT. You can still make the "whole drive" be one big FAT32 partition, it's just that you'll have a GPT instead of (or in addition to) an MBR in those first few blocks before the FAT32 partition starts.

Some PMBRs make it look like the whole drive is one big allocated partition, even if the GPT reveals that it's lots of different partitions. This can be a problem if you need to use the drive with older software that only knows about MBRs. So in some cases you need to use software that helps you make sure that every entry in the GPT has an exact match in the [P]MBR. Effectively making it a combination MBR/GPT drive. Unfortunately, there's lots of software out there that only deals with MBR, and lots of other software that only deals with GPT, so keeping your MBR and GPT in sync while deleting/creating/resizing/reformatting partition can be a problem, and most people's Boot Camp problems here on SuperUser seem to come down to issues where some disk utility or installer utility for Linux, or Windows, or macOS, edited one partition table but didn't make the matching edit in the other table.

There may be other Boot Camp hassles with cloning a partition the way you did, but the first thing you need to verify is that you have a GPT on your USB flash drive. Otherwise the Mac will never be able to boot from it. The EFI boot firmware in your Mac doesn't know how to boot from MBR drives.

  • Thanks, Spiff. That helps a lot. I used the usb drive out of the box, and I did notice that Paragon showed it as MBR. If I reformat it as Fat using Dusk Utility, will it get both the MBR and GPT? – Bandersnatch Jul 6 '17 at 2:17
  • 1
    @Bandersnatch In Disk Utility, you must select the entry for drive itself (not some subordinate partition) on the list of drives and partitions on the left, then choose Erase, to be given the option to set the "Scheme" to "GUID Partition Map". If you do anything else, you won't be changing the partition map type. – Spiff Jul 6 '17 at 2:41
  • Good answer, but some thoughts... 1) Will XP even boot at all from a USB stick [or does the hybrid MBR prevent it from knowing it's on a stick]? 2) I'd use Paragon to do the clone; I've successfully moved BC drives to different machines using it, it's reliable & doesn't need BCA at all. – Tetsujin Jul 6 '17 at 16:15
  • I formatted the drive as @Spiff suggested, and Paragon shows it as GPT + MBR. Then I re-did the byte-wise copy of the partition, but I still get the "No bootable devices..." message. I think I'll also try a direct install of XP on the formatted drive just as a test. Any other suggestion are welcome. – Bandersnatch Jul 7 '17 at 16:27
  • @Tetsujin, Thanks, I'll try Paragon, but I'm not sure it will run on the old iMac - their site says I need version 11. – Bandersnatch Jul 7 '17 at 16:28
1

Short Answer

Start with your original MBR configuration and use a Windows recovery tool to try to restore its boot loader. With any luck, that will get it to work. Do not switch from MBR to GPT on the new disk.

Long Answer

You should first understand the difference between the GUID Partition Table (GPT) and the Master Boot Record (MBR) partitioning systems. The former is the native partitioning system for Intel-based Macs and for newer PCs. The latter was used on most PCs prior to the release of Windows 8. GPT is associated with booting in EFI mode (as OS X boots), whereas MBR is most commonly used to boot BIOS-mode OSes (including Windows XP). Importantly, part of GPT is a protective MBR, which is basically an MBR data structure with a single type-0xEE partition that covers the entire disk (or 2 TiB of it, on disks larger than this). If the protective MBR is not present, or if it doesn't fit this description, then the disk is not, technically speaking, a valid GPT disk.

Apple uses an ugly and dangerous mixture of GPT and MBR, known as a hybrid MBR, in some of its dual-boot configurations. Your original disk was probably configured in this way. In a hybrid MBR, up to three of the "real" GPT partitions are duplicated in the MBR, and the MBR's protective type-0xEE partition is shrunk accordingly. This means that a hybrid MBR is technically not a valid GPT disk; but OS X and Linux both treat it as if it were a GPT disk. Windows, OTOH, treats disks with hybrid MBRs as MBR disks. This is useful when dual-booting OS X in EFI mode and Windows in BIOS mode, but it's a dangerous hack because so many things can go wrong with it. (I won't go into details because they'd be a digression.) The "syncing" of GPT and MBR to which you refer is creating a hybrid MBR. This isn't really relevant in your case (at least, as originally stated).

You should also understand, at least in outline, how Windows XP boots: BIOS boot loader code is stored to the MBR (the first sector of the disk). When the computer boots, the BIOS loads this code and executes it. This code then reads additional boot code from the Partition Boot Record (PBR; the first sector of the Windows XP partition). The PBR code continues the boot process by reading additional files, eventually launching the Windows kernel, etc. The key point here is that neither the MBR nor the PBR is a file; they're lower-level data structures that define partitions (the MBR) or filesystems (the PBR) and contain boot loader code. Given the way you copied the Windows installation, the PBR was copied, but the MBR was not. Another point is that some versions of the Windows boot loader require that the Windows partition have its "boot flag" (aka "active flag") set.

This interacts with Macs specifically in that Apple uses the partition table type (pure GPT vs. either MBR or hybrid MBR) as a key to decide whether to activate the Compatibility Support Module (CSM), which is a sort of BIOS emulator that enables Macs to launch BIOS-mode OSes like Windows XP. If the disk has an MBR or a hybrid MBR, the Mac activates its CSM and may launch a BIOS-mode OS; but if the disk is a pure legal GPT disk, the Mac leaves its CSM inactive and so will not be able to boot Windows XP. (BIOS-bootable optical discs can also activate the CSM.)

There can be other boot problems, too. For instance, the boot loader might refer to files that don't exist or have hard-coded sector values that are no longer valid after you've copied your files. Windows is pretty notorious for this sort of thing, and you must generally use a Windows emergency disk to recover from such problems. In fact, that's what I recommend you do. Unfortunately, I don't know enough about Windows recovery procedures to give you explicit step-by-step instructions; but if you search online, there are dozens of sites that describe how to do this. You'll need a Windows XP recovery disk that you can boot and use to fix your copied Windows installation.

Speaking more broadly, if the external disk houses Windows XP and does not include a bootable OS X installation, I recommend you use a straight-up MBR configuration on it. Windows XP will not boot from a GPT disk unless it uses a hybrid MBR, and such a configuration would add complexity and make it more likely that you'll run into future problems without providing any benefits.

Note that Spiff's claim that Macs can't boot from MBR disks is flat-out wrong. I've done it myself, in both BIOS mode and in EFI mode. Macs can be flaky, though. This is especially true when booting from external disks in BIOS/CSM/legacy mode. Thus, it's conceivable that you'll never get this working from your external disk. OTOH, it does work on many systems, so maybe you'll manage the task.

  • Rod, thanks. Two questions: 1. Does Paragon count as a "Windows recovery tool"? I used that the first time around when the USB drive had just a MBR. It did: "Update Bootcamp MBR", "Correct Bootcamp .ini files", and "Correct Bootcamp Boot record". 2. Can I get this to work on a USB drive? I have plenty of room on my laptop drive, it might be easier to just create a partition there. – Bandersnatch Jul 7 '17 at 18:26
  • I don't think you've ever booted a Mac from a plain MBR drive with no GPT on it. You may have booted a Mac from a GPT drive containing a Protective MBR or Legacy MBR, but not a straight MBR drive. – Spiff Jul 7 '17 at 19:48
  • @Bandersnatch, I don't have personal experience with Paragon -- at least, not anything recent. Thus, I'm afraid I can't answer your question. – Rod Smith Jul 9 '17 at 14:12
  • @Spiff, I have booted Macs from plain MBR disks. Note that I wrote the GPT fdisk partitioning software, so I'm not a newbie; I know what I'm doing when it comes to disk partitioning. I also maintain the rEFInd boot manager, so I also know what I'm doing when it comes to booting a computer, especially in EFI mode. (That said, I'm not an expert on every OS. I mostly use Linux, sometimes OS X, and rarely Windows, so my knowledge of Windows quirks is far from comprehensive.) – Rod Smith Jul 9 '17 at 14:16

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.