My main mac pro at home has 6 disks attached to it divided between mac (4 drives) and windows (2 drives). Led by the previous experiences I specifically separated my windows and mac into separate, fully dedicated drives, to avoid any kind of overlapping, resizing, MBR/GPT accidents etc. I also made sure both systems cannot play around with each others disks
In mac I blacklisted windows system drive from getting automounted by osx, just to avoid any accidental unclean unmounts or Windows getting spooked by the usual .Trashes .Spotlight and other OSX malarky
It's done in /etc/fstab and looks more or less like this:
UUID=[idofyourwindowsdrive] none ntfs ro,noauto
On the other side, I prevented windows from touching OSX drives by renaming
C:\Windows\System32\drivers\AppleMNT.sys to C:\Windows\System32\drivers\AppleMNT.sys_bak
The downside of both, is that I need to use alt key to manually select boot drive each time I want to boot to windows, rather than using bootcamp default partition selection, but I actually prefer it that way.
The system above worked well for me for the past 3-4 years. I had XP on it, Vista, now Windows 7, never a problem.
I use Windows only for gaming these days, and with overall PC gaming stagnation and more and more games appearing as mac titles, in recent months I had no reason to boot to windows. My main rig is rather busy all the time, and I generally don't like to reboot unless I absolutely, completely have to. It's a second decade of 21st century, most applications on proper OS, like OSX, don't need reboots to function, so it's just not something that I do. I don't tip pizza drivers who don't arrive in less than 30 minutes, I don't negotiate with domestic terrorists (regardless of whether it's mother, wife, mother in law or anyone else) and (southern accent on) I don't reboot for no software.
So when I finally rebooted to do all of the recent OSX updates, new blackmagic card drivers, external sound cards etc in one go, I decided to pop into Windows at the same time and update it, and download all the Steam stuff, even if just to not boot to it for another year.
Low and behold, windows needed 30+ patches incl. service pack, and there were some updates to apple bootcamp software, gradually climbing up to version 3.3. Somewhere between update no. 1 to bootcamp and first 10 windows updates before service pack, my master plan to keep perfect separation of windows and OSX failed miserably, drivers in system32 got overwritten and after reboot I was greeted by OSX partition perfectly visible in Explorer and - to my surprise - a message on desktop informing me that before I can keep updating my machine, I need to resolve small issue - something along the lines of "Your Windows 7 software is not genuine, click here to resolve". My Win 7 is a proper non-OEM, fully legit, retail copy, so I though - I'll follow where it leads me and all will be fine.
Clicking took me to a microsoft page (still in IE8) where a Genuine Windows Advantage or some sh like that was requested in form of active X control, then produced few seconds of spinning circle on the page after which it triumphally announced something alone the lines of a minor boot issues that prevented this copy of windows from reporting as genuine copy were fixed all was fine.
At that point, as you can imagine, I had a small heart attack and just anyone who ever had misadventures in bootcamp can predict what follows in this story.
Upon reboot I was greeted by Lions "install or restore" utility and disk utility informed me the entire 2Tb of my OSX drive with all my life on it were now a virgin clean FAT partition. Any attempt of scanning or repairing that partition in Disk Utility would return error “invalid BS_jmpBoot in boot block: 000000″.
Incidentally, this error was already known to me - I encountered it before, in my professional life, and knew exactly the mechanism of how it happened. A little nugget of info - this happens when Windows decide to, at any point, assign new or change a windows drive letter of your bootable system GPT partition.
At that point, for reasons only known to itself windows decides to "initialize" drive as one of its own and overwrittes header on the drive changing it from GPT drive to some sort of dynamic hybrid malarky with both GPT and MBR sectors active.
Linux see it as unformatted GPT drive, OSX see it as FAT windows drive with partition written in MBR table, windows see it as hybrid drive with read only HFS system. Disaster.
MBR: protective GPT: present = bad
So, how does one fix it?
Good news is - it can be fixed. Bad news is - you will need another OSX machine, USB or FW cradle, Xcode installed and ports. Them Microsoft motherlovers! So:
Install Xcode, install ports, compile python (2.7 is a good version) in ports (sudo port install python27 ), then download python script to fix your drive gpt_surgeon.py. Attach your microsofted drive via USB or firewire cradle. Then finally follow authors instructions. Basically:
use "diskutil list" to figure out which device you will be repairing. The screwed drive will have EFI partition and Microsoft Basic Data partition:
In my case it was /dev/disk3
List partitions with gpt_surgeon.py utility, note which partition is the Microsoft one and then repair it via gpt_surgeon.py repair [yourdrive] [partition no]
Et voila - your OSX system drive is back and you can boot from it. That will teach you to do Windows Updates with OSX drives fully disconnected and pulled out in the future.
In mac I blacklisted windows system drive from getting automounted by osx, just to avoid any accidental unclean unmounts or Windows getting spooked by the usual .Trashes .Spotlight and other OSX malarky
It's done in /etc/fstab and looks more or less like this:
UUID=[idofyourwindowsdrive] none ntfs ro,noauto
On the other side, I prevented windows from touching OSX drives by renaming
C:\Windows\System32\drivers\AppleMNT.sys to C:\Windows\System32\drivers\AppleMNT.sys_bak
The downside of both, is that I need to use alt key to manually select boot drive each time I want to boot to windows, rather than using bootcamp default partition selection, but I actually prefer it that way.
The system above worked well for me for the past 3-4 years. I had XP on it, Vista, now Windows 7, never a problem.
I use Windows only for gaming these days, and with overall PC gaming stagnation and more and more games appearing as mac titles, in recent months I had no reason to boot to windows. My main rig is rather busy all the time, and I generally don't like to reboot unless I absolutely, completely have to. It's a second decade of 21st century, most applications on proper OS, like OSX, don't need reboots to function, so it's just not something that I do. I don't tip pizza drivers who don't arrive in less than 30 minutes, I don't negotiate with domestic terrorists (regardless of whether it's mother, wife, mother in law or anyone else) and (southern accent on) I don't reboot for no software.
So when I finally rebooted to do all of the recent OSX updates, new blackmagic card drivers, external sound cards etc in one go, I decided to pop into Windows at the same time and update it, and download all the Steam stuff, even if just to not boot to it for another year.
Low and behold, windows needed 30+ patches incl. service pack, and there were some updates to apple bootcamp software, gradually climbing up to version 3.3. Somewhere between update no. 1 to bootcamp and first 10 windows updates before service pack, my master plan to keep perfect separation of windows and OSX failed miserably, drivers in system32 got overwritten and after reboot I was greeted by OSX partition perfectly visible in Explorer and - to my surprise - a message on desktop informing me that before I can keep updating my machine, I need to resolve small issue - something along the lines of "Your Windows 7 software is not genuine, click here to resolve". My Win 7 is a proper non-OEM, fully legit, retail copy, so I though - I'll follow where it leads me and all will be fine.
Clicking took me to a microsoft page (still in IE8) where a Genuine Windows Advantage or some sh like that was requested in form of active X control, then produced few seconds of spinning circle on the page after which it triumphally announced something alone the lines of a minor boot issues that prevented this copy of windows from reporting as genuine copy were fixed all was fine.
At that point, as you can imagine, I had a small heart attack and just anyone who ever had misadventures in bootcamp can predict what follows in this story.
Upon reboot I was greeted by Lions "install or restore" utility and disk utility informed me the entire 2Tb of my OSX drive with all my life on it were now a virgin clean FAT partition. Any attempt of scanning or repairing that partition in Disk Utility would return error “invalid BS_jmpBoot in boot block: 000000″.
Incidentally, this error was already known to me - I encountered it before, in my professional life, and knew exactly the mechanism of how it happened. A little nugget of info - this happens when Windows decide to, at any point, assign new or change a windows drive letter of your bootable system GPT partition.
At that point, for reasons only known to itself windows decides to "initialize" drive as one of its own and overwrittes header on the drive changing it from GPT drive to some sort of dynamic hybrid malarky with both GPT and MBR sectors active.
Linux see it as unformatted GPT drive, OSX see it as FAT windows drive with partition written in MBR table, windows see it as hybrid drive with read only HFS system. Disaster.
MBR: protective GPT: present = bad

So, how does one fix it?
Good news is - it can be fixed. Bad news is - you will need another OSX machine, USB or FW cradle, Xcode installed and ports. Them Microsoft motherlovers! So:
Install Xcode, install ports, compile python (2.7 is a good version) in ports (sudo port install python27 ), then download python script to fix your drive gpt_surgeon.py. Attach your microsofted drive via USB or firewire cradle. Then finally follow authors instructions. Basically:
use "diskutil list" to figure out which device you will be repairing. The screwed drive will have EFI partition and Microsoft Basic Data partition:

In my case it was /dev/disk3
List partitions with gpt_surgeon.py utility, note which partition is the Microsoft one and then repair it via gpt_surgeon.py repair [yourdrive] [partition no]

Et voila - your OSX system drive is back and you can boot from it. That will teach you to do Windows Updates with OSX drives fully disconnected and pulled out in the future.
Last edited: